Oracle 19C Data Guard 基础运维 -06 PROTECTION MODE
针对三种Protection Modes ,对应的 Network transmission mode 和 Disk write option 如下,对比了 10g,11g,19C 版本官方文档关于 Protection Modes 描述, 10g 描述的更详细些。
19C

11g

10g
https://docs.oracle.com/cd/B19306_01/server.102/b14239/log_transport.htm#i1183694

参数说明:
SYNC:
SYNC属性指定使用同步重做传输模式将重做数据发送到重做传输目标。
The SYNC attribute specifies that the synchronous redo transport mode be used to send redo data to a redo transport destination.
ASYNC:
ASYNC属性指定使用异步重做传输模式将重做数据发送到重做传输目标。如果未指定SYNC或ASYNC属性,则使用异步重做传输模式。
The ASYNC attribute specifies that the asynchronous redo transport mode be used to send redo data to a redo transport destination. The asynchronous redo transport mode is used if neither the SYNC nor the ASYNC attribute is specified.
AFFIRM:
指定重做传输 目的地 在将接收到的 redo data 写入 standby redo log 后对其进行确认。
specifies that a redo transport destination acknowledges received redo
data after writing it to the standby redo log.
NOAFFIRM:
指定重做传输 目的地 在将接收到的 redo data 写入standby redo log 之前 对其进行确认。
specifies that a redo transport destination acknowledges received redo
data before writing it to the standby redo log.
主库参数:
SQL> set line 100
SQL> SELECT NAME,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE ,DB_UNIQUE_NAME FROM v$database;
NAME PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE DB_UNIQUE_NAME
--------- -------------------- -------------------- ---------------- ------------------------------
CJCDB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY chendb
SQL> show parameter log_archive_config
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string DG_CONFIG=(chendb,cjcdb)
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chendb
SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string SERVICE=cjcdb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cjcdb
备库参数:
SQL> SELECT NAME,PROTECTION_MODE,PROTECTION_LEVEL,DATABASE_ROLE ,DB_UNIQUE_NAME FROM v$database;
NAME PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE DB_UNIQUE_NAME
--------- -------------------- -------------------- ---------------- ------------------------------
CJCDB MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY cjcdb
SQL> show parameter log_archive_config
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string DG_CONFIG=(cjcdb,chendb)
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=cjcdb
SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string SERVICE=chendb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=chendb
更改参数:
---主库
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=cjcdb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cjcdb';
SQL> shutdown immediate
SQL> startup
---备库
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=chendb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=chendb';
SQL> shutdown immediate
SQL> startup
SQL> recover managed standby database using current logfile disconnect from session;
------ALTER DATABASE RECOVER managed standby database using current logfile disconnect from session;
再次查看参数:
---主库
SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string SERVICE=cjcdb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cjcdb
---备库
SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string SERVICE=chendb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=chendb
更改保护模式:
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};
一:由MAXIMUM PERFORMANCE更改成MAXIMUM AVAILABILITY
主库:
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
主库日志:

备库日志:

查看包括模式:主库、备库
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;
PROTECTION_MODE
--------------------
MAXIMUM AVAILABILITY
二:由 MAXIMUM AVAILABILITY 更改成MAXIMUM PROTECTION
主库:
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;
主库日志:

备库日志:

查看包括模式:主库、备库
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;
PROTECTION_MODE
--------------------
MAXIMUM PROTECTION
三:由 MAXIMUM PROTECTION 更改成MAXIMUM PERFORMANCE
主库:
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE ;
主库日志:

备库日志:

查看包括模式:主库、备库
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;
PROTECTION_MODE
--------------------
MAXIMUM PERFORMANCE
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!