Oracle数据库归档日志满了后的处理方法
1、可以通过加日志空间,或者删除日志的方式来处理,也可以2个方法都用上。
2、第一种:加日志空间1、先cmd命令连接到数据库:有多个数据库需要指定连接的实例SID
最高权限连接到指定tbh实例:sqlplus /@tbh as sysdba
2、连接到实例后,确定下是否是我们所需要处理的数据库实例:
查看当前连接的数据库的sid:select instance_name from v$instance;
3、确认是后,先关闭例程,再启动例程(相当于初始化环境,排除干扰)shutdown abort;startup mount

3、查看下归档日志空间情况:select * from v$recovery_file_dest;
5、增加归档日志空间大小: alter system set db_recovery_file_dest_size=20G scope=both;(这里增加20G,可以自行调整)
6、启动数据库:alter database open;

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;

5、5)重新开一个cmd,指定实例:SET ORACLE_SID = tbh
6)在进入rman,rman target 用户名/口令@例程

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;