DataGuard切换保护模式

OS:Oracle Linux 6.6 x64
DB:Oracle 12.1.0.2

保护模式要和log_archive_dest参数相比配,具体见下表。由于切换保护模式时并不会检查log_archive_dest参数,因此DBA需要自行确认是否匹配。

Table 6-1 Required Redo Transport Attributes for Data Protection Modes

Maximum Availability Maximum Performance Maximum Protection

AFFIRM or NOAFFIRM

NOAFFIRM

AFFIRM

SYNC

ASYNC

SYNC

DB_UNIQUE_NAME

DB_UNIQUE_NAME

DB_UNIQUE_NAME

From:http://docs.oracle.com/database/121/SBYDB/protection.htm#SBYDB4744

注意:如果有多个Standby库,至少需要一个Standby库符合要求,即至少一个log_archive_dest_N参数符合上表的要求。

以下是一个从最高性能切换到最高可用的示例:

查看Primary当前配置:

点击(此处)折叠或打开

  1. SQL> show parameter log_archive_dest_2

  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. log_archive_dest_2 string service=stby LGWR ASYNC
  5.                                                                  valid_for=(ONL
  6.                                                  INE_LOGFILES,PRIMARY_ROLE)
  7.                                                                     db_unique_n
  8.                                                  ame=stby

  9. SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

  10. PROTECTION_MODE
  11. --------------------
  12. MAXIMUM PERFORMANCE
在Primary上设置参数:

点击(此处)折叠或打开

  1. SQL> alter system set log_archive_dest_2 = 'service=stby ASYNC AFFIRM
  2.   valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
  3.   db_unique_name=stby' scope=both;
在Primary上切换保护模式:

点击(此处)折叠或打开

  1. SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY ;

  2. Database altered.

  3. SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

  4. PROTECTION_MODE
  5. --------------------
  6. MAXIMUM AVAILABILITY

到这里就完成了。如果期望在switchover后原来的Standby再转变为Primary后也启用新的保护模式,也需要在原有的Standby上设置参数和保护模式。

请使用浏览器的分享功能分享到微信等