1、報錯信息html
前幾天網站忽然訪問不了,而且報了以下錯誤:python
ora-27101: shared memory realm does not existsql
ora-01034: oracle not available 11g數據庫
ORA-24324: service handle not initializedvim
緣由:因爲數據庫歸檔日誌滿了,不能繼續往數據庫裏寫數據。oracle
2、查看歸檔日誌大小app
su - oracleide
sqlplus / as sysdba網站
show parameter recover
可查看到歸檔日誌目錄爲:/u01/app/oracle/fast_recovery_area/******/archivelogspa
能夠查看該目錄的大小,對比數據庫設置的日誌空間,該目錄大小不能大於數據庫設置的空間。
3、擴大歸檔日誌大小
alter system set db_recovery_file_dest_size=100G;
4、清理歸檔日誌
擴大後還需設置定時計劃清理歸檔日誌,須要切換到oracle帳號執行命令
rman target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> delete archivelog until time 'sysdate-3'
上面三條命令的解釋:
一、第一條命令能夠把無效的expired的archivelog標出來。
二、第二條命令直接所有刪除過時的歸檔日誌。
三、第三條命令直接刪除三天前全部的歸檔日誌。
參考:https://www.2cto.com/database/201308/235338.html
5、設置自動腳本
一、編寫腳本
su - oracle //切換到oracle用戶下執行操做
cd /u01/app
vim arcclear.sh
#!/usr/bin rman target / <<EOF delete force noprompt archivelog all completed before 'sysdate-3'; exit; EOF
chmod +x arcclear.sh
二、添加到計劃任務
crontab -e
30 1 * * * sh /u01/app/arcclear.sh >> /u01/app/arcclear.log
service crond restart