Oracle数据库清除归档日志

问题:前天突然发现数据访问不了了,使用navicate连接提示ORA--00257错误,查了一下,这个错误代码表示数据库服务的归档日志已经满了,需要清除归档日志。以前使用的一直都是MySQL,对Oracle接触的不多,所以清除的时候遇到了一些坑,分享给一些有相同需求的朋友。

  • 连接数据库服务器

  • 切换到Oracle
su - oracle

  • 使用管理员登陆数据库
sqlplus / as sysdba;

查询当前数据库的名称,看看是否是你所要操作的数据(特别是一台机器上装了两个Oracle数据库的,强烈建议看一下操作的数据库,楼主这里就是清除归档日志时没有看,结果清除错了数据库,还好有同事的帮助,找到了问题。)

select name from v$database;

如果这里是你所需要操作的数据库,退出sql;

exit;

  • 使用rman命令,也可以在这里查看操作的数据库
rman target/

  • 清除归档日志,根据自己需求,选择对应的删除语句。

普通删除命令: 

# 只保留最近7天的,其余的都删除
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

强制删除命令: 

DELETE FORCE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

 

# 删除最近7天的归档
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';
# 强制删除最近7天的归档
DELETE FORCE ARCHIVELOG FROM TIME 'SYSDATE-7';
# 删除所有的归档日志
delete expired archivelog all;
# 强制删除所有归档日志
delete force expired archivelog all;

结束语:到这里,归档日志就已经删除完毕了。

注:有时候使用非强制性命令,可能会删除失败(当前删除的日志正在被占用),建议使用强制性删除命令,以确保日志删除成功!

 验证:重新进入sql语句的命令行,验证归档日志是否删除,磁盘空间是否释放成功

# 查询归档日志占用空间的情况,看看是否清除成功
select * from V$FLASH_RECOVERY_AREA_USAGE;

清除成功。

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值