oracle主库:10.254.1.16 qzdb
oracle备库:10.254.1.100 drqzdb
一. 主库切换最后一个数据库日志,并确认最后的数据库日志传输到灾备后,停止数据库监听:
1:使用oracle用户登陆主数据库(10.254.1.16,qzdb),强制切换日志(可多执行几次)
alter system switch logfile;
含义:将当前的重做日志文件切换到下一个重做日志文件
2:执行检查点
alter system checkpoint;
含义:确保数据库所有脏数据块都写入磁盘,确保数据一致
3:归档当前重做的日志
alter system archive log current;
含义:确保日志都已归档并传输到备库
4:#停止监听
$ lsnrctl stop
含义:停止监听器服务,以防止新的连接请求,确保切换过程中不会有新的事务进入。
二. 备地铁数据库强制切换成主数据库
1:使用oracle用户登陆Standby清算数据库(10.254.1.100,drqzdb)启动数据库到 MOUNT 状态
startup mount;
含义:启动备库到挂载状态,为后续的恢复和切换操作做准备。
2:完成备库的日志应用并强制切换
alter database recover managed standby database finish force;
含义:完成所有未应用的日志恢复,并强制结束恢复过程,准备将备库切换为主库。
3:提交切换操作
alter database commit to switchover to primary;
含义:将备库转为主库
4:关闭并重新启动数据库
shutdown immediate;
startup;
含义:检查数据库的当前状态和角色,确认数据库已成功切换为主库。
5:验证数据库状态
select open_mode, database_role from v$database;
含义:检查数据库的当前状态和角色,确认数据库已成功切换为主库。
注:切换后ip一般要换成原来主库的ip, 实例名称也是要更改的
ALTER SYSTEM SET DB_UNIQUE_NAME = 'NEW_UNIQUE_NAME' SCOPE=SPFILE;