oracle 11G之dataguard switch

DG switch

一.查看主库switchover状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

TO STANDBY

附:A:switchover_status出现session active/not allowed

 当出现session active的时候表示还有活动的session,则运行

 Alter database commit to switchover to physical standby with session shutdown;

     当出现not allowed时,在官方文档说转换会不成功,但是我测试的时候成功了。

     B.ora- 01153: an incompatible media recovery is active

       运行下面代码

        Alter database recover managed standby database finish;

       或者Alter database recover managed standby database finish force;

        Alter database recover managed standby database disconnect from session;

 

二. 将主库切换成备库

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

或者

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

三. 关闭主库

SQL> SHUTDOWN IMMEDIATE

*************************************************************************************

四.查看备库switchover状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    TO PRIMARY  附:若不是用此语句切换:

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown

补充:若出现:ORA-16139: media recovery required

是因为没有执行:alter database recover managed standby database disconnect from session;

五. 将备库切换成主库,然后关闭

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

Database altered.

SQL> shutdown immediate;

六. 更改服务器IP地址

这个可以用xmanager连过去,在界面上改,也可以直接用命令来修改。

vi /etc/sysconfig/network-scripts/ifcfg-eth0
    service network restart

Linux修改IP地址 和 网关

 

七. 启动备库。 这里的启动顺序不能错,先启动备库,在启动主库,不然主库识别不了备库。

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

 

启动主库

SQL> startup;

SQL> alter system switch logfile;

九. 在主库查看log_archive_dest参数的状态,是否有效。

因为这里与监听和启动顺序有关,如果值为error,则归档不能传送到备库。

SQL>select status,database_mode from v$archive_dest_status;

Status状态为valid即可。 如果有错误,一般都是启动顺序和监听问题。 如果启动顺序没有问题,那么就把主库重新启动一下。

十.验证同步状态

在主库运行:

SQL>alter system switch logfile;

   然后在主备库分别运行:select sequence#,applied from v$archived_log;

确保applied都为YES

如果用:select max(sequence#) from v$archived_log;

查看,如果主备库显示的一致,则只能表明归档已经传送到了备库,并不能表明该归档已经应用。applied状态为YES,就表明该归档已经应用到了备库。

如果等了很长时间applied都无法应用,可以尝试一下方法:

alter database recover managed standby database cancel;

alter database recover managed standby database disconnect from session;

2个语句是取消recover manager,在启动它。

通过以上十步,switchover切换完成。

以上的操作都借鉴小戴的BLOG而来

十一.常用管理动态性能视图

SQL> show parameter log_archive_dest_2

 

SQL> select error from v$archive_dest;

 

SQL> select sequence#,applied from v$archived_log;

 

十二.切换是出现的问题

第一 恢复是报控制文件的错误

executing Memory Script

sql statement: alter database mount standby database
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 01/12/2011 13:09:35
RMAN-03015: error occurred in stored script. Memory Script
RMAN-03009: failure of sql command on clone_default channel at 01/12/2011 13:09:35
RMAN-11003: failure during parse/execution of SQL statement: alter database mount standby database
ORA-01103: database name 'TSFYHISA' in control file is not 'TSFYHISB'
解决办法:物理备库的配置文件的参数*.db_name='tsfyhisa'必须与主库的一致。文件就消失了。

第二 切换后主库的switchover状态,并且数据无法同步

1首先通过select error from v$archive_dest; 语句确保主备库上的error字段中没有错误信息

2 使用tnsping相互测通主备库

3 查看主备库的后台日志

 

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

转载于:http://blog.itpub.net/20976446/viewspace-683715/