oracle日志占滿系統盤滿了導致數據庫掛掉 并且archivelog日志也滿了倒是數據庫無法open,無法登陸,幸好還可以到mount狀態。解決辦法:
1.根據報錯查看 表象: crs 服務down掉
CRS-0184: Cannot communicate with the CRS daemon
刪除/var/tmp/.oracle 目錄
刪除oracle alter日志:
cd /u01/app/oracle/rdbms/bol/BOL1/alter
rm -rf *
到此重啟機器 可以啟動oracle的所以服務,但是不能啟動oracle的db服務
啟動db服務的時候報錯如下:
PRCR-1079 : 無法啟動資源 ora.orcl.db ORA-03113: end-of-file on communication channel
解決辦法:
su - oracle
sqlplus / as sysdba
startup mount##rac上面2臺都要做
查看是否為歸檔模式:
archive log list
查看閃回分區大小:
show parameter db_recovery_file_dest_size
查看archlog log使用率:
select * from v$flash_recovery_area_usage; --查看空間占用率,如果 ARCHIVED LOG 超過90%,Oracle隨時有宕機的危險
增大閃回分區大小:
alter system set db_recovery_file_dest_size=xxG;##rac 操作一臺即可
啟動數據庫:
alter database open ##rac 上面2臺機器都要做
到此之后,可以連接數據庫了,但是現在需要做的是清楚數據庫的歸檔日志,因為現在只是增大了db_recovery的空間而已,我們需要清理掉不需要的歸檔日志,獲得空間。
清除歸檔日志腳本:
#!/bin/bash
source /home/oracle/.bash_profile
#LOGFILE=/data/rman/rman_delete.log
#RMAN=$ORACLE_HOME/bin/rman
$ORACLE_HOME/bin/rman log=/home/oracle/del_arch$(date +%Y-%m-%d).log <
connect target sys/xxxx@xxx
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-3';
exit;
EOF
直接在root目錄下運行即可。到此問題解決完成,記錄一下,日后可以使用。
總結
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。