ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DATA GUARD物理备库的SWITCHOVER切换

DATA GUARD物理备库的SWITCHOVER切换

原创 Linux操作系统 作者:suifeng2316 时间:2012-02-15 15:20:47 0 删除 编辑

在进行DATA GUARD的物理备库切换前需要注意:

1,确认主库和从库间网络连接通畅;

2,确认没有活动的会话连接在数据库中;

3,PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;

4,确保STANDBY数据库处于ARCHIVELOG模式;

5,如果设置了REDO应用的延迟,那么将这个设置去掉;

6,检查主备库初始化参数是否正确

本次测试实验参数如下:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod

备库node2的参数

db_unique_name=node2

log_archive_config='dg_config=(node1,node2)'

*.log_archive_dest_1='location=g:\database\oradata\node2\arch

valid_for=(all_logfiles,all_roles)

db_unique_name=node2'

log_archive_dest_2='service=node1 lgwr async

valid_for=(online_logfiles,primary_role)

db_unique_name=node1'

log_archive_dest_state_1=enable

log_archive_dest_state_2=enable

fal_server=node1

fal_client=node2

db_file_name_convert='g:\database\oradata\node1','g:\database\oradata\node2'

log_file_name_convert='g:\database\oradata\node1','g:\database\oradata\node2'

主库node1的参数

*.db_unique_name='NODE1'

*.fal_client='NODE1'

*.fal_server='NODE2'

*.log_archive_config='dg_config=(node1,node2)'

*.log_archive_dest_1='location=g:\database\oradata\node1\arch valid_for=(all_logfiles,all_roles) db_unique_name=node1'

*.log_archive_dest_2='service=node2 lgwr sync  valid_for=(online_logfiles,primary_role) db_unique_name=node2'

*.log_file_name_convert='g:\database\oradata\node2','g:\database\oradata\node1'


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

登陆PRIMARY数据库:

[oracle@zhong ~]$ sqlplus "/ as sysdba"

SQL> SET SQLP 'NODE1> '

NODE1> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

SESSIONS ACTIVE

NODE1> SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL;

1

虽然当前数据库的状态是SESSIONS ACTIVE而不是TO STANDBY,但是查询V$SESSION会话,确认除了当前会话外,其他都是系统会话,那么就可以在主库进行SWITCHOVER切换了:

Node1:>alter database commit to switchover to physical  standby;

Node1:>shutdown immediate;

ORA-01507: database not mounted 

ORACLE instance shut down.

node1:>startup mount

重启数据库,启动到MOUNT状态,注意,9i及以前版本需要START NOMOUNT,然后ALTER DATABASE MOUNT STANDBY DATABASE。

 下面登陆STANDBY数据库:

[oracle@zhong ~]$ sqlplus "/ as sysdba"

SQL> SET SQLP 'NODE2> '

Node2:>select switchover_status,database_role from v$database;

 SWITCHOVER_STATUS    DATABASE_ROLE

TO PRIMARY           PHYSICAL STANDBY

下面就可以将STANDBY数据库切换到PRIMARY数据库:

NODE2> alter database commit to switchover to primary;

node2:>select instance_name,status from v$instance;

 INSTANCE_NAME    STATUS

node2            STARTED

node2:>shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

node2:>startup

至此SWITCHOVER切换完成

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23073818/viewspace-716318/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-09-14

  • 博文量
    48
  • 访问量
    175199