DataGuard入門 その2
Oracle DataGuardについて、その基本構成、セットアップ方法、スイッチオーバー、Flashback、管理方法などを紹介する全4回の連載を1冊にまとめました。
Oracle DataGuardとは・・・1つ以上の Standby Database から構成されていてプライマリデータベース(稼動している方)から Standby Database へ REDO ログを転送し、同期をとることで、可用性を高めるものです。DataGuard には、Physical Standby Database と Logical Standby Database の 2つの構成を利用することができます。
*eBook版のダウンロードをご希望の方は、画像をクリック
<DataGuard入門 その2>
ペンネーム:りん
先週にひき続いて、新米りんがDataGuard入門をお送りします。
せっかくStandby Databaseを作ったのでどのくらいで切り替えられるのか試し
てみたいと思います。
○Oracle10gの新機能
Oracle10gからは、パッチ適用時にスイッチオーバーを行う「ローリング・ア
ップグレード」という機能がサポートされています。(Logical Standbyのみ)
これは、PSRがリリースされたらやってみたいと思います。
○では早速…
SQL> conn / as sysdba アイドル・インスタンスに接続しました。 SQL> startup mount ORACLEインスタンスが起動しました。 Total System Global Area 188743680 bytes Fixed Size 778036 bytes Variable Size 162537676 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes データベースがマウントされました。
Standby可能状態にあるかどうかは
v$databaseビューのswitchover_statusで確認できます。
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO STANDBY
大丈夫なようです。
じゃあ早速切換えちゃいます。
SQL> alter database commit to switchover to physical standby; alter database commit to switchover to physical standby * 行1でエラーが発生しました。: ORA-01109: データベースがオープンされていません。
あら…オープンしなきゃダメみたいです。
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- SESSIONS ACTIVE
SESSIONS ACTIVEになりました。
この状態でスイッチオーバーができるのでしょうか?
SQL> alter database commit to switchover to physical standby; データベースが変更されました。
できた…のかなぁ?
alert_log ----------------------------------------------------------------------- Mon Jun 28 21:22:20 2004 alter database commit to switchover to physical standby Mon Jun 28 21:22:20 2004 primary; ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY Mon Jun 28 21:22:20 2004 ARCH: Connecting to console port... Performing log switch to complete LGWR archival of current logfile Archiving all current logfiles on all instances ~略~ primary; Switchover: Complete - Database shutdown required Mon Jun 28 21:22:37 2004 ARCH: Connecting to console port... Completed: alter database commit to switchover to physical st -----------------------------------------------------------------------
SQL> select DATABASE_ROLE from v$database; DATABASE_ROLE ---------------- PHYSICAL STANDBY
スイッチオーバーできたようです。
この環境では、20秒程度でスイッチオーバーできるようですね。ちなみに、
スイッチオーバー完了後は、プライマリデータベースはスイッチバックを行
うまで、読み取り専用でオープンされます。更新を伴う処理はできません。
○スイッチバック
では、スイッチオーバーしたプライマリデータベースを切り戻ししてみます。
SQL> startup mount ORACLEインスタンスが起動しました。 Total System Global Area 188743680 bytes Fixed Size 778036 bytes Variable Size 162537676 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes データベースがマウントされました。
Primary側で、switchover_statusを見てみます
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO PRIMARY SQL> alter database commit to switchover to physical primary; データベースが変更されました。
alert_log ----------------------------------------------------------------------- primary; ALTER DATABASE SWITCHOVER TO PRIMARY Tue Jun 29 23:16:20 2004 ARCH: Connecting to console port... If media recovery active, switchover will wait 900 seconds SwitchOver after complete recovery through change 506035 Standby became primary SCN: 506034 Flashback Database Disabled Tue Jun 29 23:16:23 2004 primary; Switchover: Complete - Database shutdown required ARCH: Connecting to console port... Completed: alter database commit to switchover to physical primary -----------------------------------------------------------------------
3秒程度で完了したみたいですが
ステータスはどうなったのでしょうか?
一度、shutdownした後、プライマリデータベースとして起動する必要があるので
インスタンスを再起動して…
SQL> select DATABASE_ROLE,OPEN_MODE from v$database; DATABASE_ROLE OPEN_MODE ---------------- ---------- PRIMARY READ WRITE
お!ちゃんとPRIMARYロールに設定されています
OPEN_MODEもREAD WRITEと、更新処理が可能になっています。
今回は、ここまでで終わります。
蒸し暑いです…茅ヶ崎にて