DataGuard入門 その2





https://info.insight-tec.com/hubfs/db_tech_library/TechBlog_DataGuard.png





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と、更新処理が可能になっています。

今回は、ここまでで終わります。

蒸し暑いです…茅ヶ崎にて