2020-05-27

【12c】DataGuard物理备库角色切换

【12c】DataGuard物理备库角色切换


Data Guard环境中数据库的角色转换有两种,分别为Switchover和Failover,通过名称可知,前者是正常的主备库之间的角色切换,该切换方式不会丢失数据;后者是故障切换,即主库不能继续提供服务的切换,可能发生数据丢失。从12.1版本开始,切换到物理备库的操作得以简化,本篇分别对这两种切换方式进行演示。

1 Switchover切换到备库

1)验证目标备库是否做好切换

SQL> alter database switchover to orcldg verify;Database altered.

2)启动主数据库的切换

SQL> alter database switchover to orcldg;Database altered.

3)打开新主库

SQL> select instance_name,status from v$instance;INSTANCE_NAME STATUS---------------- ------------orcldg MOUNTEDSQL> alter database open;Database altered.

4)启动新备库

SQL> startupORACLE instance started.Total System Global Area 1644167168 bytesFixed Size 2925024 bytesVariable Size 1056968224 bytesDatabase Buffers 570425344 bytesRedo Buffers 13848576 bytesDatabase mounted.Database opened.

5)新备库开启日志应用

SQL> alter database recover managed standby database disconnect from session;Database altered.

6)查看主备库状态

主库:

SQL> select name,database_role,switchover_status from v$database;NAME DATABASE_ROLE SWITCHOVER_STATUS--------- ---------------- --------------------ORCL PRIMARY TO STANDBY

备库:

SQL> select name,database_role,switchover_status from v$database;NAME DATABASE_ROLE SWITCHOVER_STATUS--------- ---------------- --------------------ORCL PHYSICAL STANDBY NOT ALLOWED

2 Failover切换到备库

1)主库故障,但可启动至mount

SQL> shutdown abortORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 1644167168 bytesFixed Size 2925024 bytesVariable Size 1073745440 bytesDatabase Buffers 553648128 bytesRedo Buffers 13848576 bytesDatabase mounted.

2)刷新未使用的redo至备库

SQL> alter system flush redo to orcl;System altered.

3)备库确认是否有GAP,若有,拷贝未归档的丢失的归档日志至备库,并完成注册

SQL> select * from v$archive_gap;

注册语法:

SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

4)取消备库的日志应用

SQL> alter database recover managed standby database cancel;Database altered.

5)备库故障转移至主库

SQL> alter database failover to orcl;Database altered.

6)打开新主库

SQL> select instance_name,status from v$instance;INSTANCE_NAME STATUS---------------- ------------orcl MOUNTEDSQL> alter database open;Database altered.

7)打开新主库后,建议做个数据库全备,另外,故障切换后,可以使用闪回数据库或使用RMAN备份将其转换为新的备库。

故障切换的场景比较复杂,可根据实际情况进行处理。

以上,就是使用switchover或failover实现物理备库角色的转换。

 

 


No comments:

Post a Comment