dataguard 切换保护模式

 1、首先查看当前的保护模式   ---primary数据库操作

SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

2、修改初始化参数    --primary数据库操作
SQL> alter system set log_archive_dest_2='SERVICE=standby
  2  OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  3  DB_UNIQUE_NAME=standby';
系统已更改。

3、重启数据库并设置新的数据保护模式    --primary数据库操作
语句非常简单,如下:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  167772160 bytes
Fixed Size                  1289484 bytes
Variable Size             121635572 bytes
Database Buffers           37748736 bytes
Redo Buffers                7098368 bytes
数据库装载完毕。

SQL> alter database set standby database to maximize availability;
数据库已更改。

提示:maximize后可跟{PROTECTION | AVAILABILITY | PERFORMANCE},分别对应最大保护,最高可用性及最高性能。
Down掉数据库,重新启动

SQL>alter database open;

4、看一下当前的保护模式    --primary数据库操作
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

5、修改standby初始化参数设置(主要考虑角色切换,如果只测试的话本步可跳过)   ---standby数据库操作
SQL> alter system set log_archive_dest_2='SERVICE=primary OPTIONAL LGWR SYNC AFFIRM
  2  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary';
系统已更改。

查看当前的保护模式
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
standby

SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

配置成功,正面顺便再测试一下。

6、停掉standby数据库,再查看primary数据库状态
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION
Standby数据库shutdown后,primary数据库保护级别切换为待同步。

你可能感兴趣的:(dataguard)