Oracle歸檔日誌滿了怎麼辦

2021-08-14 03:14:13 字數 3576 閱讀 4558

歸檔滿了

如果伺服器進不去檢視pfile檔案,在pfile檔案裡面有歸檔除存放的路徑

如果伺服器本地可以進去,就可以檢視歸檔目錄

sql> archive log list;

database log mode        archive mode

automatic archival        enabled

archive destination        use_db_recovery_file_dest

oldest online log sequence     35

next log sequence to archive   38

current log sequence        38

更改完之後所有的自動備份路徑全部都會儲存在此目錄。

解決方法:

如果不自己設定歸檔目錄,一般和閃迴區在一起,無法登入sqlplus可以先去閃迴區看看,如果是在那裡,可以刪掉些很久以前的歸檔,然後就能暫時進入資料庫和rman了

然後可以在rman裡面刪除過期歸檔。

進入rman

crosscheck copy of archivelog all;

crosscheck archivelog all;

resync catalog;

delete force obsolete;

delete expired archivelog all;

通過crosscheck archivelog all;可以看到備份的歸檔

rman> crosscheck archivelog all;

using target database control file instead of recovery catalog

allocated channel: ora_disk_1

channel ora_disk_1: sid=42 device type=disk

validation succeeded for archived log

archived log file name=/u01/oracle/fast_recovery_area/oradb/archivelog/2017_12_21/o1_mf_1_7_f3qkhw2r_.arc recid=5 stamp=963297151

validation succeeded for archived log

archived log file name=/u01/oracle/fast_recovery_area/oradb/archivelog/2017_12_21/o1_mf_1_8_f3ql8mtr_.arc recid=6 stamp=963297940

validation succeeded for archived log

archived log file name=/u01/oracle/fast_recovery_area/oradb/archivelog/2017_12_27/o1_mf_1_9_f46pr89q_.arc recid=7 stamp=963794061

validation succeeded for archived log

archived log file name=/u01/oracle/fast_recovery_area/oradb/archivelog/2017_12_27/o1_mf_1_10_f47lh3qm_.arc recid=8 stamp=963822437

crosschecked 4 objects

因為db_recovery_file_dest_size      big integer        10g     因為只有10g,就可以刪除過期的歸檔。

如果上面刪除歸檔無效的話,可以:

delete noprompt archivelog all completed before 'sysdate-7';

這個命令是刪除七天以前的所有歸檔,然後就可以去歸檔目錄刪掉命令沒刪掉的7天前的所有歸檔了。

如果不想刪歸檔,歸檔在閃迴區,閃回區本身所在磁碟空間還有多的話,可以修改閃回區大小(

檢視回閃恢復區的大小和存放目標:>show parameter db_recovery_file_dest

修改回閃恢復區的大小》alter system set db_recovery_file_dest_size = 15g(可以根據實際情況調整大小)

也可以通過修改歸檔路徑  alter system set log_archive_dest_1='location=d:\arch';設定到乙個空間比較大的地方

補充sql> archive log list

資料庫日誌模式             非存檔模式

自動存檔             禁用

存檔終點            use_db_recovery_file_dest

最早的聯機日誌序列     321

當前日誌序列           326。

上面的存檔終點use_db_recovery_file_dest預設就是閃回恢復區($oracle_base/flash_recovery_area),可以通過下面的sql檢視閃回恢復區的資訊。

sql> show parameter db_recover

name                        type         value

db_recovery_file_dest       string      d:\oracle\flash_recovery_area

db_recovery_file_dest_size  big integer   2g

通過上面的sql結果可以看到,閃回恢復區為d:\oracle\flash_recovery_area,大小為2g,也可以通過查詢v$recovery_file_dest檢視檢視閃回恢復的限制資訊。

sql> select name,space_limit,space_used from v$recovery_file_dest;

name                           space_limit space_used

d:\oracle\flash_recovery_area   2147483648   21225472

預設情況下,歸檔日誌會存放到閃回恢復區(d:\oracle\flash_recovery_area)內,如果閃回恢復區已經使用到2g,歸檔日誌就有可能無法繼續歸檔,資料庫夯住,通常的解決方法是增大閃回恢復區,可以用以下sql實現。

sql> alter system set db_recovery_file_dest_size=3g;

系統已更改。

即使用這種方法解決的當前燃眉之急,雖然閃回恢復區oracle會自動管理,如果閃回恢復區空間不足就會清理掉沒用的資料,但是如果備份策略不是很完善,資料庫非常繁忙的情況下,還有可能遇到這種情況,通常需要修改歸檔日誌的路徑,將歸檔日誌放到其他不受限制的路徑下來解決這個問題,可通過下面的sql來修改歸檔日誌的存放路徑。

sql> alter system set log_archive_dest_1='location=d:\arch';

系統已更改。

oracle歸檔日誌滿了

oracle歸檔日誌滿了 oracle歸檔日誌清理 檢視歸檔檔案資訊 登入oracle sqlplus 賬號 密碼 as sysdba 檢視當前歸檔日誌目錄 show parameter recovery 解決方法一 修改歸檔日誌檔案大小 登入oracle sqlplus 賬號 密碼 as sysd...

mysql 盤滿了怎麼辦

作業系統 centos 6.2 現象 mysql無法啟動 查詢問題發現 存放mysql資料分割槽100 root jinniu test3 mysql df h 檔案系統 容量 已用 可用 已用 掛載點 dev sda2 49g 49g 20k 100 tmpfs 933m 0 933m 0 dev...

Redis 記憶體滿了怎麼辦?

我們知道redis是基於記憶體的key value資料庫,因為系統的記憶體大小有限,所以我們在使用redis的時候可以配置redis能使用的最大的記憶體大小。通過在redis安裝目錄下面的redis.conf配置檔案中新增以下配置設定記憶體大小 設定redis最大占用記憶體大小為100m maxme...