Oracle数据库归档日志满了后的处理方法

2025-11-27 22:14:21

1、可以通过加日志空间,或者删除日志的方式来处理,也可以2个方法都用上。

2、第一种:加日志空间1、先cmd命令连接到数据库:有多个数据库需要指定连接的实例SID

     最高权限连接到指定tbh实例:sqlplus /@tbh as sysdba

2、连接到实例后,确定下是否是我们所需要处理的数据库实例:

     查看当前连接的数据库的sid:select instance_name from v$instance;

3、确认是后,先关闭例程,再启动例程(相当于初始化环境,排除干扰)shutdown abort;startup mount

Oracle数据库归档日志满了后的处理方法

3、查看下归档日志空间情况:select * from v$recovery_file_dest; 

5、增加归档日志空间大小: alter system set db_recovery_file_dest_size=20G scope=both;(这里增加20G,可以自行调整)

6、启动数据库:alter database open;

Oracle数据库归档日志满了后的处理方法

4、第二种方式:删除归档日志

1) 先命令连接到数据库:有多个数据库需要指定连接的实例SID

最高权限连接到指定实例:sqlplus /@tbh as sysdba

2) 连接到实例后,确定下是否是我们所需要处理的数据库实例:

查看当前连接的数据库的sid:select instance_name from v$instance;(如果此处报错,可以跳过,先关闭例程,在开启后再查看)

3) 确认是后,先关闭例程,再启动例程(相当于初始化环境,排除干扰):shutdown abort;startup mount

4) 查看下归档日志空间情况:select * from v$recovery_file_dest;

Oracle数据库归档日志满了后的处理方法

5、5)重新开一个cmd,指定实例:SET ORACLE_SID = tbh

6)在进入rman,rman target 用户名/口令@例程

Oracle数据库归档日志满了后的处理方法

6、7) 输入list archivelog all; -- 显示所有的日志及日志地址

8) 输入crosscheck archivelog all;  --运行这个命令可以把无效的expired的archivelog标出来

9) 输入delete expired archivelog all; ---删除所有的无效日志

10) 或者输入delete noprompt archivelog until time "sysdate -3";  -- -即删        除3天前的归档日志

11) 启动数据库:alter database open;

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢