歸檔日誌卷空間不足導致資料庫故障解決方法

2021-03-31 08:56:30 字數 1887 閱讀 7799

作業系統:sun solaris 8

雙機軟體: sun cluster 3.0

資料庫:oracle 8.1.7.3

故障現象:

網通客戶反映mswitch軟交換系統中所有與資料庫相關的操作都無法完成,如oss、nms等介面的查詢、修改等操作都返回資料庫連線錯誤。在sqlplus中使用wacos等使用者登入時出現如下錯誤:

ora-00257: archiver error. connect internal only, until freed.

故障分析:

mswitch系統的資料庫執行模式為歸檔模式,當redo log被重寫前需要利用arch程序進行將該redo log進行備份生成歸檔日誌。如果在歸檔過程中歸檔日誌使用的卷磁碟空間滿,歸檔就無法進行,oracle將會一直處於等待歸檔完成狀態,此時任何與資料庫相關的操作都會無法完成,導致業務中斷。

故障處理:

如果現場的儲存裝置有空餘空間,可以增加歸檔日誌卷的空間,如果沒有多餘空間可以刪除部分歸檔日誌來騰出部分空間。

注意:歸檔日誌對資料庫的恢復非常重要,在刪除歸檔日誌前最好確保系統有成功的備份,所刪除的歸檔日誌也應該是備份前的歸檔日誌。

在確保歸檔日誌所在卷有一定的空間後,利用internal使用者登入資料庫進行如下的操作。

步驟一:確定歸檔日誌的目錄:

$svrmgrl

svrmgrl>connect internal/

svrmgrl>archive log list;

database log mode              archive mode

automatic archival             enabled

archive destination            /opt/oracle/arch/orcl

oldest online log sequence     176

next log sequence to archive   178

current log sequence           178

svrmgrl>exit

輸出中的archive destination就是資料庫所在的歸檔目錄。

步驟二:更換歸檔日誌目錄:

$svrmgrl

svrmgrl>connect internal/

svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch';

svrmgrl>alter system switch logfile;

svrmgrl>exit;

將歸檔日誌的的目錄更換為新目錄,然後進行新的歸檔操作。

步驟三:將歸檔日誌目錄更換為原目錄:

$svrmgrl

svrmgrl>connect internal/

svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch/orcl';

svrmgrl>alter system switch logfile;

svrmgrl>exit;

將歸檔日誌目錄恢復為原目錄,並進行歸檔。

步驟四:將臨時目錄下的歸檔日誌拷貝回來

利用作業系統命令將步驟二產生的歸檔日誌拷貝回歸檔日誌的目錄。

步驟五:業務測試

資料庫恢復後進行各項業務的測試,確保業務正常。

步驟六:備份資料庫

根據現場資料庫的使用情況對資料庫進行備份。

日常維護:

為避免該問題的發生,在日常維護中需要進行歸檔日誌卷空間占用情況的檢查:

$df -k

如果發現歸檔日誌卷空間滿了,現場的儲存裝置有空餘空間的話,可以增加歸檔日誌卷的空間,如果沒有多餘空間可以刪除部分歸檔日誌來騰出空間。

oracle 日誌滿 資料庫空間不足的處理

客戶反映寬頻認證伺服器,認證日誌 認證詳單沒有且部分寬頻使用者有掉線現象 處理過程 1.檢視磁碟空間使用情況 df h 發現有一磁碟使用100 2.經過分析發現資料庫日誌異常大,清理相關日誌 10g 3.檢視資料庫空間使用情況 select dbf.tablespace name,dbf.total...

oracle資料庫清理歸檔日誌步驟

1.root登陸後切換oracle使用者 root localhost su oracle2.執行sqlplus as sysdba進入oracle資料庫 oracle localhost sqlplus as sysdba3.執行 select from v flash recovery area...

oracle資料庫清理歸檔日誌步驟

root登陸後切換oracle使用者 root localhost su oracle執行 sqlplus as sysdba進入oracle資料庫 oracle localhost sqlplus as sysdba執行 sqlplus as sysdba進入oracle資料庫 oracle lo...