Amazon Relational Database Service
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Oracle 数据库实例的常见 DBA Oracle 计划程序任务

某些 SYS 拥有的计划程序作业可能会影响正常的数据库操作,Oracle 支持人员建议禁用这些作业或修改作业计划。您可以使用 Amazon RDS 包 rdsadmin.rdsadmin_dbms_scheduler 执行 SYS 拥有的 Oracle 计划程序作业的任务。

以下适用于 Oracle 的 Amazon RDS 数据库引擎版本支持这些过程:

  • 11.2.0.4.v21 或更高的 11.2 版本

  • 12.1.0.2.v17 或更高的 12.1 版本

  • 12.2.0.2.ru-2019-07.rur-2019-07.r1 或更高的 12.2 版本

Oracle 计划程序过程的常见参数

要使用 Oracle 计划程序执行任务,请使用 Amazon RDS 包 rdsadmin.rdsadmin_dbms_scheduler 中的过程。有几个参数是包中的过程通用的。该包具有以下常见参数。

参数名称 数据类型 有效值 默认值 是否必需 描述

name

varchar2

'SYS.BSLN_MAINTAIN_STATS_JOB','SYS.CLEANUP_ONLINE_IND_BUILD'

要修改的作业的名称。

注意

目前,您只能修改 SYS.CLEANUP_ONLINE_IND_BUILDSYS.BSLN_MAINTAIN_STATS_JOB 作业。

attribute

varchar2

'REPEAT_INTERVAL','SCHEDULE_NAME'

要修改的属性。

要修改作业的重复间隔,请指定 'REPEAT_INTERVAL'

要修改作业的计划名称,请指定 'SCHEDULE_NAME'

value

varchar2

有效的计划间隔或计划名称,具体取决于使用的属性。

新的属性值。

修改 DBMS_SCHEDULER 作业

您仍然可以使用 Oracle 过程 dbms_scheduler.set_attribute 修改计划程序的某些组件。有关更多信息,请参阅 Oracle 文档中的 DBMS_SCHEDULERSET_ATTRIBUTE 过程

在使用 Amazon RDS 数据库实例时,在对象名称前面加上架构名称 SYS。以下示例设置星期一窗口对象的资源计划属性。

begin dbms_scheduler.set_attribute( name => 'SYS.MONDAY_WINDOW', attribute => 'RESOURCE_PLAN', value => 'resource_plan_1'); end; /

注意

某些 SYS 拥有的 Oracle 计划程序作业可能会影响正常的数据库操作。Oracle 支持人员建议禁用这些作业或修改作业计划。Amazon RDS for Oracle 不提供使用 DBMS_SCHEDULER 包修改 SYS 拥有的 Oracle 计划程序作业所需的权限。相反,您可以使用 Amazon RDS 包 rdsadmin.rdsadmin_dbms_scheduler 中的过程执行 SYS 拥有的 Oracle 计划程序作业的任务。有关使用这些过程的信息,请参阅 Oracle 数据库实例的常见 DBA Oracle 计划程序任务

禁用 SYS 拥有的 Oracle 计划程序作业

要禁用 SYS 拥有的 Oracle 计划程序作业,请使用 rdsadmin.rdsadmin_dbms_scheduler.disable 过程。

该过程在 Oracle 计划程序任务中使用 name 常见参数。有关更多信息,请参阅 Oracle 计划程序过程的常见参数

以下示例禁用 SYS.CLEANUP_ONLINE_IND_BUILD Oracle 计划程序作业。

BEGIN rdsadmin.rdsadmin_dbms_scheduler.disable('SYS.CLEANUP_ONLINE_IND_BUILD'); END; /

启用 SYS 拥有的 Oracle 计划程序作业

要启用 SYS 拥有的 Oracle 计划程序作业,请使用 rdsadmin.rdsadmin_dbms_scheduler.disable 过程。

该过程在 Oracle 计划程序任务中使用 name 常见参数。有关更多信息,请参阅 Oracle 计划程序过程的常见参数

以下示例启用 SYS.CLEANUP_ONLINE_IND_BUILD Oracle 计划程序作业。

BEGIN rdsadmin.rdsadmin_dbms_scheduler.enable('SYS.CLEANUP_ONLINE_IND_BUILD'); END; /

修改 CALENDAR 类型的作业的重复间隔

要修改重复间隔以修改 SYS 拥有的 CALENDAR 类型的 Oracle 计划程序作业,请使用 rdsadmin.rdsadmin_dbms_scheduler.disable 过程。

该过程在 Oracle 计划程序任务中使用以下常见参数:

  • name

  • attribute

  • value

有关更多信息,请参阅 Oracle 计划程序过程的常见参数

以下示例修改 SYS.CLEANUP_ONLINE_IND_BUILD Oracle 计划程序作业的重复间隔。

BEGIN rdsadmin.rdsadmin_dbms_scheduler.set_attribute( name => 'SYS.CLEANUP_ONLINE_IND_BUILD', attribute => 'repeat_interval', value => 'freq=daily;byday=FRI,SAT;byhour=20;byminute=0;bysecond=0'); END; /

修改 NAMED 类型的作业的重复间隔

某些 Oracle 计划程序作业使用计划名称而不是间隔。对于这些类型的作业,您必须在主用户架构中创建新的命名计划。请使用标准 Oracle sys.dbms_scheduler.create_schedule 过程执行该操作。此外,还要使用 rdsadmin.rdsadmin_dbms_scheduler.set_attribute procedure 将新的命名计划分配给作业。

该过程在 Oracle 计划程序任务中使用以下常见参数:

  • name

  • attribute

  • value

有关更多信息,请参阅 Oracle 计划程序过程的常见参数

以下示例修改 SYS.BSLN_MAINTAIN_STATS_JOB Oracle 计划程序作业的重复间隔。

BEGIN dbms_scheduler.create_schedule ( schedule_name => 'rds_master_user.new_schedule', start_date => SYSTIMESTAMP, repeat_interval => 'freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=0;byminute=0;bysecond=0', end_date => NULL, comments => 'Repeats daily forever'); END; / BEGIN rdsadmin.rdsadmin_dbms_scheduler.set_attribute ( name => 'SYS.BSLN_MAINTAIN_STATS_JOB', attribute => 'schedule_name', value => 'rds_master_user.new_schedule'); END; /