ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 11G之dataguard switch

oracle 11G之dataguard switch

原创 Linux操作系统 作者:liqilin0429 时间:2011-01-13 09:29:23 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/20976446/viewspace-683715/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-08-13

  • 博文量
    100
  • 访问量
    227370