一,物理备库
01,状态查询与状态详解
select switchover_status from v$database
02,状态转换到备用数据库
alter database commit to switchover to physical st andby;
执行后,oracle会将当前主数据库的控制文件备份到一个跟踪文件上,需要重启
shutdown immediate;
startup mount
03,状态转换到主数据库
alter database commit to switchover to primary;
如果添加 with session shutdown wait 子句,则在切换完成前该语句不会返回到SQL>提示符,使用OPEN关键字启动数据库
alter database open
04,启动重做应用
alter database recover managed standby database using current logfile disconnect from session;
二,逻辑备库
01,验证是否能执行
检验主数据库能否执行切换,查询v$database 了解switchover_status的值为to standby, to logical standby, sessions active
SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO STANDBY
02,主数据库切换逻辑备用数据
在旧主库执行操作,让主库准备用于切换
alter database prepare to switchover to logical standby;
在旧逻辑备库数据块中操作
alter database prepare to switchover to primary;
这时候,逻辑备用数据块将开始想当前的主数据库和配置中的其他备用数据库传送它的重做数据,此时,传送逻辑备库数据块中的重做数据,但是没有应用
在主数据库中,现在必须检验从逻辑备用数据库上接受字典数据,在能继续执行下一步之前,v$database中的switchover_status 列的值在主数据库中必须读取为to logocal standby.当该状态值显示主数据库中,将主数据库切换到逻辑备用角色
旧主数据执行
alter database commit to switchover to logical standby;
查询旧逻辑备库,检验是否可以切换即switchover_status 状态应该时to primary.
旧逻辑备库执行
alter databse commit to switchover to primary;
旧的主数据库上执行
alter database start logical apply immediate;
启动重做日志
三,故障转移
01,物理备库故障转移
备用数据库需要保持标识和归档日志一致性,需要手动复制,注册日志文件
配置了重做日志文件的话执行:
alter database recover managed standby database finish;
没有配置重做日志的执行:
alter databse recover managed standby database finish skip standby logfile;
完成备份恢复操作,在新主使用命令开始切换
alter database commit to seichover to primary;
然后关闭,重启新主数据库
02,逻辑备库故障转移
没有激活重做应用的话: alter database start logical standby apply nodelay finish; 接下来,为逻辑备用数据库生成的重做日志文件启用远程存储位置。可能需要更新逻辑备,用数据库的LOG ARCHIVE DEST-STATEn参数设置,以便配置中的其他备用数据库将可接收到由原始的逻辑备用数据库生成的重做数据。然后,可通过如下命令将原始的逻辑备用数据库激活为新的主数据库: alter database activate logical standby database finish apply; 如果存在属于Data Guard配置的其他逻辑备用数据库,则可能需要重新创建它们或使用数据库链接将它们添加到新配置中。首先,在将要充当新的主数据库的逻辑备用数据库的每个数据库中创建一个链接。ALTER SESSION DISABLE GUARD命令允许绕过会话中的Data Guard过程。数据库链接使用的数据库账户必须具有SELECT CATALOG ROLE角色: alter session disable guard; create database link salesofoconnect to username identified by password using 'salesofc'; alter session enable quard; 应通过查询远程数据库(新的主数据库)中的DBA LOGSTDBY PARAMETERS视图来验,证该链接。在每个逻辑备用数据库中,现在可以基于新的主数据库来启动重做应用进程: alter database start logical standby apply new primary salesofc;