Oracle归档日志问题

本文介绍了排查Oracle归档日志问题的步骤,包括检查磁盘空间、确认归档日志路径,并提供了清空归档日志、更改归档路径的方法。同时,文章详细阐述了如何开启和配置归档日志模式,以及设置定期清理归档日志的脚本,以防止日志文件占用过多磁盘空间导致的ORA-00257错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排查步骤
1.查看系统磁盘空间是否足够,磁盘空间不够,归档日志写不了也是会提示
在这里插入图片描述
2.检查一下orcle归档日志的存放位置

通过 archive log list 查看。
oracle默认的归档路径是 USE_DB_RECOVERY_FILE_DEST(上面是更改过的)
具体归档文件位置 /u01/app/oracle/fast_recovery_area

SQL> show parameter db_recovery_file_dest


由于 flash_recovery_area 默认只有30G(各个数据库基本不修改)。
如果默认归档日志也写到里面,很容易写满,就会有ORA-00257的问题

解决步骤

  1. 清空所有归档日志(磁盘空间充分,最好只是移动归档日志的路径)

  2. 重启数据库(需要断开所有的数据库链接,比如应用,关闭失败可使用 shutdown abort 进行关闭。详细参考Oracle中shutdown和startup命令详解)
    SQL> shutdown immediate;
    SQL> startup mount;
    SQL> alter database open;

  3. 如果归档日志还是默认位置,需要更改归档日志目录地址
    SQL> alter system set log_archive_dest_1=‘location=/u01/archivelogs’;

Oracle 开启归档日志步骤:
1.开启归档日志的SQL(一定要设置归档日志的路径,避免归档日志写满的问题)

SQL> archive log list
查看数据库是否开启了归档模式,如果没有开启,操作如下

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> alter system set log_archive_dest_1=‘location=/u01/archivelogs’;

SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/archivelogs
Oldest online log sequence 9063
Next log sequence to archive 9065
Current log sequence 9065

2.做好清理归档日志的定时任务
脚本:arch_del.sh

内容如下:

#!/bin/sh

/usr/bin/find /u01/archivelogs -mtime +7 -name "*.*" -exec rm -rf {} \;

定时任务:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值