我的Oracle版本 11.2

查询归档日志

SELECT dest_name, status, destination 
FROM v$archive_dest;

如果查询如下

INACTIVE代表未开启归档日志  VALID代表开启
       DEST_NAME    STATUS    DESTINATION
1    LOG_ARCHIVE_DEST_1    VALID    /arch
2    LOG_ARCHIVE_DEST_2    INACTIVE        
还有一种可能显示如下 DESTINATION字段下显示USE_DB_RECOVERY_FILE_DEST
       DEST_NAME    STATUS    DESTINATION
1    LOG_ARCHIVE_DEST_1    VALID    USE_DB_RECOVERY_FILE_DEST
2    LOG_ARCHIVE_DEST_2    INACTIVE

注:

LOG_ARCHIVE_DEST_1 的状态为 "VALID",并且指定为 "USE_DB_RECOVERY_FILE_DEST"
这意味着归档日志会存储在数据库的恢复文件目录中(也称为 Fast Recovery Area)
恢复文件目录是一个由 Oracle 管理的特殊目录,用于存储归档日志、备份等与数据库恢复有关的文件
通过配置 LOG_ARCHIVE_DEST_1 为 "USE_DB_RECOVERY_FILE_DEST",你告诉数据库将归档日志存储在这个恢复文件目录中
在路径中可能会看到类似于 db_recovery_file_dest/archivelog 的结构

查看恢复文件目录的路径

SELECT name, value FROM v$parameter WHERE name = 'db_recovery_file_dest';    

查询重做日志组信息

SELECT group#, status, type, member 
FROM v$logfile;

查询归档日志文件列表

SELECT sequence#, name, first_time 
FROM v$archived_log;

删除归档日志解释和步骤

在Oracle中,无法直接使用DELETE ARCHIVELOG ALL;这样的语句来删除归档日志。该错误提示ORA-00933表示SQL命令未正确结束
这是因为DELETE ARCHIVELOG ALL;并不是一个有效的SQL语句。

要删除归档日志,可以使用RMAN(Recovery Manager)工具或RMAN命令行界面,
或者通过SQL*Plus中的ALTER SYSTEM语句结合其他选项来执行清理操作。

使用RMAN清理归档日志:

RMAN是Oracle的备份和恢复工具,它可以用来清理归档日志。在终端中执行以下步骤:
进入RMAN命令行界面:

rman target /

使用RMAN的DELETE命令清理归档日志:

DELETE ARCHIVELOG ALL;

或者指定一个日期或序列号,例如:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

退出RMAN界面:

exit;

使用SQL*Plus和ALTER SYSTEM清理归档日志:

在SQL*Plus中,您可以使用ALTER SYSTEM命令结合FORCE LOGGING选项来清理归档日志。执行以下步骤:
切换数据库至FORCE LOGGING模式:

ALTER DATABASE FORCE LOGGING;

执行切换日志文件操作,以便允许删除旧的已归档日志:

ALTER SYSTEM SWITCH LOGFILE;

删除旧的已归档日志文件(谨慎操作,仅删除已备份的日志):

DELETE ARCHIVELOG ALL;

或者指定一个日期或序列号,例如:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

将数据库切换回正常模式(如果不再需要FORCE LOGGING):

ALTER DATABASE NO FORCE LOGGING;

扩展:

服务器上面Oracle的磁盘满了 除了归档日志 可以删除的还有

/u01/app/oracle/admin/oradb/adump/*.log
/u01/app/oracle/diag/tnslsnr/qtbj-core-107/listener/alert/*.xml
/u01/app/oracle/diag/tnslsnr/qtbj-core-107/listener/trace/listener.log
/u01/app/oracle/diag/rdbms/oradb/oradb/trace/*.trc
/u01/app/oracle/diag/rdbms/oradb/oradb/trace/*.trm
/u01/app/oracle/diag/rdbms/oradb/oradb/trace/*.log

----可以用rman命令删除,保留最近2天的,否则可以删除
/u01/app/oracle/fast_recovery_area/archivelog/


最后修改:2023 年 08 月 30 日
如果觉得我的文章对你有用,请随意赞赏