前面搭建好了rac同单实例数据库data guard的maa环境,为了方便切换操作,这里配置使用data guard broker进行操作!rac环境下,需要将data guard broker的配置文件存放到共享存储上!
一:修改data guard broker的配置文件参数,启动dmon进程
[oracle@rac1 ~]$ sqlplus sys/123456@rac as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jan 14 21:11:34 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> show parameter dg_broker_config;
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
dg_broker_config_file1 string
+DATA/rac/dgbroker/dg_config_f
ile1.dat
dg_broker_config_file2 string
+FRA/rac/dgbroker/dg_config_fi
le2.dat
SQL> alter system set dg_broker_start=true;
System altered.
SQL> conn sys/123456@orcl as sysdba
Connected.
SQL> show parameter dg_broker_config;
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
dg_broker_config_file1 string
/u01/app/oracle/product/10.2.0
/db1/dbs/dg_config_file1.dat
dg_broker_config_file2 string
/u01/app/oracle/product/10.2.0
/db1/dbs/dg_config_file2.dat
SQL> alter system set dg_broker_start=true;
System altered.
二:使用srvctl命令修改rac数据库的启动选项,如果备库也是rac环境,同样需要相应的修改
[oracle@rac1 ~]$ srvctl modify database -d rac -s open -r primary -o $ORACLE_HOME
[oracle@rac1 ~]$ srvctl stop database -d rac -o immediate
[oracle@rac1 ~]$ srvctl start database -d rac
三:创建dg broker配置文件
[oracle@server49 ~]$ dgmgrl sys/123456@rac
DGMGRL for Linux: Version 10.2.0.5.0 - 64bit Production
Copyright (c) 2000, 2005, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> create configuration maa as primary database is rac connect identifier is rac;
Configuration "maa" created with primary database "rac"
DGMGRL> add database orcl as connect identifier is orcl maintained as physical;
Database "orcl" added
DGMGRL> show configuration;
Configuration
Name: maa
Enabled: NO
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
rac - Primary database
orcl - Physical standby database
Current status for "maa":
DISABLED
DGMGRL> show database verbose rac;
Database
Name: rac
Role: PRIMARY
Enabled: NO
Intended State: ONLINE
Instance(s):
rac2
rac1
Properties:
InitialConnectIdentifier = 'rac'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'auto'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '5'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '+DATA/rac, /u01/app/oracle/oradata/orcl'
LogFileNameConvert = '+FLASH/rac, /u01/app/oracle/flash_recover_area/orcl, +DATA/rac,
/u01/app/oracle/oradata/orcl'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName(*)
SidName(*)
LocalListenerAddress(*)
StandbyArchiveLocation(*)
AlternateLocation(*)
LogArchiveTrace(*)
LogArchiveFormat(*)
LatestLog(*)
TopWaitEvents(*)
(*) - Please check specific instance for the property value
Current status for "rac":
DISABLED
四:启用dg broker配置,执行主备切换
DGMGRL> enable configuration;
Enabled.
DGMGRL> show configuration;
Configuration
Name: maa
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
rac - Primary database
orcl - Physical standby database
Current status for "maa":
SUCCESS
DGMGRL> show database rac;
Database
Name: rac
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
rac2
rac1
Current status for "rac":
SUCCESS
DGMGRL> show database orcl;
Database
Name: orcl
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
orcl
Current status for "orcl":
SUCCESS
DGMGRL> switchover to orcl;
Performing switchover NOW, please wait...
Operation requires shutdown of instance "rac1" on database "rac"
Shutting down instance "rac1"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires shutdown of instance "orcl" on database "orcl"
Shutting down instance "orcl"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "rac1" on database "rac"
Starting instance "rac1"...
ORACLE instance started.
Database mounted.
Operation requires startup of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "orcl"
五:验证
DGMGRL> show configuration;
Configuration
Name: maa
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
rac - Physical standby database
orcl - Primary database
Current status for "maa":
SUCCESS
DGMGRL> show configuration;
Configuration
Name: maa
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
rac - Physical standby database
orcl - Primary database
Current status for "maa":
SUCCESS
单实例数据库(原备库)日志信息如下:
[oracle@server49 dbs]$ tail -f /u01/app/oracle/admin/orcl/bdump/alert_orcl.log
Managed Standby Recovery Canceled (orcl)
Sat Jan 14 22:36:17 CST 2012
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
Sat Jan 14 22:36:17 CST 2012
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WAIT WITH SESSION SHUTDOWN
Sat Jan 14 22:36:17 CST 2012
ALTER DATABASE SWITCHOVER TO PRIMARY (orcl)
If media recovery active, switchover will wait 900 seconds
SwitchOver after complete recovery through change 565100
Online log /u01/app/oracle/oradata/ORCL/onlinelog/group_1.307.772367339: Thread 1 Group 1 was previously
cleared
Online log /u01/app/oracle/oradata/ORCL/onlinelog/group_2.306.772367347: Thread 1 Group 2 was previously
cleared
Online log /u01/app/oracle/oradata/ORCL/onlinelog/group_3.305.772367577: Thread 2 Group 3 was previously
cleared
Online log /u01/app/oracle/oradata/ORCL/onlinelog/group_4.304.772367577: Thread 2 Group 4 was previously
cleared
Standby became primary SCN: 565098
Converting standby mount to primary mount.
Sat Jan 14 22:36:21 CST 2012
Switchover: Complete - Database mounted as primary (orcl)
Completed: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WAIT WITH SESSION SHUTDOWN
Sat Jan 14 22:36:21 CST 2012
ARC3: STARTING ARCH PROCESSES
ARC5: Archival started
ARC3: STARTING ARCH PROCESSES COMPLETE
Sat Jan 14 22:36:36 CST 2012
Job queue slave processes stopped
Waiting for dispatcher 'D000' to shutdown
All dispatchers and shared servers shutdown
Sat Jan 14 22:36:38 CST 2012
alter database CLOSE NORMAL
ORA-1109 signalled during: alter database CLOSE NORMAL...
rac数据库(原主库)节点1日志信息如下:
[oracle@rac1 ~]$ tail -f /u01/app/oracle/admin/rac/bdump/alert_rac1.log
Reconfiguration complete
Sat Jan 14 22:39:18 CST 2012
Using STANDBY_ARCHIVE_DEST parameter default value as +FRA/rac/standbylog
Sat Jan 14 22:39:18 CST 2012
ALTER SYSTEM SET log_archive_dest_2='location="+FRA/rac/standbylog"',' valid_for=
(STANDBY_LOGFILE,STANDBY_ROLE)' SCOPE=BOTH SID='rac1';
Using STANDBY_ARCHIVE_DEST parameter default value as +FRA/rac/standbylog
Sat Jan 14 22:39:18 CST 2012
ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH SID='rac1';
Sat Jan 14 22:39:18 CST 2012
ALTER SYSTEM SET standby_archive_dest='+FRA/rac/standbylog' SCOPE=BOTH SID='rac1';
Sat Jan 14 22:39:18 CST 2012
ALTER SYSTEM SET log_archive_trace=0 SCOPE=BOTH SID='rac1';
Sat Jan 14 22:39:18 CST 2012
ALTER SYSTEM SET log_archive_format='%t_%s_%r.dbf' SCOPE=SPFILE SID='rac1';
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET standby_file_management='auto' SCOPE=BOTH SID='*';
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET archive_lag_target=0 SCOPE=BOTH SID='*';
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET log_archive_max_processes=5 SCOPE=BOTH SID='*';
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET log_archive_min_succeed_dest=1 SCOPE=BOTH SID='*';
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET db_file_name_convert='+DATA/rac','/u01/app/oracle/oradata/orcl' SCOPE=SPFILE;
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET
log_file_name_convert='+FLASH/rac','/u01/app/oracle/flash_recover_area/orcl','+DATA/rac','/u01/app/oracle/orada
ta/orcl' SCOPE=SPFILE;
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET fal_server='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.49)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl_XPT.yang.com)(SERVER=dedicated)))' SCOPE=BOTH;
Sat Jan 14 22:39:19 CST 2012
ALTER SYSTEM SET fal_client='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip.yang.com)
(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=rac_XPT.yang.com)(INSTANCE_NAME=rac1)(SERVER=dedicated)))' SCOPE=BOTH;
Sat Jan 14 22:39:19 CST 2012
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
Sat Jan 14 22:39:20 CST 2012
MRP0: Background Media Recovery cancelled with status 16037
Sat Jan 14 22:39:20 CST 2012
Errors in file /u01/app/oracle/admin/rac/bdump/rac1_mrp0_22837.trc:
ORA-16037: user requested cancel of managed recovery operation
Sat Jan 14 22:39:20 CST 2012
Managed Standby Recovery not using Real Time Apply
Sat Jan 14 22:39:20 CST 2012
Recovery interrupted!
Recovered data files to a consistent state at change 565576
Sat Jan 14 22:39:21 CST 2012
Errors in file /u01/app/oracle/admin/rac/bdump/rac1_mrp0_22837.trc:
ORA-16037: user requested cancel of managed recovery operation
Sat Jan 14 22:39:21 CST 2012
MRP0: Background Media Recovery process shutdown (rac1)
Sat Jan 14 22:39:21 CST 2012
Managed Standby Recovery Canceled (rac1)
Sat Jan 14 22:39:21 CST 2012
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL
Sat Jan 14 22:39:21 CST 2012
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE
Sat Jan 14 22:39:21 CST 2012
Attempt to start background Managed Standby Recovery process (rac1)
MRP0 started with pid=36, OS id=23667
Sat Jan 14 22:39:21 CST 2012
MRP0: Background Managed Standby Recovery process started (rac1)
Sat Jan 14 22:39:26 CST 2012
Managed Standby Recovery starting Real Time Apply
Sat Jan 14 22:39:26 CST 2012
parallel recovery started with 2 processes
Sat Jan 14 22:39:27 CST 2012
Waiting for all non-current ORLs to be archived...
Media Recovery Waiting for thread 1 sequence 31 (in transit)
Sat Jan 14 22:39:27 CST 2012
Recovery of Online Redo Log: Thread 1 Group 11 Seq 31 Reading mem 0
Mem# 0: +FRA/rac/onlinelog/group_11.303.772371907
Sat Jan 14 22:39:27 CST 2012
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT
LOGFILE
Sat Jan 14 22:39:48 CST 2012
Media Recovery Waiting for thread 1 sequence 32
Sat Jan 14 22:39:48 CST 2012
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[5]: Assigned to RFS process 23859
RFS[5]: Identified database type as 'physical standby'
Primary database is in MAXIMUM PERFORMANCE mode
Primary database is in MAXIMUM PERFORMANCE mode
RFS[5]: Successfully opened standby log 11: '+FRA/rac/onlinelog/group_11.303.772371907'
NSV0 started with pid=46, OS id=23866
Sat Jan 14 22:39:56 CST 2012
Recovery of Online Redo Log: Thread 1 Group 11 Seq 32 Reading mem 0
Mem# 0: +FRA/rac/onlinelog/group_11.303.772371907
Sat Jan 14 22:40:15 CST 2012
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[6]: Assigned to RFS process 24003
RFS[6]: Identified database type as 'physical standby'
[oracle@server49 ~]$ sqlplus sys/123456@orcl as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Sat Jan 14 22:47:14 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select name,db_unique_name,open_mode,database_role,switchover_status from v$database;
NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- ---------- ---------------- --------------------
RAC orcl READ WRITE PRIMARY SESSIONS ACTIVE
SQL> conn sys/123456@rac as sysdba
Connected.
SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;
NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- ---------- ---------------- --------------------
RAC rac MOUNTED PHYSICAL STANDBY SESSIONS ACTIVE
RAC rac MOUNTED PHYSICAL STANDBY SESSIONS ACTIVE
SQL> conn /as sysdba
Connected.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 31
Next log sequence to archive 32
Current log sequence 32
SQL> alter system switch logfile;
System altered.
SQL> select first_time,next_time,sequence#,thread#,applied from v$archived_log where thread#=1 and sequence# >
30;
FIRST_TIM NEXT_TIME SEQUENCE# THREAD# APP
--------- --------- ---------- ---------- ---
14-JAN-12 14-JAN-12 31 1 YES
14-JAN-12 14-JAN-12 32 1 YES
©著作权归作者所有:来自51CTO博客作者ylw6006的原创作品,谢绝转载,否则将追究法律责任
racswitchovermaaRAC