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.
Themen
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 |
---|---|---|---|---|
|
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
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
. Dieses Verfahren wird auf einem Oracle-Replikat nicht unterstützt. Die Prozedur listdir
hat die folgenden Parameter.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
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 |
---|---|---|---|---|
|
varchar2 |
— |
Ja |
Der Verzeichnisname der die Datei beinhaltet |
|
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-
im BDUMP-Verzeichnis die Patch-Informationen zu Ihrer aktuellen Engine-Version. Wenn Sie ein Upgrade der Neben- oder Hauptversion durchführen, aktualisiert Amazon RDS dbv
.txtlsinventory-
innerhalb einer Stunde nach Patch-Anwendung. Informationen zur Überprüfung der angewendeten Patches finden Sie in der dbv
.txtlsinventory-
. Diese Aktion entspricht der Ausführung des Befehls dbv
.txtopatch 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-
und dbv
.txtlsinventory_detail-
, wobei dbv
.txtdbv
der vollständige Name Ihrer DB-Version ist. Die Datei lsinventory-
ist auf allen DB-Versionen verfügbar. Das entsprechende dbv
.txtlsinventory_detail-
ist auf 19.0.0.0, ru-2020-01.rur-2020-01.r1 oder höher verfügbar.dbv
.txt
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
Öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.
-
Wählen Sie den Namen der DB-Instance, welche die anzuzeigende Protokolldatei enthält.
-
Wählen Sie die Registerkarte Logs & events (Protokolle und Ereignisse).
-
Scrollen Sie nach unten bis zum Abschnitt Protokolle.
-
Suchen Sie im Abschnitt Protokolle nach
lsinventory
. -
Wählen Sie die Datei aus, auf die Sie zugreifen möchten, und klicken Sie dann auf Herunterladen.
Zum Lesen der lsinventory-
auf einem SQL-Client können Sie eine dbv
.txtSELECT
-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-
auf einem SQL-Client zu lesen, können Sie ein PL/SQL-Programm schreiben. Dieses Programm verwendet dbv
.txtutl_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.
Themen
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 |
---|---|---|---|---|
|
varchar2 |
— |
Ja |
Der Name der Berateraufgabe, deren Parameter Sie ändern möchten. Die folgenden Werte sind gültig:
|
|
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
|
|
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
|
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.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
varchar2 |
— |
Ja |
Der Name der Berateraufgabe, die deaktiviert werden soll. Der einzige gültige Wert ist |
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()