Oracle 10g r2上switch over主备库的过程演示
Jun 07, 2016 pm 05:34 PMOracle 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笔记

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Reduce the use of MySQL memory in Docker

How do you alter a table in MySQL using the ALTER TABLE statement?

How to solve the problem of mysql cannot open shared library

What is SQLite? Comprehensive overview

Run MySQl in Linux (with/without podman container with phpmyadmin)

Running multiple MySQL versions on MacOS: A step-by-step guide

How do I secure MySQL against common vulnerabilities (SQL injection, brute-force attacks)?

What are some popular MySQL GUI tools (e.g., MySQL Workbench, phpMyAdmin)?
