GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

Oracle データベース アーキテクチャ(Archiver Process (ARCn))

f:id:undercovergeek:20200802172209p:plain

ARCn

アーカイバプロセス(ARCn)は、データベースがARCHIVELOGモードであり、自動アーカイブが有効な場合にのみ存在するバックグラウンドプロセス。
この場合、ARCnはオンラインREDOログファイルを自動的にアーカイブする。
ログライタープロセス(LGWR)は、アーカイブされるまでオンラインREDOロググループを再利用および上書きできない。

一杯になったオンラインREDOログのアーカイブが遅れないようにするために、データベースは必要に応じて複数のアーカイバプロセスを開始する。
可能なプロセスには、ARC0〜ARC9およびARCa〜ARCt(31の可能な宛先)が含まれる。

LOG_ARCHIVE_MAX_PROCESSES初期化パラメータは、データベースが最初に呼び出すARCnプロセスの数を指定する。
データの一括読み込み中など、アーカイブの負荷が大きいことが予想される場合は、アーカイバープロセスの最大数を増やすことができる。
複数のアーカイブログの宛先が存在する場合もある。
宛先ごとに少なくとも1つのアーカイバープロセスがあることが推奨される。

ARCnは、スレッドまたはオペレーティングシステムプロセスとして実行できる。

Oracle データベース アーキテクチャ(Log Writer Process (LGWR))

f:id:undercovergeek:20200730201358p:plain

LGWR

ログライタープロセス(LGWR)は、REDOログエントリをREDOログファイルに順次書き込むバックグラウンドプロセス。
REDOログエントリは、システムグローバルエリア(SGA)のREDOログバッファに生成される。
データベースに多重化REDOログがある場合、LGWRは同じREDOログ・エントリをREDOログ・ファイル・グループのすべてのメンバーに書き込む。

LGWRは、非常に高速な操作、または調整が必要な操作を処理し、操作をログライターワーカーヘルパープロセス(LGnn)に委託する。
この操作は、主にログバッファーからREDOログファイルにREDOを書き込み、 待機中のフォアグラウンドプロセスへの書き込みが完了させる。

REDO転送スレーブ・プロセス(TT00-zz)は、現在のオンラインおよびスタンバイREDOログから、非同期(ASYNC)REDO転送用に構成されたリモート・スタンバイ宛先にREDOを送信する。

LGWRは、スレッドまたはオペレーティングシステムプロセスとして実行できる。
データベースインスタンスに加えて、LGWRはOracle ASMインスタンスでも実行される。
Oracle Real Application Clusters(RAC)構成の各データベースインスタンスには、独自のREDOログファイルのセットがある。

Oracle データベース アーキテクチャ(Recoverer Process (RECO))

f:id:undercovergeek:20200730091316p:plain

RECO

リカバリー・プロセス(RECO)は、分散データベースのネットワークまたはシステムの障害のために保留中の分散トランザクションを解決するバックグラウンド・プロセス。
RECOは、スレッドまたはオペレーティングシステムプロセスとして実行できる。

Oracle データベース アーキテクチャ(Manageability Monitor Process (MMON) and Manageability Monitor Lite Process (MMNL))

f:id:undercovergeek:20200728203020p:plain

管理性監視プロセス(MMON)および管理性監視ライトプロセス(MMNL)は、自動ワークロードリポジトリ(AWR)に関連するタスクを実行するバックグラウンドプロセス。
AWRは、システム、セッション、個々のSQLステートメント、セグメント、およびサービスの累積統計を含む履歴パフォーマンスデータのリポジトリ。
問題の検出とセルフチューニングの目的で使用される。

MMON

MMONはSGAからさまざまなメモリ統計を収集し、それらをフィルタリングして、自動ワークロードリポジトリ(AWR)に60分ごとにそれらの統計のスナップショットを作成する。
60分がデフォルト値であり、変更できる。
また、自動データベース診断モニター(ADDM)分析を実行し、しきい値を超えるメトリックに対してアラートを発行する。

MMNL

MMNLは、セッション統計(ユーザーID、状態、マシン、および実行中のSQLなど)を収集し、アクティブセッション履歴(ASH)バッファーに格納する。
具体的には、MMNLはV$SESSIONおよびV$SESSION_WAITビューをSGAで毎秒サンプリングし、そのデータをV$ACTIVE_SESSION_HISTORYビューに記録する。
非アクティブなセッションはサンプリングされない。
ASHはメモリ内のローリングバッファとして設計されているため、必要に応じて以前の情報が上書きされる。
ASHバッファーがいっぱいになるか、MMONがスナップショットを取得すると、MMNLはASHバッファーをAWRのDBA_HIST_ACTIVE_SESS_HISTORYビューにフラッシュ(空)する。
スペースが高価なため、10エントリごとに1つだけがフラッシュされる。
MMNLはメトリックも計算する。

MMONとMMNLはどちらも、スレッドまたはオペレーティングシステムプロセスとして実行できる。
データベースインスタンスに加えて、MMONおよびMMNLは自動ストレージ管理(ASM)インスタンスでも実行される。

Oracle データベース アーキテクチャ(Checkpoint Process (CKPT))

f:id:undercovergeek:20200727195256p:plain

CKPT

チェックポイントプロセス(CKPT)は、特定の時間にデータベースライタープロセス(DBWn)にメッセージを送信してチェックポイント要求を開始し、ダーティバッファーの書き込みを開始するバックグラウンドプロセス。
個々のチェックポイント要求が完了すると、CKPTはデータファイルヘッダーと制御ファイルを更新して、最新のチェックポイントを記録する。

CKPTは、3秒ごとにメモリー量がPGA_AGGREGATE_LIMIT初期化パラメーターの値を超えているかどうかを確認し、超えている場合はアクションを実行する。

CKPTは、スレッドまたはオペレーティングシステムプロセスとして実行できる。
データベースインスタンスに加えて、CKPTはOracle自動ストレージ管理(ASM)インスタンスでも実行される。

Oracle データベース アーキテクチャ(Database Writer Process (DBWn))

f:id:undercovergeek:20200725092650p:plain

DBWn

データベースライタープロセス(DBWn)は、主にデータブロックをディスクに書き込むバックグラウンドプロセス。
また、チェックポイント、ファイルオープン同期、ブロック書き込みレコードのロギングも処理する。
フラッシュキャッシュが構成されている場合、DBWnはデータベーススマートフラッシュキャッシュ(フラッシュキャッシュ)にも書き込む。

多くの場合、DBWnが書き込むブロックはディスク全体に散在している。
したがって、書き込みは、ログライタープロセス(LGWR)によって実行される順次書き込みよりも遅くなる傾向がある。
DBWnは、効率を向上させるために、可能な場合はマルチブロック書き込みを実行する。
マルチブロック書き込みで書き込まれるブロックの数は、オペレーティングシステムによって異なる。

DB_WRITER_PROCESSES初期化パラメーターは、データベース書き込みプロセスの数を指定する。
1〜100個のデータベースライタープロセスが存在できる。
最初の36個のデータベースライタープロセスの名前は、DBW0-DBW9およびDBWa-DBWz。
37〜100番目のデータベースライタープロセスの名前はBW36〜BW99。
データベースは、DB_WRITER_PROCESSESパラメータに適切なデフォルト設定を選択するか、CPUとプロセッサグループの数に基づいてユーザー指定の設定を調整する。

Oracle データベース アーキテクチャ(System Monitor Process (SMON))

f:id:undercovergeek:20200724095618p:plain

SMON

システムモニタープロセス(SMON)は、以下を含む多くのデータベース保守タスクを実行するバックグラウンドプロセス。

 ・一時テーブルスペースのメタデータを作成および管理し、孤立した一時セグメントが使用していたスペースを再利用する。
 ・UNDO領域の使用統計に基づいてUNDOセグメントをオンライン化、オフライン化、および縮小することにより、UNDO表領域を維持する。
 ・一時的で一貫性のない状態のデータディクショナリをクリーンアップする
 ・Oracle Flashback機能のサポートに使用されるシステム変更番号(SCN)から時間へのマッピングテーブルを維持する。

SMONは、バックグラウンドアクティビティ中に発生した内部エラーと外部エラーに耐性がある。
SMONは、スレッドまたはオペレーティングシステムプロセスとして実行できる。
Oracle Real Application Clusters(RAC)データベースでは、1つのインスタンスのSMONプロセスが、障害が発生した他のインスタンスのインスタンスリカバリを実行できる。

スポンサーリンク