Oracle 响应慢问题解决
问题描述1、应用连接数据异常缓慢,包括客户端使用plsql连接;2、数据库主机cpu占用率居高不下,IO写入居高不下。3、主机日常维护
问题描述
1、应用连接数据异常缓慢,包括客户端使用plsql连接;
2、数据库主机cpu占用率居高不下,IO写入居高不下。
3、主机日常维护操作响应慢,如man或w;
分析问题
?系统及Oracle应用为什么响应慢
1、为什么系统连w这么简单的操作都会觉得卡呢?
2、为什么没有任何应用接入的情况下,数据库会有大量的写入操作呢?
Top //查看cpu使用情况,发现iowait%占用了大量的cpu时间;
Iostat –mx 2 100 查看disk使用情况,发现磁盘利用率长时间处于100%状态;将系统响应慢定位在io请求过多导致。(关于iostat的使用参见man)。
?什么导致出现如此之多的IO请求呢?
在观察后台的进程,发现有ora_p000...ora_p015. 共16个进程在运行。
我机器物理上2颗CPU,共有8个core (Cat /proc/cpuinfo可以看到机器cpu信息)。 运行Sqlplus “/as sysdba”进入sql命令行查看rollback相关参数,Show parameter rollback 看到FAST_START_PARALLEL_ROLLBACK = LOW,此参数为默认设置为LOW,表明并行运行的回滚进程有2*number of cpu,在我的系统刚好表现为16个进程。与我使用ps –ef | grep ora_p 看到的ora_p000_*0**到ora_p015_***进程对应。
?为什么会有如此多的回滚进程出现呢?
经过询问项目组相关人员,发现有人在执行imp导入时,手动终止了。拿到该同事的imp语句一看清楚了,由于导入的数据量较大,又没有逐行提交(commit=y),异常终止后产生大量的回滚动作。
?回滚慢操作为什么慢:
View $ORACLE_BASE/admin/$ORACLE_SID/bdump/alter_
解决办法就是增加redo file 组;
Alert database add logfile group 4(‘/u01/app/oracle/oradata/oracl/redo04.log’) size 100M;
Alert database add logfile group 5(‘/u01/app/oracle/oradata/oracl/redo05.log’) size 100M;
Alert database add logfile group 6(‘/u01/app/oracle/oradata/oracl/redo06.log’) size 100M;
根据需要可添加更多的redo文件组。
Select group#,members,status from v$log;发现有inactive出现就可以了。Redo 文件处在active状态说明redo文件还没写入在数据文件中,若此时LGWR switch切换到active文件,将在alert日志中出现Checkpoint未完成告警。
需要说明的是:回滚操作由于要写入redo文件,其本身就是很消耗系统资源的。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Oracle データベース ログの保存期間は、次のようなログのタイプと構成によって異なります。 REDO ログ: 「LOG_ARCHIVE_DEST」パラメータで構成された最大サイズによって決定されます。アーカイブ REDO ログ: 「DB_RECOVERY_FILE_DEST_SIZE」パラメータで構成された最大サイズによって決まります。オンライン REDO ログ: アーカイブされず、データベースの再起動時に失われます。保持期間はインスタンスの実行時間と一致します。監査ログ: 「AUDIT_TRAIL」パラメータによって構成され、デフォルトで 30 日間保持されます。

Oracle が必要とするメモリーの量は、データベースのサイズ、アクティビティー・レベル、および必要なパフォーマンス・レベル (データ・バッファー、索引バッファーの保管、SQL ステートメントの実行、およびデータ・ディクショナリー・キャッシュの管理) によって異なります。正確な量は、データベースのサイズ、アクティビティ レベル、および必要なパフォーマンス レベルによって影響されます。ベスト プラクティスには、適切な SGA サイズの設定、SGA コンポーネントのサイズ設定、AMM の使用、メモリ使用量の監視などが含まれます。

Oracle データベース サーバーのハードウェア構成要件: プロセッサ: マルチコア、少なくとも 2.5 GHz のメイン周波数 大規模なデータベースの場合は、32 コア以上が推奨されます。メモリ: 小規模データベースの場合は少なくとも 8 GB、中規模のデータベースの場合は 16 ~ 64 GB、大規模なデータベースまたは重いワークロードの場合は最大 512 GB 以上。ストレージ: SSD または NVMe ディスク、冗長性とパフォーマンスのための RAID アレイ。ネットワーク: 高速ネットワーク (10GbE 以上)、専用ネットワーク カード、低遅延ネットワーク。その他: 安定した電源、冗長コンポーネント、互換性のあるオペレーティング システムとソフトウェア、放熱と冷却システム。

Oracle で 1 日に 1 回実行されるスケジュールされたタスクを作成するには、次の 3 つの手順を実行する必要があります。 ジョブを作成します。ジョブにサブジョブを追加し、そのスケジュール式を「INTERVAL 1 DAY」に設定します。ジョブを有効にします。

Oracle データベースに必要なメモリの量は、データベースのサイズ、ワークロードの種類、同時ユーザーの数によって異なります。一般的な推奨事項: 小規模データベース: 16 ~ 32 GB、中規模データベース: 32 ~ 64 GB、大規模データベース: 64 GB 以上。考慮すべきその他の要素には、データベースのバージョン、メモリ最適化オプション、仮想化、ベスト プラクティス (メモリ使用量の監視、割り当ての調整) などがあります。

Oracle Databaseのメモリー要件は、データベースのサイズ、アクティブ・ユーザーの数、同時問合せ、有効な機能、およびシステム・ハードウェア構成の要素によって異なります。メモリ要件を決定する手順には、データベース サイズの決定、アクティブ ユーザー数の推定、同時クエリの理解、有効な機能の検討、システム ハードウェア構成の調査が含まれます。

Oracle リスナーは、クライアント接続リクエストを管理するために使用されます。起動手順は次のとおりです。 Oracle インスタンスにログインします。リスナー構成を見つけます。 lsnrctl start コマンドを使用してリスナーを開始します。 lsnrctl status コマンドを使用して起動を確認します。

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())
