在实际的生成当中,当主库需要对主库进行一些修正,或者主库遇到故障时候,主要调用备库顶替主库运用到生成当中,
因为一般情况下只能对主库进行更改等操作(读写状态),备库是只读状态。所以要运用备库作为读写库时,需要用
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/
,如需转载,请注明出处,否则将追究法律责任。