「Oracleインスタンス」の編集履歴(バックアップ)一覧に戻る
Oracleインスタンス - (2008/04/22 (火) 13:12:15) のソース
&bold(){データベースを起動・停止する単位} Oracleサーバーは、 ・Oracleインスタンス ・Oracleデータベース から構成されている。 **&bold(){Oracleインスタンス} Oracleインスタンスは、 ・システムグローバル領域(SGA)いう作業用メモリ空間 ・バックグラウンドプロセス から構成されている。 Oracleデータベースに対して、最低1つのOracleインスタンスが必要 &u(){1つのOracleサーバ上に複数のインスタンスを作成し、複数のデータベースを同時に使うこともできる。} &bold(){『SGA(システムグローバル領域)』} |共有プール|ユーザー間で共有できるようにSQL文をキャッシュしたり、データディクショナリ結果をキャッシュしたりする| |データベースバッファキャッシュ|データファイルから取り出したデータブロックをキャッシュする。&br() 問い合わせの場合もDML(Data Manipulation Language:データ操作言語)の場合も、一度データベースバッファキャッシュにキャッシュしてから処理を行う。&br() DMLにて変更されたデータベースブロックはDBWnによってデータファイルに書き出される| |REDOログバッファ|データベースに対する変更情報をREDOレコードとしてキャッシュする。&br() REDOレコードはデータベースの回復のために使用され、LGWRによってREDOログファイルに書き出される| |Javaプール|OracleJVM(Java仮想マシン)で動作するJavaコードやデータを格納する| |ラージプール|共有サーバ接続時のセッション関連メモリやI/O要求、Recovery Manager(RMAN)で使用するメモリを格納する。&br() ラージプールはオプションメモリで、構成していない場合は共有プールが使用される| &u(){自動共有メモリ管理} Oracle Database 10gから「自動共有メモリ管理」機能が提供されるようになりました。 SGA全体のターゲットサイズを設定するだけで、Oracleサーバは以下のメモリを動的に調整してくれるようになります。 ・共有プール ・データベースバッファキャッシュ ・Javaプール ・ラージプール SGA全体のターゲットサイズは、「SGA_TARGET」初期化パラメータで設定します。 &bold(){『バックグラウンドプロセス』} |プロセス|説明| |DBWn(データベースライタ)|データベースバッファキャッシュ内の変更されたデータブロックをデータファイルに書き出す| |LGWR(ログライタ)|REDOログバッファのREDOログレコードをREDOログファイルに書き出す| |CKPT(チェックポイント)|チェックポイント(データベースバッファキャッシュとデータファイルの同期を取り、書き込みを保証するイベント)が発生した場合、&br() DBWnにシグナルを送ってデータファイルに書き込ませ、その後データファイルと制御ファイルにチェックポイント情報を書き込む| |ARCn(アーカイバ)|REDOログファイルのログスイッチ(切り替え)が発生した場合、アーカイブ領域にアーカイブログファイルを作成する。&br() データベースがARCHIVELOGモードのときのみ起動するバックグラウンドプロセス| |SMON(システムモニタ)|システム障害のためにデータベースが停止した場合、次回のインスタンス起動時にインスタンスリカバリを開始する| |PMON(プロセスモニタ)|ユーザープロセスに障害が発生したとき、対応しているサーバプロセスのリソースを開放する| ユーザーがアクセスするときは、アプリケーション側のプロセスとサーバ側のプロセスが通信します。 アプリケーション側のプロセスをユーザープロセス、サーバ側のプロセスをサーバプロセスと呼びます。 サーバプロセスやバックグラウンドプロセスは、PGA(プログラムグローバルエリア)と呼ばれる独自のメモリを持ちます。 ---- **&bold(){Oracleデータベース} Oracleデータベースは実際のファイルで構成されます。 |制御ファイル|データベースの物理構成やチェックポイント情報などの管理情報を格納したファイル| |REDOログファイル|データベースに対する変更を格納し、システム障害があったときの回復処理に利用する。&br() 最低2つのグループを持ち、ログスイッチで切り替えながら循環して書き込みが行われる| |データファイル|表内のデータや索引など、すべてのデータベースデータを格納する。論理的には[[表領域]]に対応する| ***REDOログファイル REDOログファイルは、データに対する変更履歴を格納し、リカバリ処理に使用されるものです。 REDOログファイルは「グループ」で構成されます。グループには1つ以上のREDOログファイルを含めることができ、 1つのグループに複数のファイルが存在する場合は、それらは同じ内容を記述したコピーファイルです。 グループを構成するこれらのファイルを「メンバー」と呼びます。 グループへの書き込みは、LGWR(ログライタ)が行います。 REDOログファイルが満杯まで書き込まれるか、明示的にコマンドによる切り替えが行われると、次のグループに書き込みを開始します。 このような切り替えを「ログスイッチ」と呼びます。新しいグループには、「ログ順序番号」という内容を診断するための順序番号が新たに割り当てられ、 循環して上書きされても、どの時点のREDOログエントリであるかが判断できるようになっています。 LGWRは、グループ内の1つのメンバーにREDOログエントリを書き込むことができる限り、動作し続けることができます。 ***データファイル データファイルには、データベースが扱う実際のデータが格納されています。 データはサーバプロセスによりデータベースバッファキャッシュに読み込まれ、データベースバッファキャッシュ上で問い合わせや更新処理が行われます。 更新処理が行われたブロックは「使用済みバッファ」と呼ばれ、DBWn(データベースライタ)によってデータファイルに書き込まれます。 データファイルへの書き込みは、チェックポイント(CKPTによる信号送信)時、データベースバッファキャッシュのメモリ不足時、データベース停止時(ABORTによる停止を除く)に行われます。 コミット時にはデータファイルへの書き込みは行われません。コミット時は、LGWRによるREDOログファイルへの書き込みが行われているため、 障害発生時はREDOログファイルからのリカバリ処理で対応できるようになっています。 &u(){アーカイブログファイル} REDOログファイルのバックアップに相当するファイル。REDOログファイルのログスイッチ時にARCnによって作成される。ディスク障害が発生した場合のリカバリ処理に利用される。 データベースがARCHIVELOGモードのときだけ作成されるファイル ---- **Oracleインスタンスの起動と停止 http://www.atmarkit.co.jp/fdb/ref/ref_oracle/startup.html#01 Oracleサーバの起動には、インスタンスの起動とデータベースの起動が必要です。 インスタンス起動の準備 SQLPLUS /NOLOG ┗ 手順1 まず、データベースに接続せずに、SQL*Plus を起動します。コマンドラインから「/NOLOG」オプションを付けてSQLPLUSコマンドを発行します。 CONNECT username/password AS [SYSDBA | SYSOPER] ┗ 手順2 SQL*Plusセッションを起動したら、管理者アカウント(デフォルトではsysまたは system)として、SYSDBA(あるいはSYSOPER)システム権限でOracleデータベースに接続します。これで、データベース・インスタンスを起動する準備が完了します。 インスタンスを起動し、データベースをマウントしてオープンする STARTUP ***1. NOMOUNT(インスタンスの起動:SGAを割り当て、バックグラウンドプロセスを起動) 新規にデータベースを作成する場合などにNOMOUNT(インスタンスのみの起動)を使用します。 &u(){初期化パラメータ} Oracleインスタンスのメモリサイズなどは、インスタンスが起動するときに読み込まれる初期化パラメータファイルで設定されます。 初期化パラメータファイルには、 ・SPFILE(サーバパラメータファイル) ・PFILE(テキストのパラメータファイル) があります。 |種類|説明| |SPFILE|Oracleサーバによる読み取りと書き込みが可能なバイナリ形式の初期化パラメータファイル。&br() Oracleインスタンスを起動したままで動的に変更した初期化パラメータ値の保存が可能。&br() PFILEよりも優先して読み込まれる| |PFILE|Oracleサーバによる読み取りのみ可能なテキスト形式の初期化パラメータファイル。&br() 動的に変更した初期化パラメータ値はファイルに保存されないため、エディタなどで手動編集が必要| Database Controlでは、「管理」タブ→「インスタンス」リージョンの「すべての初期化パラメータ」から現在の初期化パラメータ値の参照や変更ができます。 「現行」タブか、「SPFile」タブの「SPFileモードでの変更を現在実行中のインスタンスに適用する」チェックボックスを使用すると、動的な変更が行えます ***2. MOUNT(データベースのマウント:制御ファイルをオープン) データベースのリカバリ作業などの特定処理を行う場合にはMOUNT(データベースのマウント)で起動することができます。 ***3. OPEN(データベースのオープン:データファイル、REDOログファイルをオープン) 通常のOracleユーザは、OPEN(データベースのオープン)するまでは接続できません。 インスタンスを停止するときは、「標準」「トランザクション」「即時」「中断」の4つからオプションを選択します デフォルトは「即時」停止です。 「中断」を使用すると、次回インスタンス起動時にリカバリ作業が入ります。