archivelog滿了導致資料庫怠機的solution
以前就遇到過archivelog滿了,導致無法登陸資料庫。今天自己在測試append直接插入和insert插入時不巧自己剛好又遇見了,ora-16038 ora-19809 ora-00312。Oracle資料庫中有個閃回恢復區flash_recovery_area預設的是2G的大小,由於本機資料庫是archivelog和flashback on同時開啟了,產生的歸檔日誌和閃回日誌超過了2G容量的大小,也就導致無法歸檔,造成arch程式失敗資料庫而怠機了。
首先flash_recovery_area滿了導致sys使用者也無法登陸資料庫,此時肯定需要做的是先登陸資料庫吧。於是手動在os上刪除部分archivelog來騰出空間,但是此時資料庫還是無法登陸。
由於是windows測試機自己os上
net stop oracleserviceorcl
停止了資料庫服務歷程。
Net start oracleserviceorcl
開啟資料庫服務歷程
不過此服務只存在與windows下,linux下是不存在此服務的。
I:
Sqlplus / as sysdba
Startup;
此時檢視alert日誌:
Errors in file d:oracleproduct10.2.0adminorclbdumporcl_arc1_916.trc:
ORA-16038: log 1 sequence# 56 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: 'D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG'
出現了上述三個ora錯誤,還是已經滿了redo log無法完成歸檔。雖然我們在os上刪除了archivelog騰出了空間,但是還需要在oracle上也就是控制檔案中的記錄再次清除os上刪除的archivelog
Rman target /
Crosscheck archivelog all
Delete expired archivelog all
利用crosscheck把os上刪除archivelog在rman目錄中標記為expired過期,然後delete expired archivelog all。
此時再連線資料庫
Sqlplus / as sysdba
Shutdown immediate
Startup;
此時資料庫也正常工作了!所以有時候還是要多關心一下flash_recovery_area的引數的設定。
II:
當然一樣需要用sys使用者進入資料庫啟動資料庫,同樣到open狀態出錯
Startup
ORA-16038: 日誌 3 序列號 46 無法歸檔
ORA-19809: 超出了恢復檔案數的限制
ORA-00312: 聯機日誌 1 執行緒 1: 'D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG'
(此時記得以前的blog中提到了丟失log的解決方法
Alter database clear unarchived logfile 'D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG';
重新清除redo log新建,但是如果是當前的redo且還沒有歸檔是不行的。如果丟失的非當前redo完全可以這樣來解決。Alter database clear unarchived logfile重建redo)
那就直接增大flash_recovery_area容量吧
Alter system set db_recovery_file_dest_size=10g scope=both
然後檢視一下
Select * from v$flash_recovery_area_usage
其中的archivelog的used已經降下來了!
Alter database open
即可開啟
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1055605/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【YashanDB知識庫】archivelog磁碟滿導致資料庫abnormalHive資料庫ORM
- ASM空間爆滿導致資料庫掛起ASM資料庫
- ORACLE一體機pcie 快取卡損壞導致資料庫dang機Oracle快取資料庫
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 總結導致oracle資料庫主機CPU sys%高的一些原因Oracle資料庫
- 故障分析 | 血的教訓-由慢查詢引發的備份等待導致資料庫連線打滿資料庫
- 使用資料庫處理併發可能導致的問題資料庫
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- 【YashanDB知識庫】資料庫審計shutdown immediate操作導致資料庫異常退出資料庫
- MySQL 5.6因為OOM導致資料庫重啟MySqlOOM資料庫
- 大事務導致資料庫恢復時間長資料庫
- openGauss 由於RemoveIPC未關閉導致資料庫crashREM資料庫
- oracle 程式滿了,登陸不上資料庫的解決方法Oracle資料庫
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- 伺服器資料恢復-誤操作導致mysql資料庫資料丟失的資料恢復案例伺服器資料恢復MySql資料庫
- Oracle sysman.mgmt_jobs導致資料庫自動重啟Oracle資料庫
- 故障分析 | MySQL 5.7 使用臨時表導致資料庫 CrashMySql資料庫
- ORACLE DSG資料同步軟體程式導致資料庫無法正常關閉Oracle資料庫
- 有問題的mybatis的sql導致對資料庫進行了批量的修改MyBatisSQL資料庫
- 導致資料洩露的 6 個疏忽
- 【北亞資料恢復】vmfs還原快照操作導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【北亞資料恢復】異常斷電導致Oracle資料庫報錯的oracle資料恢復資料恢復Oracle資料庫
- raid5癱瘓導致資料庫損壞的恢復過程AI資料庫
- 成功恢復某公司伺服器故障導致的資料庫損壞伺服器資料庫
- 一條主鍵索引SQL導致的CPU被打滿索引SQL
- asm磁碟組依賴導致資料庫自啟動報錯ASM資料庫
- 域名解析導致資料庫連線緩慢(hosts :files dns)資料庫DNS
- file-max設定過小導致oracle資料庫hang住Oracle資料庫
- Oracle資料庫分割槽表SPLIT操作導致歸檔瘋漲Oracle資料庫
- wait_type SOS_WORKER導致資料庫連線失敗AI資料庫
- 重置資料庫密碼後導致網站無法訪問資料庫密碼網站
- 【北亞資料恢復】誤操作分割槽損壞導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【北亞資料庫資料恢復】誤操作導致資料丟失的華為雲mysql資料恢復案例資料庫資料恢復MySql
- Code Cache滿導致應用效能降低
- 【資料庫資料恢復】LINUX EXT3檔案系統下ORACLE資料庫誤操作導致資料丟失的資料恢復案例資料庫資料恢復LinuxOracle
- 【伺服器資料恢復】RAID故障導致資料庫分割槽無法識別的資料恢復伺服器資料恢復AI資料庫
- 【北亞資料恢復】伺服器斷電導致Oracle資料庫報錯的資料恢復案例資料恢復伺服器Oracle資料庫
- 雲伺服器系統盤滿導致桌面檔案不見了的處理方法伺服器