DG日誌不應用,GAP,主備切換解決思路與辦法
環境ORACLE 10G OS WINDOWS
對於DG故障解決思路,DG日誌切換不進行應用,DG出現GAP解決方法,DG主備庫切換,
當DG出現故障時,第一時間檢測alert日誌,伺服器OS日誌,網路是否通暢。
1、當DG出現日誌不能傳輸到備庫
一、TNS配置錯誤,監聽配置錯誤。
二、主備庫初始化引數檔案配置錯誤(如archive_log_dest檔案位置錯誤)。
三、備庫控制檔案過舊,從主庫生成一個STANDBY CONTROL過去。
SQL> alter database create standby controlfile as 'c:\control01.ctl';。
四、備庫是否應用了Failovers 。
下面模擬備庫應用了Failovers ,我這個是進行切換過的。
備庫執行
SQL> alter database recover managed standby database finish;
Database altered.
備庫
SQL> select PROTECTION_MODE,OPEN_MODE,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_ST
ATUS from v$database;
PROTECTION_MODE OPEN_MODE DB_UNIQUE_NAME DATABASE_ROLE
-------------------- ---------- ------------------------------ ----------------
SWITCHOVER_STATUS
--------------------
MAXIMUM PERFORMANCE MOUNTED primary PHYSICAL STANDBY
TO PRIMAR
主庫
SQL> select PROTECTION_MODE,OPEN_MODE,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_ST
ATUS from v$database;
PROTECTION_MODE OPEN_MODE DB_UNIQUE_NAME DATABASE_ROLE
-------------------- ---------- ------------------------------ ----------------
SWITCHOVER_STATUS
--------------------
MAXIMUM PERFORMANCE READ WRITE standby PRIMARY
SESSIONS ACTIVE
主庫alert檔案:
ARC1: All Archive destinations made inactive due to error 394
ARC1: Failed to archive thread 1 sequence 1 (394)
ARCH: Archival stopped, error occurred. Will continue retrying
Wed Oct 30 10:25:54 2013
Errors in file c:\oracle\product\10.2.0\admin\orcl\bdump\orcl_arc1_1236.trc:
ORA-16038: log 2 sequence# 1 cannot be archived
ORA-00394: online log reused while attempting to archive it
ORA-00312: online log 2 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\STANDBY\ONLINELOG\O1_MF_2_96YY5JSW_.LOG'
ARC1: All Archive destinations made inactive due to error 394
*** 2013-10-30 10:25:54.796 58942 kcrr.c
kcrrfail: dest:1 err:394 force:0 blast:1
*** 2013-10-30 10:25:54.828 20146 kcrr.c
ORA-16038: log 2 sequence# 1 cannot be archived
ORA-00394: online log reused while attempting to archive it
ORA-00312: online log 2 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\STANDBY\ONLINELOG\O1_MF_2_96YY5JSW_.LOG'
*** 2013-10-30 10:27:54.734
*** 2013-10-30 10:27:54.734 20146 kcrr.c
*** 2013-10-30 10:28:54.765
kcrrwkx: work to do 0x1 (start)
*** 2013-10-30 10:28:54.781 20146 kcrr.c
這個時候導致主庫不再向備庫傳送日誌了,我們只需要重建STANDBY控制檔案就行
SQL> alter database create standby controlfile as 'c:\control01.ctl';。
其中當真正主庫出現故障的Failovers的時候
一.檢視是否有日誌GAP,沒有應用的日誌:
SQL> SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
如果有,則複製過來並且註冊
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '路徑';
重複檢視直到沒有應用的日誌:
二. 然後停止應用歸檔:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
三. 下面將STANDBY資料庫切換為PRIMARY資料庫:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
或
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
2、日誌傳輸到備庫不能應用。
一、是否產生了GAP 複製缺失的日誌重新註冊日誌,如果GAP缺失的歸檔日誌過多,切歸檔日誌已經刪除了,那就必須重新搭建DG。
二、是否設定了REDO延遲
下面就簡單說說手工處理日誌GAP的步驟:
1、在備庫檢查是否有日誌缺失
SQL> select * from V$ARCHIVE_GAP;
2、在主庫中查詢缺失的日誌的所在路徑和名稱
SQL> SELECT NAME FROM V$ARCHIVED_LOG
如果把日誌移動到其他路徑,則把日誌所在路徑換成當前實際所在路徑。
3、把日誌複製到備庫上
4、在備庫上手工註冊上一步中從主庫複製來的日誌
SQL> ALTER DATABASE REGISTER LOGFILE '路徑';
5、觀察備庫的alert日誌資訊
6、檢查備庫是否還有日誌GAP
SQL> select * from V$ARCHIVE_GAP;
no rows selected
如果有行返回,則重複2-5步,直到查詢結果是"no rows selected"。
如果日誌只是臨時移動到其他地方,過後會再移回原路徑,則不用這麼大費周折手工去手工處理了,把日誌拷回原處後FAL會自動處理GAP。
3、DG主備庫切換
主庫:
1. 檢視switchover 狀態
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
to standby
2 切換成備庫
如果上面的結果不是to standby 還有會話執行
SQL>Alter database commit to switchover to physical standby with session shutdown;
否則直接
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
Database altered.
3 啟動到mount和應用日誌狀態
SQL> SHUTDOWN IMMEDIATE
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
4. 檢視資料庫模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
備庫:
1.檢視switchover狀態
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
TO PRIMARY
2. 切換成主庫
如果上面的結果不是to PRIMARY 還有會話執行
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown
否則
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
SQL> shutdown immediate;
SQL> startup;
SQL> alter system switch logfile;
3. 檢視資料庫模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
至此,DG相關簡單問題全部以列出。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2129191/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【DG】Data Guard主備庫Switchover切換
- DG主備日誌缺失,資料無法同步修復
- 【DG】Data Guard主備庫Failove切換AI
- 一次dg 因密碼檔案與gap引起歸檔日誌無法應用的處理密碼
- DG沒有應用日誌應用日誌
- DG-在主庫/備庫刪除已經應用過的日誌.txt
- mongodb日誌太大的解決辦法MongoDB
- DG-備庫日誌的應用遲時檢查
- DG保護模式與備用聯機日誌檔案模式
- Linux--SSH 檢視應用日誌中文亂碼解決辦法Linux應用日誌
- 【DG】DG備庫報ORA-28000: the account is locked的解決辦法
- 【備份恢復】set newname切換日誌
- win10輸入法切換不出來怎麼辦_win10輸入法切換不瞭解決教程Win10
- Mysql5.7錯誤日誌時間不對的解決辦法MySql
- oracle rman備份歸檔日誌需要先切換日誌嗎Oracle
- 執行主備庫切換以解決主庫儲存不足
- 主備庫切換以解決主庫儲存空間不足
- PostgreSQL切換日誌SQL
- windows10輸入法無法切換怎麼辦 win10筆記本輸入法切換不瞭解決方法WindowsWin10筆記
- artisan日誌 root 許可權解決辦法
- DG邏輯庫logstdby 日誌應用長時間不歸檔
- dg刪除備庫已經應用的歸檔日誌指令碼指令碼
- 主備切換(failover)AI
- Oracle日誌模式切換Oracle模式
- DG中備庫為SWITCHOVER PENDING時是否能進行主備切換
- 主備切換的準備工作
- dg庫日誌應用慢引數調整
- 切換輸入法卡死怎麼辦_win10切換輸入法就卡死的解決方法Win10
- openGauss主備切換之switchover與failoverAI
- mysql主從複製+主備切換MySql
- Data Guard主備庫切換
- REDO日誌切換頻率
- alert日誌報checkpoint not complete解決思路
- 主備切換的準備工作(二)
- DG的切換操作
- Oracle 單機切換為主備Oracle
- DataGuard主備庫切換步驟
- MySQL 主備庫切換記錄MySql