Oracle管理者のためのSQLリファレンス

制御ファイル

制御ファイルは、Oracleデータベースの物理構造を記録したバイナリ・ファイルで「データベース名」「対応するデータ・ファイルとREDOログ・ファイルの名前と位置」「データベース作成のタイムスタンプ」「現行のログ順序番号」「チェックポイント情報」といった情報が含まれています。制御ファイルは少なくとも1つは必要で、複数のコピーを作成して多重化することが推奨されています。(SQLの表記ルールは、こちらから参照できます)

制御ファイル名および配置場所を取得する
SELECT name FROM v$controlfile;
制御ファイルのファイル名、および配置されているディレクトリ情報を取得するには、V$CONTROLFILEビューからNAME列を取得します。制御ファイルはデータベースの作成とともに作られます。デフォルトで作成される制御ファイルの数はOSによって異なります。

サーバ・パラメータ・ファイル(SPFILE)から制御ファイルの情報を取得する
SELECT name,value
FROM v$spparameter
WHERE name = 'control_files';
制御ファイルの情報をサーバ・パラメータ・ファイル(SPFILE)から確認するには、V$SPPARAMETERからcontrol_filesを条件に検索します。
関連項目:現在有効なサーバー・パラメータ・ファイル(SPFILE)の内容を動的パフォーマンスビューから表示する

初期化パラメータに制御ファイルを指定する
ALTER SYSTEM SET control_files =
  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL',
  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL',
  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL03.CTL'
SCOPE = SPFILE;
サーバ・パラメータ・ファイル(SPFILE)で制御ファイルの初期化パラメータ値を指定するには、ALTER SYSTEM文でcontrol_filesを指定し、変更/追加する制御ファイルのフルパスを記述します。なお、control_filesは静的パラメータなので、必ずSCOPE = SPFILEを指定します。

既存のデータベースで制御ファイルの初期化パラメータ値を変更/追加する場合、OSのコピーコマンドを使ってここで指定した場所に制御ファイルをコピーします。新規にデータベースを作成する際は、ここで指定した場所に制御ファイルが作成されます。
関連項目:サーバー・パラメータ・ファイル使用時に、静的パラメータ値を変更する

既存の制御ファイルの複製を作成する
ALTER DATABASE BACKUP CONTROLFILE
TO '/oracle/backup/control.bkp';
既存の制御ファイルの複製(バイナリ・ファイル)を作成するには、ALTER DATABASE文でBACKUP CONTROLFILE TO句に続けてバックアップ先のディレクトリとファイル名をフルパスで指定します。

既存の制御ファイルをリストアできるSQL文を生成する
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
制御ファイルの再作成に使用できるSQL文を生成するには、ALTER DATABASE文にBACKUP CONTROLFILE TO TRACE句を指定します。SQL文を含んだファイルは、初期化パラメータuser_dump_destで指定したディレクトリに作成されます。

Oracle管理者のためのSQLリファレンス



   Oracle関連記事リンク集


Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間