一次資料庫不能歸檔問題的處理

empo007發表於2007-06-29
資料庫不能歸檔,很多的時候是因為磁碟空間不夠或者線上日誌檔案損壞導致。然而4月份的時候,我卻遇到一個非常奇怪的歸檔不成功的問題:[@more@]

1、使用者資料庫不能登陸,檢視警告日誌,發現下面的錯誤:

ORA-19510: failed to set size of 102395 blocks for file "/oradata/gpsdb/archive/1_9410.dbf" (blocksize=1024)
ORA-27037: unable to obtain file status
HP-UX Error: 2: No such file or directory
Additional information: 5


ORA-16038: log 1 sequence# 9409 cannot be archived
ORA-19510: failed to set size of blocks for file "" (blocksize=)
ORA-00312: online log 1 thread 1: '/oradata/gpsdb/redo01.log'
ARCH: Connecting to console port...

2、針對資料庫不能歸檔的問題,首先查詢了歸檔路徑的許可權和剩餘空間的問題:/oradata/gpsdb/archive的許可權是755,屬主是oracle使用者,oracle使用者擁有對該路徑的所有許可權。另外透過bdf命令看到oradata卷的剩餘空間所佔比例為16%,大小遠大於100M歸檔日誌的大小,可見不能歸檔與許可權和剩餘空間無關。

3、資料庫的警告日誌和產生的TRACE檔案中的資訊說明資料庫不能歸檔是遇到了HP UX ERROR,下面是一段TRACE檔案的錯誤資訊:

*** 2007-04-28 00:11:13.153

ARC1: Error 19510 Closing archive log file '/oradata/gpsdb/archive/1_9409.dbf'

*** 2007-04-28 00:11:13.193

kcrrfail: dest:1 err:19510 force:0

ORA-19510: failed to set size of 102398 blocks for file "/oradata/gpsdb/archive/1_9409.dbf" (blocksize=1024)

ORA-27037: unable to obtain file status

HP-UX Error: 2: No such file or directory

對該錯誤的解讀:

錯誤資訊ARC1: Error 19510 Closing archive log file '/oradata/gpsdb/archive/1_9409.dbf'說明歸檔後關閉歸檔生成的檔案時出錯。而原因是unable to obtain file status,之所以不能獲取檔案的狀態則是因為HP-UX Error: 2: No such file or directory

4、幾天後應使用者要求檢查主機上定義的作業,執行crontab –l,得到下面的結果

* * * * 6 /oracle/bin/del_archive.sh

至此真相大白:

有人定義了執行刪除歸檔日誌的定時作業,該作業會在每週六的cron程式的每一次呼叫的時候都執行,因為它沒有定義執行該作業的時間點,這樣週六的時候該作業會不斷執行。

5、聯想到上面出現的因為不能獲取剛生成的歸檔檔案的狀態因而不能關閉歸檔檔案最終導致歸檔不成功的問題,感覺與該定時作業有關,因為剛剛寫完歸檔日誌檔案,準備關閉該檔案時,該檔案被刪除了,因而歸檔總是出錯。

進一步查詢警告日誌檔案,發現所有因無法關閉歸檔檔案導致歸檔不成功錯誤出現的時間都是週六,而且每個週六都有這樣的事情發生。而之所以以前沒有發現,在4月28日才發現這樣的事情是因為以前週六沒有上班,4月28日因為5.1長假的原因上班了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/85922/viewspace-922136/,如需轉載,請註明出處,否則將追究法律責任。

相關文章