Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Oracle 数据库日志文件

您可以使用 Amazon RDS 控制台或 API 访问 Oracle 警报日志、审核文件和跟踪文件。有关查看、下载和监视基于文件的数据库日志的更多信息,请参阅 Amazon RDS 数据库日志文件

提供的 Oracle 审核文件是标准 Oracle 审核文件。虽然细粒度审计 (FGA) 是一项受支持的功能,但日志访问不提供对存储在 SYS.FGA_LOG$ 表中并可通过 DBA_FGA_AUDIT_TRAIL 视图访问的 FGA 事件的访问权限。

DescribeDBLogFiles API 操作列出可用于数据库实例的 Oracle 日志文件,该操作会忽略 MaxRecords 参数,最多返回 1000 个记录。

保留计划

如果日志文件变得非常大,则 Oracle 数据库引擎可能会轮换这些文件。如果要保留审核文件或跟踪文件,则应下载这些文件。将文件存储在本地可降低 Amazon RDS 存储成本,并为您的数据留出更多空间。

以下是 Amazon RDS 上的 Oracle 警报日志、审核文件和跟踪文件的保留计划。

日志类型 保留计划

警报日志

警报日志的默认保留期为 30 天。Amazon RDS 可能会删除超过 30 天的警报日志。当警报日志超过 10MB 时,Oracle 会轮换这些日志,此时它们在 Amazon RDS 视图中将不可用。

审核文件

审核文件的默认保留期为 7 天。Amazon RDS 可能会删除超过 7 天的审核文件。

跟踪文件

跟踪文件的默认保留期为 7 天。Amazon RDS 可能会删除超过 7 天的跟踪文件。

切换联机日志文件

您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.switch_logfile 切换联机日志文件。有关更多信息,请参阅 切换联机日志文件

检索存档重做日志

Oracle 版本 11.2.0.2.v7 及更高版本支持保留存档的重做日志。有关更多信息,请参阅 保留存档重做日志

使用 Oracle 跟踪文件

本部分介绍了用于创建、刷新、访问和删除跟踪文件的特定 Amazon RDS 程序。

列出文件

您可以使用两种程序访问 background_dump_dest 中的任何文件。第一种方法可刷新下面视图 (其中包含当前 background_dump_dest 中所有文件的列表):

exec rdsadmin.manage_tracefiles.refresh_tracefile_listing;

刷新视图后,请使用以下视图访问结果。

rdsadmin.tracefile_listing

实现上述过程的替代方法 (版本 11.2.0.2 不提供) 是使用“from table”以类似表的格式流式处理非表数据,从而列出数据库目录内容:

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP'));

以下查询显示了日志文件的文本:

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_xxx.log'));

生成跟踪文件并跟踪会话

由于没有任何 alter session 限制,Oracle 中用于生成跟踪文件的许多标准方法对于 Amazon RDS 数据库实例仍然可用。为需要更大访问权限的跟踪文件提供了以下程序。

Oracle 方法 Amazon RDS 方法

oradebug hanganalyze 3

exec rdsadmin.manage_tracefiles.hanganalyze;

oradebug dump systemstate 266

exec rdsadmin.manage_tracefiles.dump_systemstate;

您可以使用许多标准方法来跟踪连接到 Amazon RDS 中的 Oracle 数据库实例的各个会话。要启用会话跟踪,您可以运行 Oracle 提供的 PL/SQL 程序包 (如 DBMS_SESSION 和 DBMS_MONITOR 程序包) 中的子程序。有关更多信息,请参阅 Oracle 文档中的启用会话跟踪

检索跟踪文件

可以使用 Amazon RDS 管理的外部表的标准 SQL 查询,检索 background_dump_dest 中的任一跟踪文件。要使用此方法,必须执行此程序以将此表的位置设置到指定跟踪文件。

例如,可以使用上述 rdsadmin.tracefile_listing 视图,列出系统上的所有跟踪文件。然后,可以使用以下程序设置 tracefile_table 视图,从而使视图指向预定的跟踪文件:

exec rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');

以下示例在当前架构中创建了一个外部表,并将表位置设定在提供的文件中。可以使用 SQL 查询将内容检索到本地文件中。

# eg: send the contents of the tracefile to a local file: sqlplus user/password@TNS alias << EOF > /tmp/tracefile.txt select * from tracefile_table; EOF

清除跟踪文件

跟踪文件可以积累和占用磁盘空间。Amazon RDS 可清除跟踪文件 (默认情况下) 和超过七天的日志文件。可以使用 show_configuration 程序查看和设置跟踪文件保留期。请注意,您应运行命令 SET SERVEROUTPUT ON,以便查看配置结果。

以下示例显示了当前的跟踪文件保留期,然后设置了新的跟踪文件保留期。

# Show the current tracefile retention SQL> exec rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> exec rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); #show the new tracefile retention SQL> exec rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.

除定期清除过程外,您可以从 background_dump_dest 中手动移除文件。以下示例显示了如何清除保留时间已超过五分钟的所有文件。

exec rdsadmin.manage_tracefiles.purge_tracefiles(5);

您还可清除与特定模式匹配的所有文件 (不包括 .trc 等文件扩展名)。以下示例介绍如何清除以“SCHPOC1_ora_5935”开头的所有文件。

exec rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');

以前用于访问警报日志和侦听器日志的方法

您可以使用 Amazon RDS 控制台查看警报和监听器日志。您还可以使用下列方法访问这些日志:

要访问警报日志,请使用以下命令:

select message_text from alertlog;

要访问侦听器日志,请使用以下命令:

select message_text from listenerlog;

注意

当警报和侦听器日志超过 10MB 时,Oracle 会交替这些日志,此时它们不会显示在 Amazon RDS 视图中。

相关主题