Data Guard 配置数据三种保护模式
DG 三种保护模式(级别递增):Maximum Performance --> Maximum
Availability --> Maximum Protection
根据oracle文档的解释,最高可用性数据保护模式需要先满足以下几个条件:
最大保护(高): Maximum Protection |
最大可用性(中): Maximum Availability |
最大性能(低): Maximum Performance | |
重做归档进程 | LGWR | LGWR | LGWR | ARCH |
网络传输模式 | SYNC | SYNC |
LGWR进程时为SYNC | ASYNC; ARCH进程则为SYNC |
磁盘写选项 | AFFIRM | AFFIRM | AFFIRM | NOAFFIRM |
是否需要备重做日志 | 是 | 是 | 否,但是推荐 |
注:Oracle 推荐运行在最大保护模式的DG 配置包含至少两个满足表中所列需求的备数据库。那样的话,数据库能在备数据库之一不能从主数据库接收重做数据时继续进行。
查看DG 数据库的保护模式:
SQL>select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
DATABASE_ROLE
---------------- -------------------- --------------------
PRIMARY
在主数据库上配置LOG_ARCHIVE_DEST_n 参数。
在主数据库上,适当配置LOG_ARCHIVE_DEST_n 参数属性。每种 DG数据保护模式在配置中需要至少一个备库,以满足在表中列出的最小需求集。
如何配置最大可用性模式:
从max performance模式升级到max availability或max protection模式时,需要确保归档路径里的 LGWR SYNC AFFIRM
从max performance模式升级到max availability或max protection模式时,需要确保归档路径里的 LGWR SYNC AFFIRM
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE= chicago
2> OPTIONAL LGWR SYNC AFFIRM
3> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
4> DB_UNIQUE_NAME= chicago ';
2> OPTIONAL LGWR SYNC AFFIRM
3> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
4> DB_UNIQUE_NAME= chicago ';
如果没有已经在 SPFILE 中指定,你也应该使用DB_UNIQUE_NAME 初始化参数指定唯一名字,以及在使用DG_CONFIG 属性的LOG_ARCHIVE_CONFIG上列出所有数据库。例如:
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
这将会允许动态添加一个备数据库到一个拥有运行在最大保护或最大可用性模式中的Real Application Cluster 主数据的Data Guard 配置。
第1 步如果你升级保护模式:
只有你升级保护模式才执行这个步骤(例如,从最大性能到最大可用性模式)。否则,跳到步骤3。假定这个例子是升级 DG配置从最大性能模式到最大可用性模式。
关闭主数据库并重启到安装模式:
SQL> shutdown immediate;
SQL> startup mount;
对于Real Application Clusters 数据库,关闭所有的主实例但只启动并安装一个主实例。
第 2 步设置数据保护模式。
要指定一种数据保护模式,只需在主数据库mount状态下执行(11g可在open状态下) 下面命令即可:
SQL> alter databae set standby database to maximize {protection | availability | performance}
例如,下面的语句指定了最大可用性模式:
SQL> alter database set standby database to maximize availability;
第3 步打开主数据库。
如果你执行步骤1 来升级保护模式,打开数据库:
SQL> alter database open;
注意:升级保护模式只需要在主数据库上执行操作;而降级保护模式,则可在数据库打开的状态下直接操作。
第 4 步在备库上配置LOG_ARCHIVE_DEST_n 参数。
在备库上,配置LOG_ARCHIVE_DEST_n 参数属性使得配置能在切换过后继续操作在新的保护模式。例如:
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=boston
2> OPTIONAL LGWR SYNC AFFIRM
3> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
4> DB_UNIQUE_NAME=boston';
第 5 步确认配置操作在新的保护模式。
查询 V$DATABASE 视图以确认Data Guard 配置操作在新的保护模式。例如:
SQL> select protection_mode, protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
--------------------- ---------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY