执行 Oracle 数据库实例的常见日志相关任务
下文中介绍了如何在运行 Oracle 的 Amazon RDS 数据库实例上,执行与日志记录相关的特定常见 DBA 任务。为了提供托管服务体验,Amazon RDS 不允许通过 shell 访问数据库实例,而仅限访问某些需要高级权限的系统过程和表。
有关更多信息,请参阅“Amazon RDS for Oracle 数据库日志文件”。
设置强制日志记录
在强制日志记录模式下,Oracle 记录对数据库进行的所有更改,但在临时表空间和临时段中进行的更改除外 (忽略 NOLOGGING 子句)。有关更多信息,请参阅 Oracle 文档中的指定“强制日志记录”模式
要设置强制日志记录,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.force_logging。force_logging 过程具有以下参数。
| 参数名称 | 数据类型 | 默认值 | 是 | 描述 | 
|---|---|---|---|---|
| 
 | 布尔值 | true | 否 | 设置为  | 
以下示例将数据库置于强制日志记录模式下。
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 过程具有以下参数。
| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
|---|---|---|---|---|
| 
 | varchar2 | — | 是 | 如果为  | 
| 
 | varchar2 | null | 否 | 补充日志记录的类型。有效值为  | 
以下示例启用补充日志记录。
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_logfile。switch_logfile 过程没有参数。
以下示例切换日志文件。
EXEC rdsadmin.rdsadmin_util.switch_logfile;
添加联机重做日志
运行 Oracle 的 Amazon RDS 数据库实例从四个联机重做日志 (每个日志的大小为 128 MB) 开始。要添加其他重做日志,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.add_logfile。
add_logfile 过程具有以下参数。
注意
这些参数是互斥的。
| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
|---|---|---|---|---|
| 
 | positive | null | 否 | 日志文件的大小 (以字节为单位)。 仅当日志大小小于 2147483648 字节(2 GiB)时才使用此参数。否则,RDS 会发出错误。对于大于此字节值的日志大小,请改用  | 
| 
 | varchar2 | — | 是 | 日志文件的大小,单位为 KB(K)、MB(M)或 GB(G)。 | 
以下命令将添加一个 100MB 日志文件。
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '100M');
删除联机重做日志
要删除重做日志,请使用 Amazon RDS 过程 rdsadmin.rdsadmin_util.drop_logfile。drop_logfile 过程具有以下参数。
| 参数名称 | 数据类型 | 默认值 | 必需 | 描述 | 
|---|---|---|---|---|
| 
 | 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