oracle归档目录莫名删除,Oracle归档目录被自动删除的bug
對客戶DB環境進行巡檢過程中,竟然發現其中一個RAC數據庫的兩個節點的ALERT日志均有錯誤,其中一個節點日志文件更是很快到達了2G,馬上提起分析日志暴增的原因。初步查看發現,兩個節點通過PL/SQL均不能連接,但是本機能正常登陸,而查詢業務語句只有在節點1可以運行,但節點1也經常處于掛起狀態。
錯誤日志:
節點1的ALERT日志:
Wed Jul 13 04:06:26 2011
>>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! pid=214
System State dumped to trace file /u01/app/oracle/admin/port/udump/port1_ora_4668.trc
Wed Jul 13 06:26:59 2011
Errors in file /u01/app/oracle/admin/port/bdump/port1_j000_3593.trc:
ORA-12012: error on auto execute of job 42780
ORA-27468: "." is locked by another process
Wed Jul 13 06:49:44 2011
節點2的ALERT日志:
Tue Jul 12 22:57:19 2011 Thread 2 advanced to log sequence 6852 (LGWR switch)
Current log# 4 seq# 6852 mem# 0: +DATA/port/onlinelog/group_4.270.697238219
Current log# 4 seq# 6852 mem# 1: +DATA/port/onlinelog/group_4.271.697238221
Wed Jul 13 01:51:41 2011 Wed Jul 13 01:51:41 2011
ARCH: Archival stopped, error occurred. Will continue retrying
Wed Jul 13 01:51:41 2011
ORACLE Instance port2 - Archival Error
Wed Jul 13 01:51:41 2011
ORA-16038: log 4 sequence# 6852 cannot be archived
ORA-00254: error in archive control string ''
ORA-00312: online log 4 thread 2: '+DATA/port/onlinelog/group_4.270.697238219'
ORA-00312: online log 4 thread 2: '+DATA/port/onlinelog/group_4.271.697238221'
ORA-15173: entry 'archivelog' does not exist in directory 'port'
從以上日志可以看出,故障發生時間在01:20:27-01:21:36之間,為什么這么說,因為在01:21:36時候已經出現“Checkpoint not complete”錯誤了,其實就是歸檔出了問題。并且要命的是PLSQL連接提示00257錯誤,這個錯誤經驗性的讓人想到是日志空間滿了,事實上只要仔細看如上的“ORA-15173: entry ‘archivelog’ does not exist in directory ‘port’”錯誤和ORA-00254錯誤,應該可以定位故障是主庫歸檔目錄丟失的問題。
回憶最近的備份調整策略,由于磁盤使用空間日益增長,短期內無法擴展磁盤,于是把歸檔日志清理策略改成每日一清,并且每次徹底清理所有歸檔日志:
backup archivelog all format '/u01/archive/arch_%U';
delete noprompt archivelog until time 'sysdate -3';
delete noprompt archivelog until time 'sysdate -2';
delete noprompt archivelog until time 'sysdate -1';
delete noprompt archivelog until time 'sysdate -0';
來到這里,問題似乎跟這個sysdate-0有關,于是上網查了一下11G的確存在BUG4431215,該BUG明確表示,如采用這種’sysdate -0’歸檔清理時,會將目錄一起清除掉,這個時候,我們不難發現更簡便的方法,通過ASMCMD直接創建丟失的archivelog目錄就可以了。
[oradba@oracle1 rmanbak]$ export ORACLE_SID=+ASM1
[oradba@oracle1 rmanbak]$ asmcmd
ASMCMD> cd data
ASMCMD> mkdir archivelog
ASMCMD> ls
PORT/
archivelog/
總結:該BUG主要觸發在ASM磁盤組,當命令"delete noprompt archivelog until time ‘sysdate -0’; 發出后,"刪除所有歸檔日志之余,會將歸檔目錄一起清理掉,所以該命令一定要謹慎處理,避免這種意外發生。
?版權聲明:本文為天凱DBS的原創文章,轉載請附上原文出處鏈接及本聲明,否則將追究法律責任。
更多DBA實戰案例請關注訪問天凱DBS!
總結
以上是生活随笔為你收集整理的oracle归档目录莫名删除,Oracle归档目录被自动删除的bug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 读取php页面内容,js读取htm
- 下一篇: oracle rac 中的ocr,11g