実機検証:DataGuard 保護モード設定(Upgrade Maximum Availability Mode)

検証目的

Data Guard最大パフォーマンスモードから最大可用性モードへアップブレード

システム要件

Oracleバージョン:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi

Primary DB:rh-ora10g-s01(vmware環境):
OS:RH Linux AS3

Standby DB:rh-ora10g-s02(vmware環境):
OS:RH Linux AS3

Upgrade前の要件確認

1.現在の保護モード確認(Primary DB)

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE                          PROTECTION_LEVEL
---------------------------------------- --------------------------------------------------
MAXIMUM PERFORMANCE                      MAXIMUM PERFORMANCE

2.LOG_ARCHIVE_DEST_n構成(Primary DB)

SQL> show parameter log_archive_dest_

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_1                   string     location=/u03/oradata/feng/arc
                                                h valid_for=(all_logfiles,all_
                                                roles)
log_archive_dest_10                  string
log_archive_dest_2                   string     service=feng-s lgwr async vali
                                                d_for=(online_logfiles,primary
                                                _role)
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string     enable
log_archive_dest_state_10            string     enable
log_archive_dest_state_2             string     enable
log_archive_dest_state_3             string     enable
log_archive_dest_state_4             string     enable
log_archive_dest_state_5             string     enable
log_archive_dest_state_6             string     enable
log_archive_dest_state_7             string     enable

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_state_8             string     enable
log_archive_dest_state_9             string     enable

3.LOG_ARCHIVE_DEST_n構成(Standby DB)

SQL> show parameter log_archive_dest_

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_1                   string     location=/u03/oradata/feng/arc
                                                h valid_for=(all_logfiles,all_
                                                roles)
log_archive_dest_10                  string
log_archive_dest_2                   string     service=feng-p lgwr async vali
                                                d_for=(online_logfiles,primary
                                                _role)
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string     enable
log_archive_dest_state_10            string     enable
log_archive_dest_state_2             string     enable
log_archive_dest_state_3             string     enable
log_archive_dest_state_4             string     enable
log_archive_dest_state_5             string     enable
log_archive_dest_state_6             string     enable
log_archive_dest_state_7             string     enable

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_state_8             string     enable
log_archive_dest_state_9             string     enable

最大可用性モード(Maximum Availability Mode)へアップグレード

1.Primary DBのLOG_ARCHIVE_DEST_n構成

SQL> alter system set log_archive_dest_2='service=feng-s optional lgwr sync affirm valid_for=(online_logfiles,primary_role)' scope=spfile;

システムが変更されました。

2.Primary DBをMOUNTモードに再起動して、最大可用性モードに指定する

保護モード変更SQL:ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {PROTECTION | AVAILABILITY | PERFORMANCE}

SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup mount;
ORACLEインスタンスが起動しました。

Total System Global Area  209715200 bytes
Fixed Size                  2019640 bytes
Variable Size              88084168 bytes
Database Buffers          117440512 bytes
Redo Buffers                2170880 bytes
データベースがマウントされました。
SQL> show parameter log_archive_dest_2

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_2                   string     service=feng-s optional lgwr s
                                                ync affirm valid_for=(online_l
                                                ogfiles,primary_role)

SQL> alter database set standby database to maximize availability;

データベースが変更されました。

SQL> alter database open;

データベースが変更されました。

SQL>

3.Standby DBのLOG_ARCHIVE_DEST_n構成

スタンバイ・データベースで、スイッチオーバー後も構成が新しい保護モードで操作を継続できるようにLOG_ARCHIVE_DEST_nを設定する。

SQL> alter system set log_archive_dest_2='service=feng-p optional lgwr sync affirm valid_for=(online_logfiles,primary_role)' scope=both;

システムが変更されました。

SQL> show parameter log_archive_dest_2

NAME                                 TYPE       VALUE
------------------------------------ ---------- ------------------------------
log_archive_dest_2                   string     service=feng-p optional lgwr s
                                                ync affirm valid_for=(online_l
                                                ogfiles,primary_role)
SQL>

アップグレード後の確認

1.アップグレード後のPrimary DBの保護モード確認

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE                          PROTECTION_LEVEL
---------------------------------------- --------------------------------------------------
MAXIMUM AVAILABILITY                     MAXIMUM AVAILABILITY

SQL>

2.Standby DBのStandby REDO LOG使用状態

SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

    GROUP#    THREAD#  SEQUENCE# ARCHIVED  STATUS
---------- ---------- ---------- --------- ------------------------------
         4          1         16 YES       ACTIVE
         5          1          0 NO        UNASSIGNED
         6          0          0 YES       UNASSIGNED

SQL>

Standby REDO LOG Group4はアクティブ状態になっている。

3.Primary DBでREDOログ転送検証

Primary DBで下記の操作実行

SQL> conn feng/feng
接続されました。
SQL> select count(*) from dg_test;

  COUNT(*)
----------
     22506

SQL> delete from dg_test;

22506行が削除されました。

SQL> commit;

コミットが完了しました。

SQL> conn / as sysdba
接続されました。
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL>

Standby DBを読み取り専用モードでオープン
SQL> alter database recover managed standby database cancel;

データベースが変更されました。

SQL> alter database open read only;

データベースが変更されました。

SQL> select count(*) from feng.dg_test;

  COUNT(*)
----------
         0

SQL>

Standby DBのfeng.dg_testテーブルの件数が「0」になっているので、Primary DBでLog Switchを行わずにDELETE操作をStandby DBに反映することを検証した。

2008.11.03 2:35 by moc.todikiw.bup-elcaro|nosaJ#moc.todikiw.bup-elcaro|nosaJ
個人的な検証メモなので無断転載などをしないで下さい。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License