执行 Oracle 数据库实例的常见日志相关任务 - Amazon Relational Database Service

执行 Oracle 数据库实例的常见日志相关任务

下文中介绍了如何在运行 Oracle 的 Amazon RDS 数据库实例上,执行与日志记录相关的特定常见 DBA 任务。为了提供托管服务体验,Amazon RDS 不允许通过 shell 访问数据库实例,而仅限访问某些需要高级权限的系统过程和表。

有关更多信息,请参阅“Amazon RDS for Oracle 数据库日志文件”。

设置强制日志记录

在强制日志记录模式下,Oracle 记录对数据库进行的所有更改,但在临时表空间和临时段中进行的更改除外 (忽略 NOLOGGING 子句)。有关更多信息,请参阅 Oracle 文档中的指定“强制日志记录”模式

要设置强制日志记录,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.force_loggingforce_logging 过程具有以下参数。

参数名称 数据类型 默认值 描述

p_enable

布尔值

true

设置为 true,数据库为强制日志记录模式;设置为 false 则取消数据库的强制日志记录模式。

以下示例将数据库置于强制日志记录模式下。

EXEC rdsadmin.rdsadmin_util.force_logging(p_enable => true);

设置补充日志记录

如果启用补充日志记录,则 LogMiner 将具有支持链接行和集群表的必要信息。有关更多信息,请参阅 Oracle 文档中的补充日志记录

Oracle 数据库在默认情况下不启用补充日志记录。要启用和禁用补充日志记录,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.alter_supplemental_logging。有关 Amazon RDS 如何管理 Oracle 数据库实例的存档重做日志的保留期的更多信息,请参阅 保留存档重做日志

alter_supplemental_logging 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

p_action

varchar2

如果为 'ADD',则添加补充日志记录;如果为 'DROP',则删除补充日志记录。

p_type

varchar2

null

补充日志记录的类型。有效值为 'ALL''FOREIGN KEY''PRIMARY KEY''UNIQUE'PROCEDURAL

以下示例启用补充日志记录。

begin rdsadmin.rdsadmin_util.alter_supplemental_logging( p_action => 'ADD'); end; /

以下示例为所有具有固定长度的最大大小列启用补充日志记录。

begin rdsadmin.rdsadmin_util.alter_supplemental_logging( p_action => 'ADD', p_type => 'ALL'); end; /

以下示例为主键列启用补充日志记录。

begin rdsadmin.rdsadmin_util.alter_supplemental_logging( p_action => 'ADD', p_type => 'PRIMARY KEY'); end; /

切换联机日志文件

要切换日志文件,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.switch_logfileswitch_logfile 过程没有参数。

以下示例切换日志文件。

EXEC rdsadmin.rdsadmin_util.switch_logfile;

添加联机重做日志

运行 Oracle 的 Amazon RDS 数据库实例从四个联机重做日志 (每个日志的大小为 128 MB) 开始。要添加其他重做日志,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.add_logfile

add_logfile 过程具有以下参数。

注意

这些参数是互斥的。

参数名称 数据类型 默认值 必需 描述

bytes

positive

null

日志文件的大小 (以字节为单位)。

p_size

varchar2

日志文件的大小。可以 KB (K)、MB (M) 或 GB (G) 为单位指定大小。

以下命令将添加一个 100MB 日志文件。

EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '100M');

删除联机重做日志

要删除重做日志,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.drop_logfiledrop_logfile 过程具有以下参数。

参数名称 数据类型 默认值 必需 描述

grp

positive

日志的组编号。

以下示例删除组编号为 3 的日志。

EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 3);

您只能删除具有未使用或不活动状态的日志。以下示例获取日志的状态。

SELECT GROUP#, STATUS FROM V$LOG; GROUP# STATUS ---------- ---------------- 1 CURRENT 2 INACTIVE 3 INACTIVE 4 UNUSED