標籤:oracle dg主備切換
主庫磁碟問題,導致主庫宕機,因為歸檔還沒有應用,導致備庫無法轉為主庫
先查看一下備庫當前的資訊:
SQL> select * from v$version;BANNER---------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionPL/SQL Release 11.2.0.3.0 - ProductionCORE 11.2.0.3.0 ProductionTNS for Linux: Version 11.2.0.3.0 - ProductionNLSRTL Version 11.2.0.3.0 - Production
查看當前資料庫的狀態:
SQL> select open_mode from v$database;OPEN_MODE--------------------READ ONLY
該啟動狀態分為NOMOUNT,MOUNT,READ ONLY,READ WRITE四種狀態
查看DG主備庫的切換狀態:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS--------------------TO STANDBY
DG失效切換狀態包括NOT ALLOWED,SESSIONS ACTIVE,TO STANDBY,TO PRIMARY。當主庫為TO STANDBY時,表示主庫可以進行主備角色的切換。
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
如遇到以下錯誤提示,說明主備間還有活動的會話連結
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
可以通過以下語句強制關閉活動會話:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
ORA-16139: media recovery required
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH SKIP STANDBY LOGFILE;
主庫角色切換為備庫後,還有部分參數需要修改。
1、修改擷取歸檔的C/S端,這裡的FAL(Fetch Archive Log)
SQL> show parameters falNAME TYPE VALUE---------- ----------- --------fal_client string SID_PRIfal_server string SID_DG
2、修改主庫log_archive_dest_state_n及log_archive_dest_n。
SQL> show parameters log_archive_dest_state_2NAME TYPE VALUE------------------------- ----------- -------log_archive_dest_state_2 string DEFER
SQL> show parameters log_archive_dest_2NAME TYPE VALUE------------------ ----------- ------------------log_archive_dest_2 string service=SID_DG
3、修改備庫log_archive_dest_state_n及log_archive_dest_n。
SQL> show parameters log_archive_dest_state_2NAME TYPE VALUE------------------------- ----------- -------log_archive_dest_state_2 string ENABLE
SQL> show parameters log_archive_dest_2NAME TYPE VALUE------------------ ----------- ------------------log_archive_dest_2 string service=SID_PRI
4、查看備庫狀態 SESSIONS ACTIVE 切換角色為主庫
alter database commit to switchover to primary;shutdown immediatestartup mountalter database open read write
5、查看備庫的檔案管理狀態
SQL> show parameters standby_file_managementNAME TYPE VALUE----------------------- ----------- ---------standby_file_management string AUTO
6、切換備庫進入復原模式:
alter database recover managed standby database disconnect from session;
7、查看主備歸檔同步情況:
SQL> select process, status,sequence#,block#,blocks, delay_mins from v$managed_standby;PROCESS STATUS SEQUENCE# BLOCK# BLOCKS DELAY_MINS--------- ------------ ---------- ---------- ---------- ----------ARCH CONNECTED 0 0 0 0ARCH CONNECTED 0 0 0 0ARCH CONNECTED 0 0 0 0ARCH CONNECTED 0 0 0 0MRP0 WAIT_FOR_LOG 8048 0 0 0RFS IDLE 0 0 0 0RFS IDLE 8048 170025 824 0RFS IDLE 0 0 0 0
只要備庫的MRP(Managed Recovery Process)進程啟動,就表示歸檔正常進行
SQL> select dest_name,status,target,archiver,schedule, valid_type,valid_role,db_unique_name from v$archive_dest where dest_name=‘LOG_ARCHIVE_DEST_2‘;DEST_NAME STATUS TARGET ARCHIVER SCHEDULE VALID_TYPE VALID_ROLE DB_UNIQUE_NAME------------------------- --------- ------- ---------- -------- --------------- ------------ ------------------------------LOG_ARCHIVE_DEST_2 VALID STANDBY LGWR ACTIVE ALL_LOGFILES ALL_ROLES NONE
本文出自 “LinuxOracle” 部落格,請務必保留此出處http://onlinekof2001.blog.51cto.com/3106724/1589080
ORACLE DataGuard主備切換