oracle的归档日志该如何处理?

oracle归档日志长什么样?

 如果数据库的服务器中出现大量的如上文件,别慌,这就是归档日志,需要备份和删除清理,避免服务器资源爆掉,导致数据库宕机。

如何查找归档日志的存储位置?

用有管理权限的账号登录数据库(我用的是system)。

select destination from v$archive_dest;

执行结果:

 比如我这边,归档日志存储的位置就在  /DATA2 这个目录。

归档日志过多,超过上线,该如何处理?

这张图说明/DATA2的资源已经快不够用了,需要清理

 如何清理?

登录oracle数据库服务器,执行如下命令。

su - oracle
rman target /

一般的都只有一个实例,用如上命令即可,如果数据库中有多个实例,可以选择如下命令:

rman target sysdba/password@orcl

解释下,sysdba  是用户名,password是密码,oracl是实例。

进入rman。

然后执行如下命令,查看归档日志列表。

list archivelog all;

结果如下:

 比如我这边,查询到的最早日期为2022-05-18号的,而/DATA2 里的日志则有该日期之前的,则需要手动删除系统上的文件。

查询无效日志。

list expired archivelog all;

删除的方法?

按照截止日期删除,删除yyyyMMdd日期之前的日志,命令如下:

DELETE NOPROMPT ARCHIVELOG UNTIL TIME "TO_DATE('2021-01-01','YYYY-MM-DD')";

 删除7天之前的归档日志,命令如下:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

 删除无效的日志,命令如下:

delete expired archivelog all;

按照需要进行日志删除,命令如下:

删除截止到到n号之前的日志。

delete archivelog until sequnce n;

或者

delete archivelog until sequence 9310 thread 1;

如果RMAN无法删除归档日志?

如果rman 无法连接数据库,可以先手工使用rm命令清理日志,然后做crosscheck。
 

rm -f <归档日志>

rman target /

crosscheck archivelog all;

delete obsolete achivelog all;

delete expired achivelog all;

如果RMAN无法使用,可以考虑如下策略。

#使用SQLPlus先登录本地 sys 账号

sqlplus /nolog

SQL> conn /as sysdba

# 查看日志分配的空间,以及空间占比。

SQL> show parameter db_recovery_file_dest;

SQL> select * from v$flash_recovery_area_usage;

# 如果太小可以重新分配,我这里分配了16G

SQL> alter system set db_recovery_file_dest_size=16g;

# 尝试下数据库状态是否正常,如果报错可以看错误码

SQL> alter database open;

SQL> select * from all_users;

# 看看日志是否正常,不正常的话状态一般都是 NO

SQL> select group#,sequence#,archived,status from v$log;

# 尝试清理并重建日志
SQL> alter database clear logfile group 3;

# 如果是该日志组还没有归档,则需要用
SQL> alter database clear unarchived logfile group 3; 

其他问题

如果在执行语句时遇到如下错误:

 这时就该考虑语句内容错了,一般都是;的原因,检查下中英文,英文状态下才可以。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金龙鱼先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值