dataguard 主备切换

来源:互联网 发布:统计学的数据分析实例 编辑:程序博客网 时间:2024/05/04 10:45


(1)首先查询主库状态,确认可以做切换:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY
SQL>
SWITCHOVER_STATUS有三个状态: to standby、 sessions active、 not allowed(该状态下无法切换)
(2)在从库上面确认所有的archive log 都已经apply:
SQL>select sequence#,first_time,next_time,applied from v$archived_log;
 SEQUENCE# FIRST_TIME     NEXT_TIME      APPLIED
---------- -------------- -------------- ---------
        55 12-5?  -13     12-5?  -13     YES
        56 12-5?  -13     12-5?  -13     YES
        57 12-5?  -13     12-5?  -13     YES
        58 12-5?  -13     12-5?  -13     YES
        59 12-5?  -13     12-5?  -13     YES
(3)在主库上switch  logfile:
SQL> alter system switch logfile;
系统已更改。
SQL>select sequence#,first_time,next_time,applied from v$archived_log;
 SEQUENCE# FIRST_TIME     NEXT_TIME      APPLIED
---------- -------------- -------------- ---------
        47 11-5月 -13     12-5月 -13     NO
        48 12-5月 -13     12-5月 -13     NO
        48 12-5月 -13     12-5月 -13     YES
        47 11-5月 -13     12-5月 -13     YES
        49 12-5月 -13     12-5月 -13     YES
        49 12-5月 -13     12-5月 -13     NO
        50 12-5月 -13     12-5月 -13     YES
        50 12-5月 -13     12-5月 -13     NO
        51 12-5月 -13     12-5月 -13     NO
(4)观察从库上已经 apply所有archive log:
select sequence#,first_time,next_time,applied from v$archived_log;
查看是否仍然有连接
SQL> select username,program  from v$session  where status='ACTIVE';
USERNAME             PROGRAM
-------------------- --------------------
SYS                  sqlplus.exe
                     ORACLE.EXE (PMON)
                     ORACLE.EXE (VKTM)
                     ORACLE.EXE (GEN0)
                     ORACLE.EXE (DIAG)
                     ORACLE.EXE (DBRM)
                     ORACLE.EXE (PSP0)
                     ORACLE.EXE (DIA0)
                     ORACLE.EXE (MMAN)
                     ORACLE.EXE (DBW0)
                     ORACLE.EXE (LGWR)
USERNAME             PROGRAM
-------------------- --------------------
                     ORACLE.EXE (CKPT)
                     ORACLE.EXE (SMON)
                     ORACLE.EXE (RECO)
                     ORACLE.EXE (MMON)
                     ORACLE.EXE (MMNL)
                     ORACLE.EXE (ARC0)
                     ORACLE.EXE (ARC1)
                     ORACLE.EXE (ARC2)
                     ORACLE.EXE (ARC3)
                     ORACLE.EXE (MRP0)
PUBLIC               ORACLE.EXE
切换
(5)将主库转变为可切换状态:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
数据库已更改。
(2)standby 执行  
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
数据库已更改。
(3)原primary执行
SQL> SHUTDOWN IMMEDIATE;
ORA-01507: 未装载数据库
ORACLE 例程已经关闭。
SQL> STARTUP NOMOUNT;
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             331350480 bytes
Database Buffers          197132288 bytes
Redo Buffers                5804032 bytes
SQL> alter database mount standby database;
数据库已更改。
(4)原primary执行
alter system set log_archive_dest_state_2=defer scope=both;
(5)原standby执行
SQL> RECOVER MANAGED STANDBY DATABASE CANCEL; ----会报异常错误, 可忽略
ORA-01665: ????????????
SQL> shutdown immediate;
ORA-01109: ??????
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             331350480 bytes
Database Buffers          197132288 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
数据库已经打开。
(6)原standby( new primary)
alter system set log_archive_dest_state_2=enable scope=both;
(7)新的primary
   ALTER SYSTEM SWITCH LOGFILE;
查看archive log是否自动传输
SQL>  ALTER SYSTEM SWITCH LOGFILE;
系统已更改。
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            C:\arch
最早的联机日志序列     56
下一个存档日志序列   58
当前日志序列           58
(8)原来的primary 新的standby
 RECOVER MANAGED STANDBY DATABASE disconnect; (清除原有日志信息)
SQL> RECOVER MANAGED STANDBY DATABASE disconnect;
完成介质恢复。  
archive log list; 查看
SQL>archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            C:\arch
最早的联机日志序列     58
下一个存档日志序列   0
当前日志序列           58
经测试,系统双向切换成功,目前整套系统工作正常。

 

 

 

原创粉丝点击