←戻る
シナリオ7<解答例> ランキング<確認例> 進む→
初回所要時間・・360分(核爆)
1.フィジカルスタンバイデータベース環境を構成してください。
プライマリ・データベース:シナリオ1で作成したもの
スタンバイ・データベース:新たに作成
Oracle Open Worldの資料
http://www.oracleopenworld.jp/conference/session1.html#2E-16一般公開されたようです。
データガードって何?という方はまずご一読アレ。
↑を見ながらやればこの問題はおそらく出来ると思います。
ちなみに特訓コースのテキスト(シナリオ8)から一部抜き出した感じです。
a)アーカイブログモードにする
log_archive_start=true
log_archive_dest="location=XXX"
startup mount
archive log start
b)データファイルの
バックアップ cp -r $ORACLE_
BASE/oradata/XXX $ORACLE_BASE/oradata/YYY
※コールドバックアップの場合はシャットダウンを忘れずに
c)スタンバイ用制御
ファイル作成
alter database create control file
as '$ORACLE_
HOME/dbs/XXX.ctl'
d)スタンバイ用パラメータファイル作成
cp initXXX.ora initYYY.ora
vi initYYY.ora
★注意するパラメータ
db_
name 変更しない
instance_name 変更する
service_names 変更する
lock_name_space 変更する(必須)
standby_file_management=auto
standby_archive_dest='XXX'
db_file_name_convert =
('XXX/oradata/XXX/','YYY/oradata/YYY/') 必須
log_file_name_convert =
('XXX/oradata/XXX/','YYY/oradata/YYY/') 必須
control_files='$ORACLE_HOME/dbs/XXX.ctl'
log_archive_dest_1 変更する(あとで必須?)
※log_file_name_convert、db_file_name_convertは直パス指定
最後に/(スラッシュ)を付けること
e)パスワードファイル作成(使用している場合のみ)
cp orapwXXX orapwYYY
f)マウントする
startup nomount
alter database mount standby database;
2.LGWRを使用してRedoログ転送を行う設定をしてください。
a)
ネットワーク設定
・tnsnames.ora
・listener.ora
必要部分をコピって追加すればOK。
※共有
サーバー接続にしているとうまく動作しなかったので注意。
b)初期化パラメータ設定
本番側に追加
log_archive_dest_2='SERVICE=YYY lgwr'
c)スタンバイREDOログの作成
alter database add standby logfile ('XXX') size 10M;
alter database add standby logfile ('YYY') size 10M;
※数を合わせる必要は無いが、サイズは本番用と合わせること
サイズの確認は”ls -al”でOK
※データベース作成時のMAXLOGFILESに制限される
3.実際にスタンバイ側に転送されることを確認してください。
LGWRでの転送を確認するならアラートファイルを見るべし。
4.スイッチオーバーを行ってください。
5.スイッチバックを行ってください。
どちらも手順は同じです。
現在、どっちが本番系でどっちがスタンバイ系なのかで混乱しないように。
a)初期化パラメータ設定
現在のプライマリに追加
standby_file_management=auto
standby_archive_dest='XXX'
db_file_name_convert =
('YYY/oradata/YYY/','XXX/oradata/XXX/')
log_file_name_convert =
('YYY/oradata/YYY/','XXX/oradata/XXX/')
現在のスタンバイに追加
log_archive_dest_2='SERVICE=XXX lgwr'
b)プライマリの状態確認
select switchover_status from v$database;
TO STANDBYであること
★
SESSIONS ACTIVEの場合
alter system set job_queue_processes = 0;
select count(*) from dba_jobs;
exec dbms_job.remove(JOBID);
他、リスナーが上がっていない、などの原因が考えられます。
って言うか全部ヒットして直しました(汗
c)プライマリ⇒スタンバイ
alter database commit to switchover to physical standby
with session shutdown wait;
shutdown immediate
startup nomount
alter database mount standby database;
d)スタンバイの状態確認
select switchover_status from v$database;
TO PRIMARYであること
e)スタンバイ⇒プライマリ
alter database commit to switchover to primary
with session shutdown wait;
※応答が返って来ない場合は
alter database standby database cancel;
を実行してみる(KROWN 112083)
shutdown immediate
startup
6.スタンバイ・データベースを読取り専用でオープンしてください。
recover managed standby database cancel;
alter database open read only;
問題の順序は最後になっていますが、スタンバイ・データベース構築時に
オープンできることを確認しておくべきです。
エラーが出る場合は、
db_file_name_convert、log_file_name_convert
の設定に誤りがあると考えられます。
バックアップの取得をやり直した場合は、
スタンバイ用の制御ファイルの作成も当然必要になります。
実はそんなところでも引っ掛かって結構悩んでました(爆
本番でやったら間違いなくタイムアウトです。
研修ですんなり出来たのは、おそらく出題形式が誘導尋問風だったから?
さて。
20日間近くに渡った練習問題&解答例シリーズは、今回で終了です。
(レプリケーションの設定は除きます)
ここまでお付き合いいただいた皆様、誠にありがとうございます。
試験に合格するだけの実力を身に付けることを目的としていますので、
実際の試験と全然違っても怒らないでくださいね~
カウントダウン開始します!
本試験まで、あと10日!