@634

Oracle - 制御ファイルの多重化

Advertisement

制御ファイルの多重化

制御ファイルは障害対策のため、多重化したほうがよい。

制御ファイルの追加は動的パラメータの設定をすることにより実現することができるが、設定を反映させるためにはデータベースの再起動が必要となる。

多重化の手順
  1. alter system set control_files コマンドでサーバパラメータファイルを変更する
  2. データベースを停止する
  3. 制御ファイルをコピーする
  4. データベースを起動する
手順を間違えるとエラーになるため注意が必要

例:制御ファイルの多重化

SQL> connect / as sysdba
接続されました。

SQL> select name from v$controlfile;
NAME
-----------------------------------------------------------------------------
D:\ORADATA\CONTROL01.CTL

SQL> alter system set control_files=
 'd:\oradata\control01.ctl',
 'd:\oradata\control02.ctl'
 scope=spfile;
システムが変更されました。

SQL> shutdown
データベースがクローズされました。
データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。

-- 物理ファイルを作成しないで起動

SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area  109868016 bytes
Fixed Size                   283632 bytes
Variable Size              75497472 bytes
Database Buffers           33554432 bytes
Redo Buffers                 532480 bytes
ORA-00205: 制御ファイル識別エラー。
  詳細はアラート・ログをチェックしてください。

SQL> shutdown
ORA-01507: データベースがマウントされていません。
ORACLEインスタンスがシャットダウンされました。

-- ここでディスク上のcontrol01.ctlをコピーして
-- 名前をcontrol02.ctlに変更

SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area  109868016 bytes
Fixed Size                   283632 bytes
Variable Size              75497472 bytes
Database Buffers           33554432 bytes
Redo Buffers                 532480 bytes
データベースがマウントされました。
データベースがオープンされました。

SQL> select name from v$controlfile;
NAME
-----------------------------------------------------------------------------
D:\ORADATA\CONTROL01.CTL
D:\ORADATA\CONTROL02.CTL
一度目の再起動で起動時エラーが発生しているが、これは指定した制御ファイルが存在しないためである。

また、制御ファイルをコピーしてからデータベースを停止した場合、停止した時点でコピー元のファイルが更新され、コピーしたファイルと内容が異なってしまうため、多重化は失敗する。

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール