ITPub博客

首页 > 数据库 > Oracle > DG中主库与备库角色的交换

DG中主库与备库角色的交换

原创 Oracle 作者:skyin_1603 时间:2016-10-20 23:32:09 0 删除 编辑
在实际的生成当中,当主库需要对主库进行一些修正,或者主库遇到故障时候,主要调用备库顶替主库运用到生成当中,
因为一般情况下只能对主库进行更改等操作(读写状态),备库是只读状态。所以要运用备库作为读写库时,需要用
switchover或者failover切换主库与备库的状态。failover切换一般是在主库故障的时候,使用它把备库切换成为主库使用。

--主库切换成备库:
--查看主库的切换状态:
SQL>  SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO STANDBY

--做切换动作:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
Database altered.

--报错:
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 4673
Session ID: 1 Serial number: 5
是因为关闭了数据库。

--用SQL> SHUTDOWN ABORT强行关库在启动到mount状态:
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             679480400 bytes
Database Buffers          150994944 bytes
Redo Buffers                2371584 bytes
Database mounted.
SQL> 

--查看原主库PROD目前的状态:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
RECOVERY NEEDED

--查看备库ENMO现在的切换状态:
SQL>  SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
则将要切换到主库角色。


--在原来备库ENMO做切换到主库的动作:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
Database altered.
已经切换成功。

--打开切换后新的主库:
SQL>  ALTER DATABASE OPEN;
Database altered.
新的主库已经打开。

--查看新主库的切换状态:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO STANDBY

--在新的备库开启使用用日志功能:
SQL>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
Database altered.

--在备库查看归档日志使用情况:
SQL> select SEQUENCE#,APPLIED from v$archived_log;
 SEQUENCE# APPLIED
---------- ---------
        67 YES
        68 YES
        69 YES
        70 YES
        71 YES
        72 YES
        73 YES
        74 YES
        75 YES
        76 YES
        77 YES

--查看新的备库的切换状态:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
NOT ALLOWED

--看看新备库的数据库状态:
SQL> select status from v$instance;
STATUS
------------
MOUNTED

--打开备库:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-10456: cannot open standby database; media recovery session may be in
progress
备库在开启使用归档日志进程。

--在备库操作关闭使用日志进程:
SQL> alter database recover managed standby database cancel;
Database altered.

--再次尝试打开备库:
SQL> alter database open;
Database altered.
备库已经打开。

备库可以在打开数据数之后,再开启使用日志功能,也可以在mount下启用。
一般情况下是在mount状态下启用,在open状态下启用日志,是oracle 11G的个性,生成当中oracle公司是需要收费的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31392094/viewspace-2126842/ ,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2016-09-06

  • 博文量
    231
  • 访问量
    215168