物理DataGurad正常切换

本文详细介绍如何在Oracle环境中通过DataGuard实现物理备库到主库的安全切换,包括切换前的准备工作、具体步骤以及切换后的验证。

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

物理DataGurad主备切换

物理STANDBY的SWITCHOVER切换会把当前的一个物理STANDBY切换为PRIMARY数据库,而PRIMARY数据库且变成物理STNADBY数据库。


一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。

在进行DATA GUARD的物理STANDBY切换前需要注意:

确认主库和从库间网络连接通畅;

确认没有活动的会话连接在数据库中;

PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;

确保STANDBY数据库处于ARCHIVELOG模式;

如果设置了REDO应用的延迟,那么将这个设置去掉;

确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。

登陆PRIMARY数据库:

[oracle@yangtk2 ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on Thu Nov 8 02:20:13 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> SET PAGES 100 LINES 120
SQL> SET SQLP 'PRI_SQL> '
PRI_SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE

PRI_SQL> SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL;

COUNT(*)
----------
1


虽然当前数据库的状态是SESSIONS ACTIVE而不是TO STANDBY,但是查询V$SESSION会话,确认除了当前会话外,其他都是系统会话,那么就可以在主库进行SWITCHOVER切换了: 

PRI_SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
 

Database altered. 

PRI_SQL> SHUTDOWN IMMEDIATE
 ORA-01507: database not mounted 


 ORACLE instance shut down.
 
PRI_SQL> STARTUP MOUNT
 ORACLE instance started. 

Total System Global Area 267825152 bytes
 Fixed Size 1299316 bytes
 Variable Size 159386764 bytes
 Database Buffers 104857600 bytes
 Redo Buffers 2281472 bytes
 Database mounted. 

重启数据库,启动到MOUNT状态,注意,9i及以前版本需要START NOMOUNT,然后ALTER DATABASE MOUNT STANDBY DATABASE。 

下面登陆STANDBY数据库: 

[oracle@yangtk ~]$ sqlplus "/ as sysdba" 

SQL*Plus: Release 11.1.0.6.0 - Production on Sat Oct 20 12:16:01 2007 

Copyright (c) 1982, 2007, Oracle. All rights reserved. 


 Connected to:
 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
 With the Partitioning, OLAP, Data Mining and Real Application Testing options 


STB_SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; 

SWITCHOVER_STATUS
 --------------------
 TO PRIMARY 

下面就可以将STANDBY数据库切换到PRIMARY数据库: 

STB_SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN; 

Database altered. 
 

STB_SQL >alter database open;如果已经open就不需要执行
STB_SQL >shutdown immediate 
STB_SQL >startup;
 ORACLE instance started. 

Total System Global Area 427819008 bytes
 Fixed Size 1219808 bytes
 Variable Size 130024224 bytes
 Database Buffers 293601280 bytes
 Redo Buffers 2973696 bytes
 Database mounted.
 Database opened. 

检查一下是否已经切换为主库 




STB_SQL >select database_role,open_mode,switchover_status from v$database; 


DATABASE_ROLE    OPEN_MODE            SWITCHOVER_STATUS
---------------- -------------------- --------------------
PRIMARY          READ WRITE           TO STANDBY








现在STANDBY数据库已经切换为PRIMARY数据库,下面只需要启动将STANDBY开始接收并恢复主库的日志就可以了。回到切换前的主库现在的从库: 

PRI_SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE using current logfile DISCONNECT;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29065182/viewspace-1080462/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29065182/viewspace-1080462/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值