ORACLEの例のバックグラウンドプロセス


これらのバックグラウンドで懸命に働くプロセスを紹介します。システム検出器(System Monitor、SMON)、プロセスモニタ(Process Monitor、PMON)、データベースライタ(Database Writer、DBWn)、ログライタ(Log Writer、LGWR)、チェックポイントプロセス(Checkpoint Process、CKPT)1、SMON:データベースのインストールとオープン。データベース制御ファイルを検索して検証することにより、データベースをインストールします。その後、すべてのデータファイルとオンラインログファイルを検索して検証してデータベースを開きます。データベースを開いて、データベースを使用状態にすると、SMONは各種内部管理タスクの実行を担当します。2、PMON:ユーザセッションはサーバプロセスに接続されたユーザプロセスです。サーバープロセスはセッション作成時に起動し、絵が終わったら廃棄します。セッションが正常に終了すると、ユーザによって実行される任意の作業が順序よく完了し、サーバプロセスは終了される。正常にセッションを終了しないと、PMONはサーバプロセスを破壊し、そのPGAメモリをオペレーティングシステムに戻し、まだ行われている未送信のトランザクションをロールバックします。3、DBWn:セッションは直接データをディスクに書き込むのではなく、データベースキャッシュエリアに書き込みます。そして、データベースライタがバッファをディスクに書き込みます。一般的に、一例には複数の書込み器があり得る。順次DBW 0、DBW 1などとする。デフォルトは8つのCPUが1つのデータベースライタに対応しています。通常、Oracleは、書き込みバッファの数をできるだけ減らす。IO操作は性能を低下させるからです。実際には、セッションがあるバッファに対して作文を実行すると、セッションが動作します。これでディスクに書き込む必要がなくなります。DBWnは怠け者アルゴリズムで書き込みを実行します。できるだけ少なく、できるだけ少なくしてください。いくつかの操作が必要な場合があります。使用可能なバッファがなく、バッファが多すぎて、3秒のタイムアウトがあって、チェックポイントに遭遇しました。利用可能なバッファがありません。サーバプロセスはブロックをキャッシュにコピーする前に、利用可能なバッファを検索する必要があります。利用可能なバッファは汚れもなく、使われていないバッファです。利用可能なバッファを検索しすぎると(Oracle内部で自分で設定します)バッファをディスクに書き込み、バッファを消去します。汚いバッファの量が多すぎます。どのような状況で多いかというと、Oracleの内部閾値が確定しています。もし超過したら、いくつかのバッファをディスクに書いて三秒のタイムアウトがあります。DBWnは三秒ごとに一部のバッファを整理します。システムがアイドル状態になっても、バッファエリアはクリアされます。チェックポイントをお願いします。チェックポイントがあったら、すべてのバッファデータを書き込みます。システム性能が低下します。チェックポイントはやむを得ず設定されます。データベースを閉じたり、インスタンスを閉じたりするとチェックポイントが設定されます。コマンドで設定することもできます。ここで注意したいのですが、会話提出の際にはDBWnは何もしないで、DBWnは自分なりに実行します。この時実行したい操作はログバッファに書き込むデータです。4、LGWR:ログライタはログバッファの内容をディスク上のオンラインログファイルに書き込みます。セッションがCOMMITを発行すると、LGWRはリアルタイムで書き込みます。LGWRでバッファをディスクに書き込みますと、セッションが保留されます。Oracleシステム構造において,LGWRは最大のボトルネックの一つである。DMLの速度はLGWRを超えられません。変更ベクトルをディスクに書き込む速度です。以下の3つの場合、LGWRはログバッファをリザーブします。書き込みを提出する時:提出したトランザクションの各変更ベクトルはディスク上のリピートログで入手できます。その後、データファイルのバックアップに適用できます。ログバッファの占有率は3分の1に達します。アプリケーションでは、通常、非常に短い時間でログバッファの1/3が埋められます。この場合、LGWRに強制的にベクトルを変更してリアルタイムでディスクに書き込むことができます。その後、会話中にCOMMITが発生した場合、書き込みたい内容はほとんどありません。COMMITはすぐできます。DBWnは、汚れたバッファをデータベースキャッシュエリアからデータファイルに書き込む必要がある場合:DBWnが書き込み操作を行う前に、LGWRの書き込み操作を行います。目的は、未提出の事務を常に逆転させることです。DBWnは未提出の事務をデータファイルに書き込む場合があります。逆転事務所に必要なデータを取得したり、ベクトルを変更したりすれば問題が発生しません。したがって、DBWnが書き込みを実行する前に、これらのデータがリフォームログファイルに入ることを確実にするために、LGWRの書き込みが必要です。5、CKPT:システムが崩壊したら、リフォームログから汚いバッファに対応するすべての変更ベクトルを抽出し、データブロックに適用しなければなりません。これが回復過程です。頻繁なチェックポイントは、汚れたバッファをディスクに素早く書き込むことができるので、崩壊後に適用しなければならないリフォーム量を最大限に減らすことができます。Oracle 8 iの後に、増分チェックポイント機構を採用して、DBWnは固定速度で汚いバッファ領域を書き出すので、DBWnとLGWRの間には常に予想できる差があります。インクリメンタルチェックポイントを使用するとシステム性能がより安定し、回復時間が予測できます。もちろん、10 g後にOracleにいくつかのプロセスが追加されました。ここでは、MMON:管理モニター、データブロックの自己監視と自己調整のサポートプロセスを紹介します。MMNL:MMONのアシストプロセスです。MMAN:メモリ分布の自動調整をサポートします。