DG主库crash,处理方式
将主库的arch日志和REDO日志全部应用在备库上
备库执行:SQL>alter database recover managed standby database
注册应用:
SQL>ALTER DATABASE REGISTER physical LOGFILE 'C:\log\00010000000029948564491.ARC'
SQL>select sequence#,applied from v$archived_log;
SQL> alter database recover managed standby database cancel;
SQL> recover standby database until cancel;
提示输入redo日志路径,从redo01开始
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
FINISH FORCE;
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SQL> ALTER DATABASE OPEN; 或者 shutdown immediate+startup
以上命令有报错,直接忽视,恢复工作在上面已经做过了。 我们把数据库用 read only 方式打开看一下,数据都已经写进去过了
SQL> alter database open read only;
Database altered.
SQL> select * from dave;
强制 Failover 一下看看:
SQL> shutdown immediate
SQL> startup mount;
SQL> alter database activate standby database;
SQL> alter database open;
SQL> select open_mode from v$database;
Failover切换后更改ip地址(Linux):
1.修改网卡的IP地址(root用户)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
重新启动网卡服务,让其生效(root用户)
service network restart
2.修改hosts文件(root用户)
vi /etc/hosts
3.修改监听配置文件(oracle用户)
su - oracle
cd $ORACLE_HOME/network/admin
vi listener.ora
4.重启监听程序(oracle用户)
lsnrctl stop
lsnrctl start
5.plsql dev测试连接
6.修改tnsnames文件
cd $ORACLE_HOME/network/admin
vi tnsnames.ora