Ausführen verschiedener Aufgaben für Oracle-DB-Instances - Amazon Relational Database Service

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 verschiedener Aufgaben für Oracle-DB-Instances

Im Folgenden erfahren Sie, wie Sie verschiedene DBA-Aufgaben für Ihre Amazon RDS-DB-Instances, auf denen Oracle ausgeführt wird, durchführen können. Um eine verwaltete Service-Erfahrung zu bieten, stellt Amazon RDS keinen Shell-Zugriff zu DB-Instances bereit und beschränkt den Zugriff auf bestimmte Systemprozeduren und -tabellen, die erweiterte Sonderrechte erfordern.

Erstellen und Löschen von Verzeichnissen im Hauptdatenspeicherbereich

Um die Dateien in einem Verzeichnis aufzulisten, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.create_directory. Sie können bis zu 10 000 Verzeichnisse erstellen, die sich alle in Ihrem Hauptdatenspeicherplatz befinden. Um Verzeichnisse zu entfernen, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rdsadmin_util.drop_directory.

Die Prozeduren create_directory und drop_directory haben den folgenden erforderlichen Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_directory_name

varchar2

Ja

Der Name des Verzeichnisses

Im folgenden Beispiel wird ein neues Verzeichnis mit dem Namen erstell PRODUCT_DESCRIPTIONS.

EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'product_descriptions');

Das Datenwörterbuch speichert den Verzeichnisnamen in Großbuchstaben. Sie können die Verzeichnisse durch das Abfragen von auflisten lasse DBA_DIRECTORIES. Das System wählt den tatsächlichen Host-Pfadnamen automatisch aus. Im folgenden Beispiel wird der Verzeichnispfad für das Verzeichnis mit dem Namen erhalte PRODUCT_DESCRIPTIONS:

SELECT DIRECTORY_PATH FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME='PRODUCT_DESCRIPTIONS'; DIRECTORY_PATH ---------------------------------------- /rdsdbdata/userdirs/01

Der Hauptbenutzername für die DB-Instance hat Lese- und Schreibsonderrechte im neuen Verzeichnis und kann anderen Benutzern Zugriff gewähren. EXECUTE-Sonderrechte sind für die Verzeichnisse in einer DB-Instance nicht verfügbar. Verzeichnisse werden im Hautdatenspeicherplatz erstellt und verbrauchen Speicher und I/O-Bandbreite.

Im folgenden Beispiel wird das Verzeichnis mit dem Namen „“ entfern PRODUCT_DESCRIPTIONS.

EXEC rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'product_descriptions');
Anmerkung

Sie können ein Verzeichnis auch löschen, indem Sie den Oracle SQL-Befehl verwende DROP DIRECTORY.

Das Verwerfen eines Verzeichnisses entfernt nicht seine Inhalte. Da die Prozedur „rdsadmin.rdsadmin_util.create_directory“ Pfadnamen wiederverwenden kann, werden in Verzeichnissen verworfene Dateien in einem neu erstellten Verzeichnis wieder auftauchen. Bevor Sie ein Verzeichnis löschen, wird empfohlen, Dateien mit UTL_FILE.FREMOVE aus dem Verzeichnis zu entfernen. Weitere Informationen finden Sie unter FREMOVE Procedure in der Oracle-Dokumentation.

Auflisten von Dateien in einem DB-Instance-Verzeichnis

Um die Dateien in einem Verzeichnis aufzulisten, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rds_file_util.listdir. Die Prozedur listdir hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_directory

varchar2

Ja

Der Name des aufzulistenden Verzeichnisses

Im folgenden Beispiel werden Lese-/Schreibberechtigungen für das Verzeichnis PRODUCT_DESCRIPTIONS an den Benutzer rdsadmin gewährt. Anschließend werden die Dateien in diesem Verzeichnis aufgelistet.

GRANT READ,WRITE ON DIRECTORY PRODUCT_DESCRIPTIONS TO rdsadmin; SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'PRODUCT_DESCRIPTIONS'));

Lesen von Dateien in einem DB-Instance-Verzeichnis

Um eine Textdatei zu lesen, verwenden Sie die Amazon RDS-Prozedur rdsadmin.rds_file_util.read_text_file. Die Prozedur read_text_file hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_directory

varchar2

Ja

Der Verzeichnisname der die Datei beinhaltet

p_filename

varchar2

Ja

Der Name der zu lesenden Datei

Im folgenden Beispiel wird die Datei rice.txt im Verzeichnis PRODUCT_DESCRIPTIONS erstellt.

declare fh sys.utl_file.file_type; begin fh := utl_file.fopen(location=>'PRODUCT_DESCRIPTIONS', filename=>'rice.txt', open_mode=>'w'); utl_file.put(file=>fh, buffer=>'AnyCompany brown rice, 15 lbs'); utl_file.fclose(file=>fh); end; /

Im folgenden Beispiel wird die Datei rice.txt aus dem Verzeichnis PRODUCT_DESCRIPTIONS gelesen.

SELECT * FROM TABLE (rdsadmin.rds_file_util.read_text_file( p_directory => 'PRODUCT_DESCRIPTIONS', p_filename => 'rice.txt'));

Zugreifen auf Opatch-Dateien

Opatch ist ein Oracle-Dienstprogramm, das die Anwendung und das Rollback von Patches auf Oracle-Software ermöglicht. Die Oracle-Methode, mit der bestimmt wird, welche Patches auf eine Datenbank angewendet wurden, ist der Befehl opatch lsinventory. Um Serviceanfragen für Kunden mit Bring Your Own License (BYOL) zu öffnen, fordert Oracle Support die lsinventory-Datei und manchmal die von Opatch generierte lsinventory_detail-Datei an.

Um eine verwaltete Service-Erfahrung zu bieten, ermöglicht Amazon RDS keinen Shell-Zugriff auf Opatch. Stattdessen enthält die Datei lsinventory-dbv.txt im BDUMP-Verzeichnis die Patch-Informationen zu Ihrer aktuellen Engine-Version. Wenn Sie ein Upgrade der Neben- oder Hauptversion durchführen, aktualisiert Amazon RDS lsinventory-dbv.txt innerhalb einer Stunde nach Patch-Anwendung. Informationen zur Überprüfung der angewendeten Patches finden Sie in der lsinventory-dbv.txt. Diese Aktion entspricht der Ausführung des Befehls opatch lsinventory.

Anmerkung

In den Beispielen in diesem Abschnitt wird davon ausgegangen, dass das BDUMP-Verzeichnis als benannt is BDUMP. Bei einem Lesereplikat unterscheidet sich der Name des BDUMP-Verzeichnisses. Informationen zum Abrufen des BDUMP-Namens durch Abfragen von V$DATABASE.DB_UNIQUE_NAME auf einem Lesereplikat finden Sie unter Auflisten von Dateien.

Die Bestandsdateien verwenden die Amazon RDS-Namenskonvention lsinventory-dbv.txt und lsinventory_detail-dbv.txt, wobei dbv der vollständige Name Ihrer DB-Version ist. Die Datei lsinventory-dbv.txt ist auf allen DB-Versionen verfügbar. Die entsprechende lsinventory_detail-dbv.txt steht in den folgenden DB-Versionen zur Verfügung:

  • 19.0.0.0, ru-2020-01.rur-2020-01.r1 oder höher

  • 12.2.0.1, ru-2020-01.rur-2020-01.r1 oder höher

  • 12.1.0.2, v19 oder höher

Wenn Ihre DB-Version beispielsweise 19.0.0.0.ru-2021-07.rur-2021-07.r1 ist, haben die Bestandsdateien die folgenden Namen.

lsinventory-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt lsinventory_detail-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt

Stellen Sie sicher, dass Sie die Dateien herunterladen, die mit der aktuellen Version Ihrer DB-Engine übereinstimmen.

So laden Sie eine Bestandsdatei über die Konsole herunter
  1. Öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.

  3. Wählen Sie den Namen der DB-Instance, welche die anzuzeigende Protokolldatei enthält.

  4. Wählen Sie die Registerkarte Logs & events (Protokolle und Ereignisse).

  5. Scrollen Sie nach unten bis zum Abschnitt Protokolle.

  6. Suchen Sie im Abschnitt Protokolle nach lsinventory.

  7. Wählen Sie die Datei aus, auf die Sie zugreifen möchten, und klicken Sie dann auf Herunterladen.

Zum Lesen der lsinventory-dbv.txt auf einem SQL-Client können Sie eine SELECT-Anweisung verwenden. Für diese Methode verwenden Sie eine der folgenden rdsadmin-Funktionen: rdsadmin.rds_file_util.read_text_file oder rdsadmin.tracefile_listing.

Ersetzen Sie in der folgenden Beispielabfrage dbv durch Ihre Oracle DB-Version. Ihre DB-Version könnte beispielsweise 19.0.0.0.ru-2020-04.rur-2020-04.r1 sein.

SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'lsinventory-dbv.txt'));

Um die lsinventory-dbv.txt auf einem SQL-Client zu lesen, können Sie ein PL/SQL-Programm schreiben. Dieses Programm verwendet utl_file, um die Datei zu lesen, und dbms_output, um sie zu drucken. Dies sind von Oracle bereitgestellte Pakete.

Ersetzen Sie im folgenden Beispielprogramm dbv durch Ihre Oracle DB-Version. Ihre DB-Version könnte beispielsweise 19.0.0.0.ru-2020-04.rur-2020-04.r1 sein.

SET SERVEROUTPUT ON DECLARE v_file SYS.UTL_FILE.FILE_TYPE; v_line VARCHAR2(1000); v_oracle_home_type VARCHAR2(1000); c_directory VARCHAR2(30) := 'BDUMP'; c_output_file VARCHAR2(30) := 'lsinventory-dbv.txt'; BEGIN v_file := SYS.UTL_FILE.FOPEN(c_directory, c_output_file, 'r'); LOOP BEGIN SYS.UTL_FILE.GET_LINE(v_file, v_line,1000); DBMS_OUTPUT.PUT_LINE(v_line); EXCEPTION WHEN no_data_found THEN EXIT; END; END LOOP; END; /

Oder fragen Sie rdsadmin.tracefile_listing ab und spoolen Sie die Ausgabe in eine Datei. Im folgenden Beispiel wird die Ausgabe in gespool /tmp/tracefile.txt.

SPOOL /tmp/tracefile.txt SELECT * FROM rdsadmin.tracefile_listing WHERE FILENAME LIKE 'lsinventory%'; SPOOL OFF;

Verwalten von Berateraufgaben

Oracle Database enthält eine Reihe von Beratern. Jeder Berater unterstützt automatisierte und manuelle Aufgaben. Sie können Prozeduren im rdsadmin.rdsadmin_util-Paket zur Verwaltung einiger Berateraufgaben verwenden.

Die Prozesse der Berateraufgaben sind in den folgenden Engine-Versionen verfügbar:

  • Oracle Database 21c (21.0.0)

  • Version 19.0.0.0.ru-2021-01.rur-2021-01.r1 und höhere Versionen von Oracle Database 19c

    Weitere Informationen finden Sie unter Version 19.0.0.0.ru-2021-01.rur-2021-01.r1 in den Versionshinweisen zu Amazon RDS for Oracle.

  • Version 12.2.0.1.ru-2021-01.rur-2021-01.r1 und höhere Versionen von Oracle Database 12c (Release 2) 12.2.0.1

    Weitere Informationen finden Sie unter Version 12.2.0.1.ru-2021-01.rur-2021-01.r1 in den Versionshinweisen zu Amazon RDS for Oracle.

Festlegen von Parametern für Berateraufgaben

Um Parameter für einige Berateraufgaben festzulegen, verwenden Sie das Amazon RDS-Verfahren rdsadmin.rdsadmin_util.advisor_task_set_parameter. Die Prozedur advisor_task_set_parameter hat die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_task_name

varchar2

Ja

Der Name der Berateraufgabe, deren Parameter Sie ändern möchten. Die folgenden Werte sind gültig:

  • AUTO_STATS_ADVISOR_TASK

  • INDIVIDUAL_STATS_ADVISOR_TASK

  • SYS_AUTO_SPM_EVOLVE_TASK

  • SYS_AUTO_SQL_TUNING_TASK

p_parameter

varchar2

Ja

Der Name des Aufgaben-Parameters. Um gültige Parameter für eine Berateraufgabe zu finden, führen Sie die folgende Abfrage aus. Ersetzen Sie p_task_name mit einem gültigen Wert für p_task_name :

COL PARAMETER_NAME FORMAT a30 COL PARAMETER_VALUE FORMAT a30 SELECT PARAMETER_NAME, PARAMETER_VALUE FROM DBA_ADVISOR_PARAMETERS WHERE TASK_NAME='p_task_name' AND PARAMETER_VALUE != 'UNUSED' ORDER BY PARAMETER_NAME;

p_value

varchar2

Ja

Der Wert für einen Aufgabenparameter. Um gültige Werte für Aufgabenparameter zu finden, führen Sie die folgende Abfrage aus. Ersetzen Sie p_task_name mit einem gültigen Wert für p_task_name :

COL PARAMETER_NAME FORMAT a30 COL PARAMETER_VALUE FORMAT a30 SELECT PARAMETER_NAME, PARAMETER_VALUE FROM DBA_ADVISOR_PARAMETERS WHERE TASK_NAME='p_task_name' AND PARAMETER_VALUE != 'UNUSED' ORDER BY PARAMETER_NAME;

Das folgenden PL/SQL-Programm setzt ACCEPT_PLANS auf FALSE für SYS_AUTO_SPM_EVOLVE_TASK. Die automatisierte Aufgabe „SQL-Planverwaltung“ überprüft die Pläne und erstellt einen Bericht über ihre Ergebnisse, entwickelt die Pläne jedoch nicht automatisch weiter. Sie können einen Bericht verwenden, um neue SQL-Plan-Baselines zu identifizieren und sie manuell zu akzeptieren.

BEGIN rdsadmin.rdsadmin_util.advisor_task_set_parameter( p_task_name => 'SYS_AUTO_SPM_EVOLVE_TASK', p_parameter => 'ACCEPT_PLANS', p_value => 'FALSE'); END;

Das folgenden PL/SQL-Programm setzt EXECUTION_DAYS_TO_EXPIRE auf 10 für AUTO_STATS_ADVISOR_TASK. Die vordefinierte Aufgabe AUTO_STATS_ADVISOR_TASK läuft automatisch einmal täglich im Wartungsfenster. Im Beispiel wird der Aufbewahrungszeitraum für die Aufgabenausführung auf 10 Tage festgelegt.

BEGIN rdsadmin.rdsadmin_util.advisor_task_set_parameter( p_task_name => 'AUTO_STATS_ADVISOR_TASK', p_parameter => 'EXECUTION_DAYS_TO_EXPIRE', p_value => '10'); END;

Deaktivieren von AUTO_STATS_ADVISOR_TASK

Um AUTO_STATS_ADVISOR_TASK zu deaktivieren, verwenden Sie das Amazon RDS-Verfahren rdsadmin.rdsadmin_util.advisor_task_drop. Das advisor_task_drop-Verfahren akzeptiert den folgenden Parameter.

Anmerkung

Dieses Verfahren ist in Oracle Database 12c Release 2 (12.2.0.1) und höher verfügbar.

Parametername Datentyp Standard Erforderlich Beschreibung

p_task_name

varchar2

Ja

Der Name der Berateraufgabe, die deaktiviert werden soll. Der einzige gültige Wert ist AUTO_STATS_ADVISOR_TASK.

Der folgenden Befehl wird verworfen: AUTO_STATS_ADVISOR_TASK.

EXEC rdsadmin.rdsadmin_util.advisor_task_drop('AUTO_STATS_ADVISOR_TASK')

Sie können AUTO_STATS_ADVISOR_TASK unter Verwendung von rdsadmin.rdsadmin_util.dbms_stats_init erneut aktivieren.

Erneutes Aktivieren von AUTO_STATS_ADVISOR_TASK

Um AUTO_STATS_ADVISOR_TASK wieder zu aktivieren, verwenden Sie das Amazon RDS-Verfahren rdsadmin.rdsadmin_util.dbms_stats_init. Die dbms_stats_init-Prozedur verwendet keine Parameter.

Der folgende Befehl reaktiviert AUTO_STATS_ADVISOR_TASK.

EXEC rdsadmin.rdsadmin_util.dbms_stats_init()