ORACLE DATA GUARD 容灾恢复解决方案
SQL>select switchover_status from v$database;
如果返回TO PRIMARY
SQL>alter database commit to switchover to primary;
否则
SQL>alter database commit to switchover to primary with session shutdown
启动数据库
SQL>shutdown immediate SQL>startup
SQL>alter system switch logfile;
SQL>select max(sequence#) from v$archived_log;
2) 查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status; SQL>select status,database_mode from v$archive_dest_status;
注:如果做了switchover,主库参数设置成以下方式,会触发ora-16009错误,按以下操作即可:
Alert system set log_archive_dest_2=’service=primary DB_UNIQUE_NAME=orcl’ scope=spfile;
八、 切换保护模式
1、 在primary上操作
1) 首先查看当前的保护模式
SQL>select protection_mode,protection_level from v$database;
2) 修改初始化参数
SQL>alter
system
set
log_archive_dest_2='SERVICE=standby
OPTIONAL
LGWR
SYNC
AFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby';
3) 重启数据库并设置新的数据保护模式 SQL>shutdown immediate SQL>startup mount
SQL>alter database set standby database to maximize availability; SQL>alter database open;
SQL>select protection_mode,protection_level from v$database;
提示:maximize后可跟{PROTECTION | AVAILABILITY | PERFORMANCE},分别对应最大保护,最高可用性及最高性能。
2、 在standby上操作
1) 修改standby初始化参数设置(主要考虑角色切换,如果只测试的话本步可跳过)
SQL>alter system set log_archive_dest_2='SERVICE=primary OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary'; 2) 查看当前的保护模式
SQL>select instance_name from v$instance; INSTANCE_NAME ---------------- standby
SQL>select protection_mode,protection_level from v$database; PROTECTION_MODE PROTECTION_LEVEL -------------------- --------------------
6
ORACLE DATA GUARD 容灾恢复解决方案
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
配置成功,正面顺便再测试一下。
3、 停掉standby数据库,再查看primary数据库状态
SQL>select protection_mode,protection_level from v$database; PROTECTION_MODE PROTECTION_LEVEL -------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database cancel;--该语句如果报错,可忽略 SQL>alter database recover managed standby database disconnect from session;
Standby数据库shutdown后,primary数据库保护级别切换为待同步。 注: 主库的保护模式修改之后,备库的模式也会改变,和主库保持一致。
7