[20131115]archivelog產生太快dataguard磁碟滿的問題解決.txt
[20131115]archivelog產生太快dataguard磁碟滿的問題解決.txt
今天早上例行檢查資料庫,發現開發升級程式有問題,有一個表的修改出現迴圈,不斷修改
一個欄位,導致archive日誌產生太多,dataguard的磁碟空間不足,日誌無法應用的情況。
解決方法1:
1.在dg上檢視:
SQL> set numwidth 20
SQL> select current_scn from v$database ;
CURRENT_SCN
-----------
10217872689
--然後在生產系統執行備份:
BACKUP INCREMENTAL FROM SCN 10217872689 DATABASE tag="inc20131115" format '/mnt/xxx.backup/inc_%U';
--然後在dg上,catalog備份:
RMAN> catalog start with '/mnt/xxx.backup/';
RMAN> recover automatic standby database until cancel;
--我們生產系統沒有增量備份,資料庫很大(1.2T),這樣做備份時間有點長,而且上午有業務跑,可能影響正常的業務操作。
--放棄這種方式!
解決方法2:
1.檢查dg的alert*.log:
Thu Nov 14 01:23:11 2013
Media Recovery Log +G0/xxxx/archivealias/0001_0000024627_772789050.dbf
Thu Nov 14 01:23:12 2013
...
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[1208]: Assigned to RFS process 16354
RFS[1208]: Identified database type as 'physical standby'
Creating archive destination file : +G0/xxxx/archivealias/0001_0000025355_772789050.dbf (72860 blocks)
Thu Nov 14 01:23:13 2013
Errors in file /u01/app/oracle/admin/xxxx/udump/xxxx_rfs_16354.trc:
ORA-00270: error creating archive log +G0/xxxx/archivealias/0001_0000025355_772789050.dbf
ORA-19504: failed to create file "+G0/xxxx/archivealias/0001_0000025355_772789050.dbf"
ORA-17502: ksfdcre:4 Failed to create file +G0/xxxx/archivealias/0001_0000025355_772789050.dbf
ORA-15041: diskgroup space exhausted
Thu Nov 14 01:23:13 2013
--很明顯日誌應用到+G0/xxxx/archivealias/0001_0000024627_772789050.dbf出現磁碟滿的情況。
2.先刪除已經應用的日誌,在dg上刪除不需要的archivelog日誌,騰出磁碟空間:
RMAN> delete archivelog until logseq 24626;
--保險一點,我還保留logseq=24627的archivelog;
3.應用日誌:
SQL> alter database recover managed standby database using current logfile disconnect ;
4.在dg上不斷檢測alert*.log日誌:
$ tail -f alert_xxx.log | grep '^Media Recovery Log'
4.這樣不停的重複第2步問題解決,把已經應用的日誌刪除。
RMAN> delete archivelog until logseq XXX;
--最好每次少1,安全一點。
--使用2個多小時,問題解決。
總結:
1.主要問題沒有做好資料庫監測。
2.dg的硬碟空間也太小了,選擇更大的磁碟,這個問題就沒有這麼麻煩了。
--補充:
正好看了1篇blog,
提供1個指令碼,刪除已經應用的blog。內容如下:
今天早上例行檢查資料庫,發現開發升級程式有問題,有一個表的修改出現迴圈,不斷修改
一個欄位,導致archive日誌產生太多,dataguard的磁碟空間不足,日誌無法應用的情況。
解決方法1:
1.在dg上檢視:
SQL> set numwidth 20
SQL> select current_scn from v$database ;
CURRENT_SCN
-----------
10217872689
--然後在生產系統執行備份:
BACKUP INCREMENTAL FROM SCN 10217872689 DATABASE tag="inc20131115" format '/mnt/xxx.backup/inc_%U';
--然後在dg上,catalog備份:
RMAN> catalog start with '/mnt/xxx.backup/';
RMAN> recover automatic standby database until cancel;
--我們生產系統沒有增量備份,資料庫很大(1.2T),這樣做備份時間有點長,而且上午有業務跑,可能影響正常的業務操作。
--放棄這種方式!
解決方法2:
1.檢查dg的alert*.log:
Thu Nov 14 01:23:11 2013
Media Recovery Log +G0/xxxx/archivealias/0001_0000024627_772789050.dbf
Thu Nov 14 01:23:12 2013
...
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[1208]: Assigned to RFS process 16354
RFS[1208]: Identified database type as 'physical standby'
Creating archive destination file : +G0/xxxx/archivealias/0001_0000025355_772789050.dbf (72860 blocks)
Thu Nov 14 01:23:13 2013
Errors in file /u01/app/oracle/admin/xxxx/udump/xxxx_rfs_16354.trc:
ORA-00270: error creating archive log +G0/xxxx/archivealias/0001_0000025355_772789050.dbf
ORA-19504: failed to create file "+G0/xxxx/archivealias/0001_0000025355_772789050.dbf"
ORA-17502: ksfdcre:4 Failed to create file +G0/xxxx/archivealias/0001_0000025355_772789050.dbf
ORA-15041: diskgroup space exhausted
Thu Nov 14 01:23:13 2013
--很明顯日誌應用到+G0/xxxx/archivealias/0001_0000024627_772789050.dbf出現磁碟滿的情況。
2.先刪除已經應用的日誌,在dg上刪除不需要的archivelog日誌,騰出磁碟空間:
RMAN> delete archivelog until logseq 24626;
--保險一點,我還保留logseq=24627的archivelog;
3.應用日誌:
SQL> alter database recover managed standby database using current logfile disconnect ;
4.在dg上不斷檢測alert*.log日誌:
$ tail -f alert_xxx.log | grep '^Media Recovery Log'
4.這樣不停的重複第2步問題解決,把已經應用的日誌刪除。
RMAN> delete archivelog until logseq XXX;
--最好每次少1,安全一點。
--使用2個多小時,問題解決。
總結:
1.主要問題沒有做好資料庫監測。
2.dg的硬碟空間也太小了,選擇更大的磁碟,這個問題就沒有這麼麻煩了。
--補充:
正好看了1篇blog,
提供1個指令碼,刪除已經應用的blog。內容如下:
PRE="set pagesize 0 \n set feedback off \n"; SS="$ORACLE_HOME/bin/sqlplus -L -S / as sysdba" ROLE=$(echo -e "$PRE select database_role from v\$database;" | $SS) [[ "$ROLE" != "PHYSICAL STANDBY" ]] && { echo "ERROR: database not a physical standby"; exit 1; } THREADS=$(echo -e "$PRE select distinct thread# from v\$archived_log;" | $SS) for THREAD in $THREADS; do MAX_APPLIED=$(echo -e "$PRE select max(sequence#) from v\$archived_log where applied='YES' and thread#=$THREAD;" | $SS) echo "delete noprompt archivelog until sequence $MAX_APPLIED thread $THREAD;"|rman target / done
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-776673/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決jenkins執行磁碟滿的問題Jenkins
- 【問題解決】單機搭建dataguard的問題
- 解決docker容器存放目錄磁碟空間滿了問題Docker
- 解決生產日誌重複列印的問題
- 磁碟問題定位與解決
- Linux磁碟滿問題分析Linux
- 解決FRA空間滿的問題
- 生產系統中EXP-00000的問題及解決
- Delete Dataguard ArchivelogdeleteHive
- dataguard standby備庫磁碟空間滿(ZT)
- 三招解決MongoDB的磁碟IO問題MongoDB
- 先裝VS後裝IIS產生問題的解決辦法。
- 磁碟寫滿快速排查與解決
- 淺談精益生產與其他問題解決方法的區別
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- dsp builder 11.0 使用過程中產生的問題及解決方案UI
- 使用 IBM 效能分析工具解決生產環境中的效能問題IBM
- vmware server 解決rac中共享磁碟問題Server
- 【ASK_ORACLE】由於索引分裂而產生的效能問題的解決方案Oracle索引
- 解決ASM磁碟組無法掛載的問題ASM
- 【YashanDB知識庫】archivelog磁碟滿導致資料庫abnormalHive資料庫ORM
- oracle的還原表空間UNDO寫滿磁碟空間,解決該問題的具體步驟Oracle
- 解決Oracle臨時表空間佔滿的問題Oracle
- 一次ASM空間滿了的問題解決ASM
- Linux磁碟空間佔滿問題快速排雷Linux
- 如何解決精益生產專案中出現的問題?
- Mac啟動磁碟已滿該怎麼解決Mac
- Linux 離奇磁碟爆滿解決辦法Linux
- 生產內網ssh登陸變慢問題原因及解決辦法內網
- springboot使用Filter解決前後端分離,產生的跨域問題Spring BootFilter後端跨域
- 生產計劃排產軟體如何解決生產難題?
- GlobalFoundries生產eMRAM解決方案
- 6個問題解決產品銷量的痛點
- 解決「問題」,不要解決問題
- 解決伺服器滿CPU被當礦機問題伺服器
- 多執行緒-生產者消費者問題程式碼2並解決執行緒安全問題執行緒
- 交換機可能產生的問題分析(轉)
- 解決overlay2儲存驅動的磁碟配額問題