Home >Database >Mysql Tutorial >Oracle 10g r2上switch over主备库的过程演示

Oracle 10g r2上switch over主备库的过程演示

WBOY
WBOYOriginal
2016-06-07 17:34:261166browse

Oracle 10g r2上switch over主备库的过程演示

当前状态是dg1为主库,备库为dg2
先检查主备库状态:
dg1

SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;
DATABASE_ROLE    OPEN_MODE  SWITCHOVER_STATUS
---------------- ---------- --------------------
PRIMARY          READ WRITE SESSIONS ACTIVE

dg2

SQL> select database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;
DATABASE_ROLE    OPEN_MODE  SWITCHOVER_STATUS
---------------- ---------- --------------------
PHYSICAL STANDBY MOUNTED    NOT ALLOWED

现在dg1(当前主库)上操作以下步骤:

SQL>  alter database commit to switchover to physical standby with session shutdown;
Database altered.
SQL> shutdown immediate;
ORA-01507: database not mounted
Oracle instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area  390070272 bytes
Fixed Size                  2021024 bytes
Variable Size            150997344 bytes
Database Buffers          234881024 bytes
Redo Buffers                2170880 bytes
Database mounted.
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY

现在dg2(当前备库)上操作以下步骤:

SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;
NAME      DATABASE_ROLE    OPEN_MODE  SWITCHOVER_STATUS
--------- ---------------- ---------- --------------------
ORCLDB    PHYSICAL STANDBY MOUNTED    TO PRIMARY
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
SQL>  alter database commit to switchover to primary;
Database altered.
SQL> alter database open;
Database altered.
SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;
NAME      DATABASE_ROLE    OPEN_MODE  SWITCHOVER_STATUS
--------- ---------------- ---------- --------------------
ORCLDB    PRIMARY          READ WRITE SESSIONS ACTIVE


以上的操作已经完成了主备的切换,现在dg2为主库,dg1为备库,接下来我们在现在的主库dg2上做几次日志变化,看dg1能否同步过来。
dg1上看已经归档的日志:
SQL> select registrar,creator thread#,sequence#,first_change#,next_change# from v$archived_log;
REGISTR THREAD#  SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
------- ------- ---------- ------------- ------------
FGRD    FGRD            29        586174      586196
dg2上经过几次日志切换,
SQL> select * from v$log;
GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS          FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1          1        36  52428800          1 NO  CURRENT                586469 05-JAN-14
2          1        34  52428800          1 YES INACTIVE                586464 05-JAN-14
3          1        35  52428800          1 YES INACTIVE                586467 05-JAN-14

可以看出现在日志已经到了36,,那么我们在dg1上应用日志,应该会应用到日志35;
以下操作验证:

SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> select registrar,creator thread#,sequence#,first_change#,next_change# from v$archived_log;
REGISTR THREAD#  SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
------- ------- ---------- ------------- ------------
RFS    ARCH            34        586464      586467
RFS    ARCH            35        586467      586469

以上的主备切换过程就已经顺利进行完成。

推荐阅读:

RedHat Linux 5 & CentOS 5下Oracle 10g安装详解

CentOS 6.3(x32)下安装Oracle 10g R2

Linux-6-64下安装Oracle 12C笔记

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn