我的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/