>  기사  >  데이터 베이스  >  10g r2上switch over主备库的过程演示

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

WBOY
WBOY원래의
2016-06-07 17:36:53980검색

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

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

 

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.