您的位置:首页 > 数据库 > Oracle

Oracle dataguard之备库切换(failover)

2016-04-03 18:19 585 查看
oracle 11g中有一个新特性叫flush redo,就是说如果主库挂了,只要能mount,就可以将没传到备库的online redo log信息刷到备库去,这样就不会有数据丢失。

1.在主库flush redo到备库

这里强调只有在mount的时候才能flush redo,看实验。

SQL> alter system flush redo to orcl_pd;
alter system flush redo to orcl_pd
*
ERROR at line 1:
ORA-00922: missing or invalid option

SQL> alter system flush redo to 'orcl_pd';--这里记住名字得加上引号,并且这个名字是tnsname中的备库连接名。
alter system flush redo to 'orcl_pd'
*
ERROR at line 1:
ORA-16445: Database has to be mounted and cannot be open

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size		    2253784 bytes
Variable Size		 1006636072 bytes
Database Buffers	  637534208 bytes
Redo Buffers		    7094272 bytes
Database mounted.
SQL> alter system flush redo to 'orcl_pd';

System altered.

2.在主库查看备库是否有gap

SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

no rows selected


3.在备库做一下操作

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database recover managed standby database finish;

Database altered.

SQL> alter database activate physical standby database;

Database altered.
4.看看备库的读写状态

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
MOUNTED

SQL> alter database open;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE
现在failover就做完了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: