物理STANDBY的SWITCHOVER切换
2013-07-30 14:09
260 查看
物理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 ,open_mode 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;
Database altered.
如果提示ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected,确认活动会话都为sys的前提下,加上with session shutdown;
SQL>alter database commit to switchover to physical standby with session shutdown ;
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
SQL> SET PAGES 100 LINES 120
SQL> SET SQLP 'STB_SQL> '
STB_SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
下面就可以将STANDBY数据库切换到PRIMARY数据库:
STB_SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
STB_SQL> ALTER DATABASE OPEN;
Database altered.
STANDBY数据库已经切换为PRIMARY数据库,下面只需要启动将STANDBY开始接收并恢复主库的日志就可以了。回到切换前的主库现在的从库:
PRI_SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
SWITCHOVER切换完成,检查各自的数据库角色是否已经切换:
再检查日志传输情况,在主库switch logfile,然后各自检查v$log视图最大的sequence是否相同,在此不在赘述。
一般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 ,open_mode 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;
Database altered.
如果提示ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected,确认活动会话都为sys的前提下,加上with session shutdown;
SQL>alter database commit to switchover to physical standby with session shutdown ;
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
SQL> SET PAGES 100 LINES 120
SQL> SET SQLP 'STB_SQL> '
STB_SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
下面就可以将STANDBY数据库切换到PRIMARY数据库:
STB_SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
STB_SQL> ALTER DATABASE OPEN;
Database altered.
STANDBY数据库已经切换为PRIMARY数据库,下面只需要启动将STANDBY开始接收并恢复主库的日志就可以了。回到切换前的主库现在的从库:
PRI_SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
SWITCHOVER切换完成,检查各自的数据库角色是否已经切换:
select database_role from v$database; |
相关文章推荐
- DATA GUARD物理STANDBY的 SWITCHOVER切换
- DATA GUARD物理STANDBY的 SWITCHOVER切换
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名)
- 维护Data Guard物理standby(原创)
- oracle之data guard——物理standby建立
- 模拟物理standby产生GAP的情形
- 10g 物理standby建立及常用命令备忘
- 11g使用非duplicate方式创建物理standby要注意的问题总结
- DATAGUARD物理standby高级管理(笔记三)
- Oracle 11g R2之Dataguard搭建物理standby
- 物理STANDBY的FAILOVER切换(失败切换)
- Oracle Data Guard RAC到单机ASM配置(物理standby)
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)
- 物理standby database的日常维护
- oracle之data guard(1)—物理standby和primary切换
- 物理standby转换为逻辑standby的步骤
- Oracle 11g Data Guard搭建物理Standby数据库(二)
- 物理standby中switchover时switchover pending的解决办法
- 【DATAGUARD】物理dg的switchover切换(五)