

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Ausführen allgemeiner Planungsaufgaben für Oracle DB-Instances
<a name="Appendix.Oracle.CommonDBATasks.Scheduler"></a>

Einige `SYS`-eigene Scheduler-Aufträge können den normalen Datenbankbetrieb stören. In solchen Fällen empfiehlt Oracle Support, den Zeitplan zu ändern. Wenn Sie `SYS`-Aufträge aktivieren oder deaktivieren müssen, testen Sie den Vorgang an geplanten Aufträgen in einer Testumgebung, bevor Sie ihn in einer Produktionsumgebung implementieren. Sie können das Amazon-RDS-Paket `rdsadmin.rdsadmin_dbms_scheduler` verwenden, um Aufgaben für `SYS`-eigene Oracle-Scheduler-Jobs auszuführen.

Die `rdsadmin.rdsadmin_dbms_scheduler`-Verfahren werden für die in der folgenden Tabelle gezeigten DB-Engine-Versionen von Amazon RDS für Oracle unterstützt: Wenn Sie dieses Paket verwenden, können Sie die in der Tabelle aufgeführten `SYS`-Aufträge angeben.


| Datenbankversion | Standardmäßig aktivierte Aufträge | Standardmäßig deaktivierte Aufträge | 
| --- | --- | --- | 
| Oracle Database 19c |  <pre>BSLN_MAINTAIN_STATS_JOB<br />CLEANUP_NON_EXIST_OBJ<br />CLEANUP_ONLINE_IND_BUILD<br />CLEANUP_ONLINE_PMO<br />CLEANUP_TAB_IOT_PMO<br />CLEANUP_TRANSIENT_PKG<br />CLEANUP_TRANSIENT_TYPE<br />DRA_REEVALUATE_OPEN_FAILURES<br />FILE_SIZE_UPD<br />ORA$AUTOTASK_CLEAN<br />PMO_DEFERRED_GIDX_MAINT_JOB<br />PURGE_LOG<br />RSE$CLEAN_RECOVERABLE_SCRIPT<br />SM$CLEAN_AUTO_SPLIT_MERGE</pre>  |  <pre>FGR$AUTOPURGE_JOB<br />FILE_WATCHER<br />HM_CREATE_OFFLINE_DICTIONARY<br />LOAD_OPATCH_INVENTORY<br />ORA$PREPLUGIN_BACKUP_JOB<br />XMLDB_NFS_CLEANUP_JOB</pre>  | 
| Oracle Database 21c |  <pre>BSLN_MAINTAIN_STATS_JOB<br />CLEANUP_NON_EXIST_OBJ<br />CLEANUP_ONLINE_IND_BUILD<br />CLEANUP_ONLINE_PMO<br />CLEANUP_TAB_IOT_PMO<br />CLEANUP_TRANSIENT_PKG<br />CLEANUP_TRANSIENT_TYPE<br />DRA_REEVALUATE_OPEN_FAILURES<br />FILE_SIZE_UPD<br />ORA$AUTOTASK_CLEAN<br />PMO_DEFERRED_GIDX_MAINT_JOB<br />PURGE_LOG</pre>  |  <pre>FGR$AUTOPURGE_JOB<br />FILE_WATCHER<br />HM_CREATE_OFFLINE_DICTIONARY<br />LOAD_OPATCH_INVENTORY<br />ORA$PREPLUGIN_BACKUP_JOB<br />ORA$_ATSK_AUTOSTS<br />XMLDB_NFS_CLEANUP_JOB</pre>  | 

## Geläufige Parameter für Oracle Scheduler-Prozeduren
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters"></a>

Um Aufgaben mit dem Oracle Scheduler auszuführen, verwenden Sie Prozeduren im Amazon-RDS-Paket `rdsadmin.rdsadmin_dbms_scheduler`. Den Verfahren im Paket sind mehrere Parameter gemeinsam. Das Paket besitzt die folgenden geläufigen Parameter.


****  

| Parametername | Datentyp | Zulässige Werte | Standard | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | --- | --- | 
|  `name`  |  varchar2  |  Die in der Tabelle unter [Ausführen allgemeiner Planungsaufgaben für Oracle DB-Instances](#Appendix.Oracle.CommonDBATasks.Scheduler) aufgeführten Verfahren   |  —  |  Ja  |  Der Name des zu ändernden Jobs.  | 
|  `attribute`  |  varchar2  |  `'REPEAT_INTERVAL'`,`'SCHEDULE_NAME'`  |  –  |  Ja  |  Zu änderndes Attribut. Um das Wiederholungsintervall für den Job zu ändern, geben Sie a `'REPEAT_INTERVAL'`. Um den Zeitplannamen für den Job zu ändern, geben Sie a `'SCHEDULE_NAME'`.  | 
|  `value`  |  varchar2  |  Ein gültiges Zeitintervall oder ein gültiger Zeitplanname, abhängig vom verwendeten Attribut.  |  –  |  Ja  |  Der neue Wert des Attributs.  | 

## Ändern von DBMS SCHEDULER-Aufgaben
<a name="Appendix.Oracle.CommonDBATasks.ModifyScheduler"></a>

Sie können die Oracle-Prozedur `dbms_scheduler.set_attribute` verwenden, um bestimmte Komponenten des Oracle Schedulers zu ändern. Weitere Informationen finden Sie unter [DBMS\$1SCHEDULER](https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72235) und [SET\$1ATTRIBUTE procedure](https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72399) in der Oracle-Dokumentation. 

Stellen Sie bei der Arbeit mit Amazon-RDS-DB-Instances den Schemanamen `SYS` dem Objektnamen voran. Im folgenden Beispiel wird ein Ressourcenplan-Attribut für das Fensterobjekt "Monday" festgelegt.

```
BEGIN
    DBMS_SCHEDULER.SET_ATTRIBUTE(
        name      => 'SYS.MONDAY_WINDOW',
        attribute => 'RESOURCE_PLAN',
        value     => 'resource_plan_1');
END;
/
```

## AutoTask Wartungsfenster ändern
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.maintenance-windows"></a>

Instances von Amazon RDS für Oracle werden mit Standardeinstellungen für Wartungsfenster erstellt. Automatisierte Wartungsaufgaben wie die Erfassung von Optimierungsstatistiken werden in diesen Zeitfenstern ausgeführt. Standardmäßig aktivieren die Wartungsfenster Oracle Database Resource Manager.

Sie können das `DBMS_SCHEDULER`-Paket verwenden, um ein Wartungsfenster zu ändern. Möglicherweise müssen Sie die Einstellungen für Wartungsfenster aus den folgenden Gründen ändern:
+ Sie möchten, dass Wartungsaufträge zu einem anderen Zeitpunkt, mit anderen Einstellungen oder gar nicht ausgeführt werden. Sie können beispielsweise die Dauer des Wartungsfensters ändern oder die Wiederholungszeit und das Intervall ändern.
+ Sie möchten die Leistungsbeeinträchtigung durch die Aktivierung von Resource Manager während der Wartung vermeiden. Wenn beispielsweise der Standard-Wartungsplan angegeben ist und das Wartungsfenster beginnt, während die Datenbank ausgelastet ist, können Warteereignisse wie `resmgr:cpu quantum` ausgegeben werden. Dieses Warteereignis bezieht sich auf Database Resource Manager. Ihnen stehen folgende Optionen zur Verfügung:
  + Stellen Sie sicher, dass Wartungsfenster außerhalb der Spitzenzeiten für Ihre DB-Instance aktiv sind.
  + Deaktivieren Sie den Standard-Wartungsplan, indem Sie für das Attribut `resource_plan` eine leere Zeichenfolge angeben.
  + Legen Sie den Parameter `resource_manager_plan` in der Parametergruppe auf `FORCE:` fest. Wenn Ihre Instance die Enterprise Edition verwendet, wird durch diese Einstellung verhindert, dass Database-Resource-Manager-Pläne aktiviert werden.

**Ändern Sie die Einstellungen eines Wartungsfensters wie folgt:**

1. Verbinden Sie Ihren Oracle-SQL-Client mit der Datenbank.

1. Fragen Sie die aktuelle Konfiguration für ein Scheduler-Wartungsfenster ab. 

   Im folgenden Beispiel wird die Konfiguration für `MONDAY_WINDOW` abgefragt.

   ```
   SELECT ENABLED, RESOURCE_PLAN, DURATION, REPEAT_INTERVAL
   FROM   DBA_SCHEDULER_WINDOWS 
   WHERE  WINDOW_NAME='MONDAY_WINDOW';
   ```

   Die folgende Ausgabe zeigt, dass für das Wartungsfenster die Standardwerte verwendet werden.

   ```
   ENABLED         RESOURCE_PLAN                  DURATION         REPEAT_INTERVAL
   --------------- ------------------------------ ---------------- ------------------------------
   TRUE            DEFAULT_MAINTENANCE_PLAN       +000 04:00:00    freq=daily;byday=MON;byhour=22
                                                                   ;byminute=0; bysecond=0
   ```

1. Ändern Sie das Wartungsfenster mit dem `DBMS_SCHEDULER`-Paket.

   Im folgenden Beispiel wird der Ressourcenplan auf null festgelegt, damit Resource Manager nicht während des Wartungsfensters ausgeführt wird.

   ```
   BEGIN
     -- disable the window to make changes
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
   
     -- specify the empty string to use no plan
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'RESOURCE_PLAN', value=>'');
   
     -- re-enable the window
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

   Im folgenden Beispiel wird die maximale Dauer des Wartungsfensters auf 2 Stunden eingestellt.

   ```
   BEGIN
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'DURATION', value=>'0 2:00:00');
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

   Im folgenden Beispiel wird das Wiederholungsintervall auf montags 10 Uhr festgelegt.

   ```
   BEGIN
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'REPEAT_INTERVAL', value=>'freq=daily;byday=MON;byhour=10;byminute=0;bysecond=0');
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

## Festlegen der Zeitzone für Oracle Scheduler-Aufgaben
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.TimeZone"></a>

Um die Zeitzone für Oracle Scheduler zu ändern, können Sie die Oracle-Prozedur verwende `dbms_scheduler.set_scheduler_attribute`. Weitere Informationen über das `dbms_scheduler`-Paket finden Sie unter [DBMS\$1SCHULER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SCHEDULER.html) und [SET\$1SCHULER\$1ATTRIBUTE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SCHEDULER.html#GUID-2AB97BF7-7154-4E6C-933F-B2659B18A907) in der Oracle-Dokumentation.

**So ändern Sie die Einstellung für die aktuelle Zeitzone**

1. Stellen Sie mithilfe eines Clients wie SQL Developer eine Verbindung zur Datenbank her. Weitere Informationen finden Sie unter [Herstellen der Verbindung zu Ihrer DB-Instance mit Oracle SQL Developer](USER_ConnectToOracleInstance.SQLDeveloper.md).

1. Legen Sie die Standardzeitzone wie folgt fest, indem Sie durch Ihre Zeitzone ersetze `time_zone_name`.

   ```
   BEGIN
     DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
       attribute => 'default_timezone',
       value => 'time_zone_name'
     );
   END;
   /
   ```

Im folgenden Beispiel ändern Sie die Zeitzone in Asia/Shanghai. 

Beginnen Sie, indem Sie die aktuelle Zeitzone abfragen, wie im Folgenden gezeigt.

```
SELECT VALUE FROM DBA_SCHEDULER_GLOBAL_ATTRIBUTE WHERE ATTRIBUTE_NAME='DEFAULT_TIMEZONE';
```

Die Ausgabe zeigt an, dass die aktuelle Zeitzone ETC/UTC ist.

```
VALUE
-------
Etc/UTC
```

Dann stellen Sie die Zeitzone auf „Asien/Shanghai“ ein.

```
BEGIN
  DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
    attribute => 'default_timezone',
    value => 'Asia/Shanghai'
  );
END;
/
```

Weitere Informationen zum Ändern der Systemzeitzone finden Sie unter [Oracle-Zeitzone](Appendix.Oracle.Options.Timezone.md).

## Deaktivieren von Oracle-Scheduler-Aufgaben im Besitz von SYS
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Disabling"></a>

Um einen SYS-eigene Oracle-Scheduler-Aufgabe zu deaktivieren, verwenden Sie die Prozedur `rdsadmin.rdsadmin_dbms_scheduler.disable`. 

Diese Vorgehensweise verwendet den allgemeinen Parameter `name` für Oracle Scheduler-Tasks. Weitere Informationen finden Sie unter [Geläufige Parameter für Oracle Scheduler-Prozeduren](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

Das folgende Beispiel deaktiviert den Oracle Scheduler-Job `SYS.CLEANUP_ONLINE_IND_BUILD`.

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

## Aktivieren von Oracle-Scheduler-Aufgaben im Besitz von SYS
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Enabling"></a>

Um eine SYS-eigene Oracle-Scheduler-Aufgabe zu aktivieren, verwenden Sie die Prozedur `rdsadmin.rdsadmin_dbms_scheduler.enable`.

Diese Vorgehensweise verwendet den allgemeinen Parameter `name` für Oracle Scheduler-Tasks. Weitere Informationen finden Sie unter [Geläufige Parameter für Oracle Scheduler-Prozeduren](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

Das folgende Beispiel aktiviert den Oracle Scheduler-Job `SYS.CLEANUP_ONLINE_IND_BUILD`.

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

## Ändern des Wiederholungsintervalls von Oracle Scheduler für Aufgaben des Typs CALENDAR
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Modifying_Calendar"></a>

Um das Wiederholungsintervall für die Änderung eines SYS-eigenen Oracle-Scheduler-Jobs vom Typ `CALENDAR` zu ändern, verwenden Sie die Vorgehensweise `rdsadmin.rdsadmin_dbms_scheduler.disable`.

Diese Vorgehensweise verwendet die folgenden allgemeinen Parameter für Oracle Scheduler-Tasks:
+ `name`
+ `attribute`
+ `value`

Weitere Informationen finden Sie unter [Geläufige Parameter für Oracle Scheduler-Prozeduren](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

Das folgende Beispiel ändert das Wiederholungsintervall des Oracle Scheduler-Jobs `SYS.CLEANUP_ONLINE_IND_BUILD`.

```
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;
/
```

## Ändern des Wiederholungsintervalls von Oracle Scheduler für Aufgaben des Typs NAMED
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Modifying_Named"></a>

Einige Oracle Scheduler-Jobs verwenden einen Zeitplannamen anstelle eines Intervalls. Für diese Art von Jobs müssen Sie im Master-Benutzerschema einen neuen benannten Zeitplan anlegen. Verwenden Sie dazu die standardmäßige Oracle `sys.dbms_scheduler.create_schedule`-Prozedur. Verwenden Sie außerdem die `rdsadmin.rdsadmin_dbms_scheduler.set_attribute procedure`, um dem Job den neuen benannten Zeitplan zuzuweisen. 

Diese Vorgehensweise verwendet den folgenden allgemeinen Parameter für Oracle Scheduler-Tasks:
+ `name`
+ `attribute`
+ `value`

Weitere Informationen finden Sie unter [Geläufige Parameter für Oracle Scheduler-Prozeduren](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

Das folgende Beispiel ändert das Wiederholungsintervall des Oracle Scheduler-Jobs `SYS.BSLN_MAINTAIN_STATS_JOB`.

```
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;
/
```

## Deaktivieren von Autocommit für die Erstellung von Oracle-Scheduler-Aufgaben
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.autocommit"></a>

Wenn `DBMS_SCHEDULER.CREATE_JOB` Oracle-Scheduler-Aufgaben erstellt, werden die Aufgaben sofort erstellt und es wird ein Commit für die Änderungen ausgeführt. Möglicherweise müssen Sie die Erstellung von Oracle-Scheduler-Aufgaben in die Benutzertransaktion integrieren, um Folgendes zu tun:
+ Setzen Sie die Oracle-Scheduler-Aufgabe zurück, wenn die Benutzertransaktion zurückgesetzt wird.
+ Erstellen Sie die Oracle-Scheduler-Augabe, wenn ein Commit für die Hauptbenutzertransaktion ausgeführt wird.

Sie können die Prozedur `rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag` verwenden, um dieses Verhalten zu aktivieren. Diese Prozedur verwendet keine Parameter. Sie können diese Prozedur in den folgenden Versionen von RDS für Oracle verwenden:
+ 21.0.0.0.ru-2022-07.rur-2022-07.r1 und höhere Versionen
+ 19.0.0.0.ru-2022-07.rur-2022-07.r1 und höhere Versionen

Im folgenden Beispiel wird Autocommit für Oracle Scheduler deaktiviert, eine Oracle-Scheduler-Aufgabe erstellt und anschließend die Transaktion zurückgesetzt. Da Autocommit deaktiviert ist, setzt die Datenbank auch die Erstellung der Oracle-Scheduler-Aufgabe zurück.

```
BEGIN
  rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag;
  DBMS_SCHEDULER.CREATE_JOB(job_name   => 'EMPTY_JOB', 
                            job_type   => 'PLSQL_BLOCK', 
                            job_action => 'begin null; end;',
                            auto_drop  => false);
  ROLLBACK;
END;
/

PL/SQL procedure successfully completed.

SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME='EMPTY_JOB';

no rows selected
```