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/