Step By Step Configure DataGuard (10g) Physical Standby Database On Linux X86_64(2/2)

本文承接http://djb1008.itpub.net/post/42280/504822

[oracle@standbydb archivelog]$ pwd

/oradata/archivelog

[oracle@standbydb archivelog]$ ls -lt *

standby_arc:

total 47820

-rw-r----- 1 oracle oinstall 286208 Sep 3 18:41 1_212_724504451.dbf

-rw-r----- 1 oracle oinstall 197120 Sep 3 18:32 1_211_724504451.dbf

-rw-r----- 1 oracle oinstall 4096 Sep 3 18:31 1_210_724504451.dbf

-rw-r----- 1 oracle oinstall 48413184 Sep 3 18:31 1_209_724504451.dbf

primary_arc:

total 0

[@more@]

我们可以看到归档日志文件从主节点复制到了备节点,并且得到了应用。

[oracle@standbydb archivelog]$ sqlplus / as sysdba

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIM NEXT_TIME

---------- --------- ---------

209 03-SEP-10 03-SEP-10

210 03-SEP-10 03-SEP-10

211 03-SEP-10 03-SEP-10

212 03-SEP-10 03-SEP-10

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# APP

---------- ---

209 YES

210 YES

211 YES

212 YES

到目前位置,主备数据库环境已经完全搭建完成了,并投入使用。搭建的是Physical Standby Database。

. 主备数据库切换

注意:

主库服务器的名称为:primarydb,备库服务器的名称为:standbydb。在下面的脚本中可以通过命令行前面的提示符可以知道在那台服务器上执行的。例如"[oracle@primarydb /]$",就可以看出是在主库服务器上运行。

  1. 生产环境从主库服务器切换到备库服务器

1.1 停止主库运行

[oracle@primarydb /]$ sqlplus / as sysdba

SQL> alter database commit to switchover to physical standby;

Database altered.

SQL> shutdown immediate;

ORA-01507: database notmount

ORACLE instance shut down.

1.2 将主库运行在standby database状态

[oracle@primarydb /]$ sqlplus / as sysdba

SQL> startup nomount;

ORACLE instance started.

Total System Global Area 1073741824 bytes

Fixed Size 2089472 bytes

Variable Size 578817536 bytes

Database Buffers 490733568 bytes

Redo Buffers 2101248 bytes

SQL> alter database mount standby database;

Database altered.

SQL> alter database recover managed standby database disconnect from session;

Database altered.

1.3 启动备库为生产环境

[oracle@standbydb ~]$ sqlplus / as sysdba

SQL> alter database commit to switchover to primary;

Database altered

备库的alert日志描述如下:

[oracle@standbydb ~]$tail -f alert_gridctl.log

alter database commit to switchover to primary

Mon Sep 6 11:24:30 2010

ALTER DATABASE SWITCHOVER TO PRIMARY (gridctl)

Mon Sep 6 11:24:30 2010

If media recovery active, switchover will wait 900 seconds

SwitchOver after complete recovery through change 9735881

Standby became primary SCN: 9735879

Converting standby mount to primary mount.

Mon Sep 6 11:24:34 2010

Switchover: Complete - Database mounted as primary (gridctl)

Completed: alter database commit to switchover to primary

SQL>shutdown immediate;

ORA-01507: database notmount

ORACLE instance shut down.

SQL>startup

ORACLE instance started.

。。。。。。

Database mounted.

Database opened.

1.4 修改主库服务器的参数log_archive_dest_2为空

[oracle@primarydb /]$ sqlplus / as sysdba

SQL> show parameter log_archive_dest_2

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_archive_dest_2 string service=standby mandatory reop

en=60

SQL>ALTER SYSTEM SET log_archive_dest_2='' SCOPE=BOTH;

1.5 修改备库服务器的参数log_archive_dest_2,将日志应用到主库服务器

[oracle@standbydb ~]$ sqlplus / as sysdba

SQL> alter system set log_archive_dest_2='service=primary mandatory reopen=60' scope=both;

1.6 查看备库服务器上数据库的角色状态,并进行日切换

[oracle@standbydb ~]$ sqlplus / as sysdba

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

---------- ----------------

READ WRITE PRIMARY

SQL> alter system switch logfile;

System altered.

1.7 检查主库服务器的数据库角色状态,并查看alert日志文件,验证日志是否得到了应用

[oracle@primarydb /]$ sqlplus / as sysdba

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

---------- ----------------

MOUNTED PHYSICAL STANDBY

[oracle@standbydb ~]$tail -f alert_gridctl.log

Mon Sep 6 16:15:20 2010

RFS[1]: Archived Log: '/oradata/archivelog/standby_arc/1_237_724504451.dbf'

Mon Sep 6 16:15:23 2010

Media Recovery Log /oradata/archivelog/standby_arc/1_237_724504451.dbf

Media Recovery Waiting for thread 1 sequence 238

  1. 生产环境从备库服务器切换回主库服务器

2.1 备库服务器将数据库角色从primary转换为standby

[oracle@standbydb ~]$ sqlplus / as sysdba

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

---------- ----------------

READ WRITE PRIMARY

SQL> alter database commit to switchover to standby;

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area 1073741824 bytes

Fixed Size 2089472 bytes

Variable Size 578817536 bytes

Database Buffers 490733568 bytes

Redo Buffers 2101248 bytes

SQL> alter database mount standby database;

SQL> alter system set log_archive_dest_2='' scope=both;

SQL> alter database recover managed standby database disconnect from session;

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

---------- ----------------

MOUNTED PHYSICAL STANDBY

2.2 主库服务器将数据库角色从standby转换为primary

[oracle@primarydb /]$ sqlplus / as sysdba

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

---------- ----------------

MOUNTED PHYSICAL STANDBY

SQL> alter database commit to switchover to primary;

SQL> shutdown immediate;

ORA-01109: database not open

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 1073741824 bytes

Fixed Size 2089472 bytes

Variable Size 578817536 bytes

Database Buffers 490733568 bytes

Redo Buffers 2101248 bytes

Database mounted.

Database opened.

SQL> alter system set log_archive_dest_2='service=standby mandatory reopen=60' scope=both;

SQL> select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

---------- ----------------

READ WRITE PRIMARY

SQL> alter system switch logfile;

查看备库服务器的alert日志文件,可以看到来自主库服务器的日志得到了应用。

[oracle@standbydb ~]$ tail -f alert_gridctl.log

。。。。。。

Media Recovery Log /oradata/archivelog/standby_arc/1_240_724504451.dbf

Media Recovery Log /oradata/archivelog/standby_arc/1_241_724504451.dbf

Media Recovery Waiting for thread 1 sequence 242

切换到此完成。

请使用浏览器的分享功能分享到微信等