Oracle 11g Active Dataguard Switchover实验(一)

2014-11-24 17:24:51 · 作者: · 浏览: 0

相关参考:


1、环境介绍





SQL> select * from v$version;



BANNER


--------------------------------------------------


Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production


PL/SQL Release 11.2.0.4.0 - Production


CORE 11.2.0.4.0 Production



Primary数据库unique名称为ora11g。



SQL> select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS, db_unique_name from v$database;


NAME LOG_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS DB_UNIQUE_NAME

--------- ------------ -------------------- ---------------- -------------------- ------------------------------

ORA11G ARCHIVELOG READ WRITE PRIMARY SESSIONS ACTIVE ora11g


Standby数据库名称为ora11gsy,此时开启实时数据同步应用。



SQL> alter database recover managed standby database using current logfile disconnect from session;


Database altered



SQL> select name, LOG_MODE, OPEN_MODE, database_role, SWITCHOVER_STATUS, db_unique_name from v$database;


NAME LOG_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS DB_UNIQUE_NAME

--------- ------------ -------------------- ---------------- -------------------- ------------------------------

ORA11G ARCHIVELOG READ ONLY WITH APPLY PHYSICAL STANDBY NOT ALLOWED ora11gsy


注意:此时standby的open mode为Read only with apply,这个是11g Active Data Guard的特性。传统DG在进行Apply的过程中,是处在mount状态的,不支持实时数据只读操作。11g支持在apply中打开数据库到只读状态。


2、Switchover过程中Primary主库操作



进行Switchover的过程分为三个步骤,一个是在Primary上停止工作,切换到Standby状态,第二个是在选择一个Standby实例,切换角色到Primary状态,最后是将其他Standby的Apply过程启动。

注意在上面我们查看Primary数据库ora11g的v$database视图,其中switchover_status取值是我们需要关注的,如果取值为session active或者to standby,我们是可以进行切换的。如果其他值,说明配置的log传输机制存在问题,需要解决调整。


--在ora11g上


SQL> alter database commit to switchover to physical standby with session shutdown;

Database altered



注意:如果swtichover_status状态为session active,就需要在命令中加入with session shutdown子句。执行后,我们发现Primary ora11g已经关闭。



SQL> select status from v$instance;


select status from v$instance


*


ERROR at line 1:


ORA-03135: connection lost contact


Process ID: 2357


Session ID: 1 Serial number: 5




SQL> exit


Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options



--实例进程消失


[oracle@SimpleLinux trace]$ ps -ef | grep pmon


oracle 2107 1 0 15:35 00:00:01 ora_pmon_ora11gsy


oracle 2473 1848 1 16:03 pts/1 00:00:00 grep pmon



此时,alert log中也记录了实例停止的情况。



ALTER DATABASE ADD STANDBY LOGFILE 'srl1.f' SIZE 52428800;


ALTER DATABASE ADD STANDBY LOGFILE 'srl2.f' SIZE 52428800;


ALTER DATABASE ADD STANDBY LOGFILE 'srl3.f' SIZE 52428800;


ALTER DATABASE ADD STANDBY LOGFILE 'srl4.f' SIZE 52428800;


Archivelog for thread 1 sequence 19 required for standby recovery


Switchover: Primary controlfile converted to standby controlfile succesfully.


Switchover: Complete - Database shutdown required


USER (ospid: 2365): terminating the instance


Instance terminated by USER, pid = 2365


Completed: alter database commit to switchover to physical standby with session shutdown


Shutting down instance (abort)


License high water mark = 6


Sun Apr 20 16:02:11 2014


Instance shutdown complete



在这个过程中,为了确保数据无损失,Primary一定将所有的日志信息传递到Standby上。此时,可以启动Primary,到mount standby状态。



[oracle@SimpleLinux trace]$ sqlplus /nolog


SQL*Plus: Release 11.2.0.4.0 Production on Sun Apr 20 16:06:47 2014



Copyright (c) 1982, 2013,