DG分为主库和备库,我们也猜测其属于primary与standby 之间的互动,那么在primary 和standby 之间的切换:
针对不同standby(逻辑或物理)的处理方式也不尽相同。
角色转换前的准备工作:
1检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数都进行了正确的配置。
Switchover;
无损转换,通常是用户手动触发或者有计划的让其自动触发,比如硬件升级,软件升级之类的。通常它给你带来的工作量非常小并且都是可预计的。其执行分两个阶段,
Failover:
不可预知原因导致primary 数据库故障并且短期内不能恢复就需要failover。如果是这种切换那你就要小心点了,有可能只是虚惊一场,但如果运气不好又没有完备的备份恢复策略而且primary 数据并非处于最大数据保护或最高可用性模式地话,这种情况下呢丢失数据有可能是难免的,,并且如果其故障未能修复,那它甚至连快速修复成为standby 的机会也都失去了;
在执行failover 之前,尽可能将原primary 数据库的可用redo 都复制到standby 数据库。
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZEPERFORMANCE;
等standby 切换为新的primary 之后,你可以再随意更改数据库的保护模式。
maximum protection模式需要确保绝无数据丢失,因此其对于提交事务对应的redo 数据一致性要求非常高,另外,这也是由maximum protection 模式特性决定的。
A、物理standby的 Switchover
注意操作步骤的先后,很关键的哟。
1、检查是否支持switchover 操作–primary 数据库操作。
2、登陆primary 数据库,查询v$database 视图的switchover_status 列。
SQL> SELECT * FROM V$ARCHIVE_GAP;
THREAD#LOW_SEQUENCE# HIGH_SEQUENCE#
———– ————- ————–
1 7 10
–到主库查询,确认一下:
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1AND DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 10;
NAME
——————————————————————————–
/primary/thread1_dest/arcr_1_7.arc
/primary/thread1_dest/arcr_1_8.arc
/primary/thread1_dest/arcr_1_9.arc
–把这些归档copy到物理standby,并使用ALTERDATABASE REGISTER LOGFILE应用这些归档:
SQL> ALTER DATABASE REGISTER LOGFILE’/physical_standby1/thread1_dest/arcr_1_7.arc’;
SQL> ALTER DATABASE REGISTER LOGFILE’/physical_standby1/thread1_dest/arcr_1_8.arc’;
SQL> ALTER DATABASE REGISTER LOGFILE ‘/physical_standby1/thread1_dest/arcr_1_9.arc’;
情况(二):没有gap
SQL>selects witchover_status from v$database;
SWITCHOVER_STATUS
—————————————-
TO STANDBY
2、启动switchover –primary 数据库操作
首先将primary 转换为standby 的角色,通过下列语句:
SQL> alter database commit to switchover to physical standby
Database altered.
01:57:06 SQL>shutdown immediate;
ORA-01092: Oracle instance terminated. Disconnection forced
SQL>startup mount;
ORACLE instance started.
Total System Global Area 417546240bytes
Fixed Size 2228944bytes
Variable Size 289410352bytes
Database Buffers 121634816bytes
Redo Buffers 4272128bytes
Database mounted.
推荐阅读:
RMAN 配置归档日志删除策略
Oracle基础教学之通过RMAN复制数据库
RMAN备份策略制定参考内容
RMAN备份学习笔记
Oracle数据库备份加密 RMAN加密