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

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

WBOY
WBOYOriginal
2016-06-07 17:36:531029browse

当前状态是dg1为主库,备库为dg2先检查主备库状态:dg1SQLselectname,database_role,OPEN_MODE,SWITCHOVER_STATUSfromv$database;DATABASE_ROLEOPEN_MODESWITCHO

当前状态是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

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

 

本文出自 “阿布” 博客,请务必保留此出处

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