0371.blog

ORACLE MASTER Bronze Oracle Database 12c 第四章

lecture


※この記事はまだ完成していません。もうちょっと待ってね。

こんにちは、0371です。

今回はORACLE MASTER Bronze Oracle Database 12cの第四章についてまとめました。

ORACLE MASTER Bronze Oracle Database 12c 第四章

第四章は「データベースの基本構造」についての内容です。

SQL文を実行する処理の流れについて

  • 「ユーザープロセス」は、クライアント側で起動。SQL 文を送信する。
  • 「リスナープロセス」は,データベースサーバ側で起動。クライアント接続を受け付け、サーバープロセスを起動する。
  • 「サーバープロセス」は、データベースサーバー側で起動。SQL 文を実行し、結果をユーザープロセスに送信する。
  • Oracle データベース は「インスタンス」と「データベースファイル」から構成されている。
  • インスタンスは「SGA」と「バックグラウンドプロセス」から構成されている。

「ユーザプロセス」は、クライアント側でデータベースを使用するアプリケーション(SQL*Plusなど)を動かしているプロセスのことです。SQL文を送信します。
「リスナープロセス」とは、ユーザープロセスからデータベースサーバー上で要求を待ち受けているプロセスのことです。
「サーバープロセス」は、リスナープロセスがユーザープロセスからの接続要求を受け取り、接続後に処理要求の対応するプロセスのことです。SQL文を実行し、結果をユーザープロセスに送信します。

Oracleでは、データベースを構成するファイル群をデータベースファイル、データベースファイルを管理する一連のメモリー構造をインスタンスといいます。

データベースファイルについて

  • データベースファイルは「データファイル」、「Redo ログファイル」、「制御ファイル」から構成されている。
  • データファイル、REDOログファイル、制御ファイルのファイルの三つを「データベースファイル」という。
  • データファイル、REDOログファイル、制御ファイルは 「SCN(システム変更番号)」により整合性を保っている。SCN はデータベースの同期化に使用される Oracle 内部のタイムスタンプ。
  • 「データファイル」は、表や索引、データディクショナリを格納しているファイル。
  • データファイルの名前は「制御ファイル」で管理される。
  • REDOログファイルは、データベースに対して行われた変更を記録しているファイル。障害からの回復に使用する。
  • REDOログファイルの名前は「制御ファイル」で管理される。
  • Oracle データベース には二つ以上のREDOグループが必要。REDOロググループを循環式で上書きする。
  • REDOログファイル内は、最低一つのメンバーが必要。
  • REDOログファイルを障害から保護するために、メンバーは異なるディスクに追加する。
  • REDOロググループ内のメンバー数は、異なっていても稼働するが、通常は同数にする。
  • 書き込み先のREDOログファイルを切り替える動作を「ログスイッチ」という。
  • 「制御ファイル」はデータベースの各ファイル(データファイル、REDOログファイル)の場所と名前、チェックポイント情報、SCM を取りまとめているファイル。
  • 制御ファイル名は「CONTROL_FILES初期化パラメータ」に記述されている。
  • 制御ファイルを多重化する時には、既存のファイルをコピーし、コピーした制御ファイル名をCONTROL_FILES初期化パラメータに追記する。

Oracleシステムのディスク上には様々なファイルが存在します。
データファイル、REDOログファイル、制御ファイルの3つをデータベースファイルといいます。
データファイル、REDOログファイル、制御ファイルは、「SCN(システム変更番号)」により整合性を保っています。
SCNは、データベースの同期化に使用されるOracle内部のタイムスタンプです。

データファイルは、表や索引、データディクショナリを格納しているファイルです。
データファイルの名前は「制御ファイル」で管理されます。

REDOログファイルは、障害発生時にトランザクションが最後に正常終了した状態(最後にコミットまたはロールバックした状態)にまでデータファイルを回復するためのデータが保存されています。
データベースに対して行われた変更の記録一件一件をREDOレコードといいます。

インスタンスについて

  • 「インスタンス」は、データベースファイルを管理する一連のメモリー構造。
  • 1つのインスタンスが管理できるデータベースファイルは1組だけ。
  • データファイルからデータを読み込み、データベースバッファキャッシュに書き込むのは「サーバプロセス」。
  • データバッファキャッシュの内容をデータファイルへ書き込むのは「データベースライター(DBWn)プロセス」。
  • 「SGA(System Global AREA : システムグローバル領域)」は Oracle の起動時に、一つのインスタンスに一つ獲得されるメモリ領域。
  • SGA は「サーバープロセス」と「バックグラウンドプロセス」に共有される。
  • SGA は SQL の作業場所として表の検索や更新を高速に行う。
  • SGA の主な構成要素は「データベースバッファキャッシュ」「共有プール」「REDOログバッファ」「Javaプール」「ラージプール」。
  • 「共有プール」は、共有可能な SQL 文をキャッシュしているメモリー領域。
  • 「データベースバッファキャッシュ」は、データファイルから読み込んだデータを保持(キャッシュ)するメモリ領域。
  • 「REDOログバッファ」は、データベースバッファキャッシュ上のデータに対して行われた変更履歴情報(REDOレコード)が書き込まれるメモリ領域。
  • REDOログバッファ以外の構成要素のサイズを調節させることができる。
  • REDOログファイルにあるREDOエントリーを永続的に保持するために「ログライター(LGWR)プロセス」がREDOログファイルへ書き込みを行う。
  • コミット時にREDOレコードの書き出しを行うのは「LGWR」。
  • ユーザープロセス、サーバープロセス以外のプロセスを「バックグラウンドプロセス」という。
  • バックグラウンドプロセスは Oracle が稼働している間常に起動された状態でいる。
  • 「データベースライター(DBWn)」は、データベースバッファキャッシュ上で更新されたデータ使用済みバッファをデータファイルに書き出すプロセス。
  • 「チェックポイント(CKPT)」には、チェックポイント時にデータファイルのヘッダーと制御ファイルにチェックポイント時の SCN を書き込むプロセス。
  • 「ログライター(LGWR)」はコミット時に、REDOログバッファ上の REDOレコードをREDOログファイルに書き込むプロセス。
  • 「アーカイバ(ARCn)」は、ARCHIVELOGモードでの運用時に、REDOログファイルの内容をアーカイブREDOファイルというファイルにコピーし、保存するプロセス。
  • 「システムモニター(SMON)」はREDOログファイルに保存されているREDOレコードを使用して、データベースをインスタンス障害から回復(リカバリ)するプロセス。
  • 「プロセスモニター(PMON)」は、プロセス障害からのクリーンアップを実行するプロセス。通信相手がいなくなったサーバプロセスをクリーンアップする。
  • 「管理モニター(MMON)」はパフォーマンス関連の統計情報を取得するプロセス。
  • PGA(プログラムグローバル領域)はサーバープロセス及びバックグラウンドプロセス毎に獲得するメモリ領域。
  • PGA は他のプロセスと共有されない。
  • PGA はサーバープロセスが処理する作業場所として、ユーザー変数の格納やソート処理が行われる。

インスタンスとは、データベースファイルを管理する一連のメモリー構造です。
SGAとは、Oracleの起動時に獲得されるメモリー領域です。
共有プールは、共有可能なSQL文をキャッシュしているメモリー領域です。
データベースバッファファイルは、データファイルから読みだしたデータを保持(キャッシュ)するメモリー領域です。
REDOログバッファは、データベースバッファキャッシュ上のデータに対して行われた変更履歴情報(REDOレコード)が書き込まれるメモリー領域です。

ログライタープロセス(LGWR)は、REDOログバッファにあるREDOエントリをREDOログファイルへ書き込むプロセスです。


参考書籍

オラクルマスター教科書 Bronze Oracle Database DBA12c "https://amzn.to/3o4ScxL"

今日の一言

第四章が分かったのでOracle DBAはマスターしたも同然!!!!

次回の記事はこちら

ORACLE MASTER Bronze Oracle Database 12c 第五章
"https://0371.blog/oracle-dba-5"