测试版-物理switchover

本文介绍如何在Oracle数据库中实现从主数据库(primary)到备用数据库(standby)的角色转换过程,包括检查支持转换的状态、执行转换命令及转换后的验证步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:standby数据库应该是alter database recover managed standby database disconnect from session命令之后执行的。
而并非alter database recover managed standby database cancel;命令之后执行
1、检查primary数据库是否支持switchover操作
$sqlplus / as sysdba
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY
说明:如果该列值为"TO STANDBY"则表示primary数据库支持转换为standby角色,否则的话你就需要重新检查一下Data Guard配置,比如看看LOG_ARCHIVE_DEST_n之类参数值是否正确有效等等。

2、primary数据库启动switchover
首先将primary转换为standby的角色,通过下列语句:
SQL> alter database commit to switchover to physical standby;(with session shutdown)
说明:语句执行完毕后,primary数据库将会转换为standby数据库,并自动备份控制文件到trace。
3、primary数据库重启动到mount
SQL> shutdown immediate
SQL> startup mount
4、检查待转换standby数据库是否支持switchover操作
待原primary切换为standby角色之后,检查待转换的standby数据库switchover_status列,看看是否支持角色转换。
$ sqlplus / as sysdba
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
说明:此时待转换standby数据库switchover_status列值应该是"TO_PRIMARY",如否则检查其初始化参数文件中的设置,提示一下,比着原primary数据库的初始化参数改改。
5、转换角色到primary --待转换standby数据库操作
通过下列语句转换standby到primary角色:
SQL> alter database commit to switchover to primary;
注意:待转换的物理standby可以处于mount模式或open read only模式,但不能处于open read write模式。
6、完成转换,打开新的primary数据库
SQL> shutdown immediate;
SQL> alter database open;
注:如果数据库处于open read-only模式的话,需要先shutdown然后直接startup即可。
7、验证一下
(1)新的primary数据库
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
67
SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
68
(2)新的standby数据库
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
68
到此转换成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值