1、由于归档日志满了导致数据库停机;
2、查询归档日志的记录和归档日志空间的使用,发现日志的数量和容量完全小于空间设置的最大值
归档日志设置空间

3、查询现有的归档日志
有46条,并且都是今天的

4、查询控制文件中的数量,46条和归档日志表中查询的结果一致

5、但是record_total字段显示的是31040条记录,这个应该怎么处理掉才能与实际保持一致,另外数据库做了shutdown abort后重启归档日志空间不回收

这样导致数据库无法正常启动。而1T的空间是操作系统硬盘最大的空间了,这个空间怎么进行回收?
用rman查一下看看,crosscheck archivelog all;
然后再到归档日志目录ssd盘下看一下,具体有多少归档日志,应该是归档日志没有注册到吧
rman下catalog start with重新注册下,然后执行删除呢
评论
有用 0可以参考下面的文章,利用rman清理已经归档。
https://blog.huati365.com/dc8ab204ddbddba4
1、 crosscheck archivelog all;--此命令的含义是检查所有归档日志的状态,并把遗失的标记为expired,也就是说,expired 表示已经被操作系统中被删除的归档日志。
2、delete expired archivelog all; --此命令的含义是删除expired的归档日志
评论
有用 0catalog start with 重新注册的结果

清除过期日志

评论
有用 0+ssd/EASDB/ARCHIVELOG/目录下有多少文件?截图看下
评论
有用 0先确认下你的闪回区里是谁占用的空间,是归档日志不:
select file_type, percent_space_used as used, percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;
评论
有用 0+ssd/EASDB/ARCHIVELOG/目录情况

评论
有用 0和V$RECOVERY_FILE_DEST的数据不一致

SELECT * FROM V$RECOVERY_FILE_DEST;

评论
有用 0说个笨方法,你到grid用户下,然后asmcmd,cd ssd目录下
然后du 每个目录,看看空间到底是被谁给用了
评论
有用 0du SSD目录的情况

这个目录文件夹

评论
有用 0神奇啊,通过v$recovery_file_dest查询出来的使用空间和在asmcmd中查询出来的完全不一致,归档只占用了12.5G
你在系统执行下这个,看下有没有正在用被删文件的进程,导致空间没释放
lsof | grep deleted
评论
有用 0select file_type, percent_space_used as used, percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;
执行这个看看
评论
有用 0
评论
有用 0两个节点的参数都是一样的,1000G


评论
有用 0上杀手锏,试试这个吧,
重置一下v$recovery_file_dest
alter session set events 'immediate trace name kra_options level 1';

评论
有用 0看起来不需要重启,mos上的文档,风险应该比较可控。
评论
有用 0
墨值悬赏







