oracle数据库归档日志占满解决方案
程序员文章站
2022-06-02 16:48:50
...
宝宝心里苦,为啥?因为好好的系统突然不能用了!纳尼?赶快处理吧!但是我们用的是oracle,正式本人不专业的一部分,无力鸭。
本着专业人搞专业事,赶紧找了精通此类问题的高手帮忙解决,不负众望,顺利解决。下面我将祭出本次解决问题的制胜法宝,duang! duang! duang!
sqlplus / as sysdba
--关闭归档进程
alter system set log_archive_start=false scope=spfile;
--关闭数据库进程
shutdown immediate;
--启动DB到mount模式
startup mount
--关闭闪回模式,否则总是报ORA-38774
alter database flashback off;
--将数据库改为非归档模式
alter database noarchivelog;
--打开数据库
alter database open;
--查询归档日志
select * from v$recovery_file_dest;
--查看日志状态
select * from v$log;
--查看归档空间使用情况(ARCHIVE LOG超过90%随时有宕机风险)
select * from v$flash_recovery_area_usage;
--设置归档空间为10G
alter system set db_recovery_file_dest_size=10737418240;
--或者
alter system set db_recovery_file_dest_size=10G;
--设置完毕
Exit
--进入rman工具 窗口
rman target sys/pass
--查询标记无效的归档日志
crosscheck archivelog all;
--删除3天前的归档日志
delete archivelog until time 'sysdate -3';
--其他
----查看是不是归档方式
archive log list;
--切换为归档模式
alter database archivelog;
--启用主动归档
alter system set log_archive_start=true scope=spfile;
--设置归档路径
alter system set log_archive_dest="location=/oracle/install11/archive" scope=spfile;
--设置归档日记格式
alter system set log_archive_format="arch_%d_%t_%r_%s.log"
--查询数据库处于归档模式并且正在运行
select log_mode from v$database;
--查询归档进程
show parameters log_archive_max_process;
--将归档进程改为5
--alter system set log_archive_max_process=5;