oracle 数据库归档日志查看方法

查询数据库是否开启归档

select name,log_mode from v$database;

图片1.png

Oracle 分为非归档模式 (NOARCHIVELOG) 和归档模式 (ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原也只能还原到备份那一时刻的数据,通常也仅在开发时使用 (据说在数据仓库中也使用),Oracle 安装默认就是非归档模式。在生产环境中我们因该使用归档模式,它会产生归档日志,可以使用多种备份和还原方案,对与 Oracle 管理员来说应该更改模式是必然的选择。

查看归档日志大小及使用情况

select * from v$recovery_file_dest;

图片2.png

select * from v$flash_recovery_area_usage;

图片3.png

如果 ARCHIVED LOG 超过 90% oracle 随时有宕机的危险

查询出日志文件

select * from v$archived_log;

图片4.png

1. 指定要分析的日志文件(logfile 参数要替换,根据上面查询出的日志文件名修改)

exec sys.dbms_logmnr.add_logfile(logfilename => '/oradata/fast_recovery_area/WCSDB/WCSDB/archivelog/2020_05_07/o1_mf_1_5186_hc6rnjlj_.arc',options => dbms_logmnr.new);

2. 使用本地的在线数据字典分析归档日志

exec sys.dbms_logmnr.start_logmnr(options => sys.dbms_logmnr.dict_from_online_catalog);

图片5.png

3. 查询日志详细

seelct sql_redo, sql_undo from v$logmnr_contents;

图片6.png

4. 结束分析归档日志

exec sys.dbms_logmnr.end_logmnr;