Wie behebe ich Probleme, wenn ich Amazon RDS für Oracle mit Amazon S3 integriere?
Ich möchte Probleme beheben, wenn ich Amazon Relational Database Service (Amazon RDS) für Oracle mit Amazon Simple Storage Service (Amazon S3) integriere.
Kurzbeschreibung
Bevor du Dateien zwischen einer Datenbank-Instance in Amazon RDS für Oracle und einem Amazon-S3-Bucket überträgst, überprüfe die folgenden Anforderungen:
- Die Datenbank-Instance und der S3-Bucket befinden sich in derselben AWS-Region.
- Die AWS Identity and Access Management (IAM)-Rolle für die Datenbank-Instance hat den erforderlichen Zugriff auf den S3-Bucket.
- Die Datenbank-Instance ist einer Optionsgruppe zugeordnet und enthält die Option S3_INTEGRATION.
- Du lädst nur Dateien aus dem Oracle-Verzeichnisobjekt hoch.
Hinweis: Dieses Verzeichnis kann ein von einem Benutzer erstelltes Verzeichnis oder ein DATA_PUMP_DIR-Verzeichnis sein. - Wenn du ein von einem/einer Benutzer:in erstelltes Verzeichnis verwendest, stelle sicher, dass der/die Benutzer:in, der/die das Hoch- und Herunterladen durchführt, über die erforderlichen Berechtigungen für das Verzeichnis verfügt.
- Wenn du Daten innerhalb von Unterverzeichnissen kopierst, gib den Namen des Unterverzeichnisses explizit an, wenn du die rdsadmin-Pakete verwendest.
Hinweis: Du kannst keine Unterverzeichnisse kopieren, die die Option S3_INTEGRATION verwenden. Du kannst die Option S3_INTEGRATION nur verwenden, um Dateien zwischen einem logischen Oracle-Verzeichnis wie DATA_PUMP_DIR und Amazon S3 zu kopieren.
Lösung
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Sicherstellen, dass die IAM-Rolle für die Datenbank-Instance über Berechtigungen für den S3-Bucket verfügt
Führe die folgenden Schritte aus:
-
Öffne die Amazon Aurora- und RDS-Konsole.
-
Wähle im Navigationsbereich Datenbanken aus.
-
Wähle die Datenbank-Instance aus, die du überprüfen möchtest.
-
Wähle die Registerkarte Konnektivität und Sicherheit aus.
-
Scrolle nach unten zum Abschnitt IAM-Rollen verwalten und überprüfe, ob du eine aktive IAM-Rolle hast, die die folgenden Mindestberechtigungen enthält:
S3:ListBucket
S3:PutObject
S3:GetObject
Du kannst auch den Befehl describe-db-instances ausführen:aws rds describe-db-instances \--db-instance-identifier example-db-instance \--query 'DBInstances[*].[AssociatedRoles[*]]'Hinweis: Ersetze example-db-instance durch deine Datenbank-Instance.
-
Wenn die IAM-Rolle vorhanden ist, aber nicht über die Mindestberechtigungen verfügt, aktualisiere die Rolle so, dass sie diese Berechtigungen enthält.
Wenn du keine IAM-Rolle mit den erforderlichen Berechtigungen hast, gehe wie folgt vor:
- Erstelle eine IAM-Richtlinie mit den für die Übertragung der Dateien erforderlichen Berechtigungen.
Hinweis: Stelle sicher, dass du Buckets Berechtigungen auf Bucket-Ebene und Objekten Berechtigungen auf Objektebene hinzufügst, wenn du die IAM-Richtlinie erstellst. - Erstelle eine IAM-Rolle für die Datenbank-Instance in Amazon RDS für Oracle und füge die Richtlinie an die Rolle an.
- Ordne der IAM-Rolle der Datenbank-Instance in Amazon RDS für Oracle zu.
Wenn das Problem mit den Bucket-Berechtigungen weiterhin besteht, verwende die folgende Beispielrichtlinie, um der IAM-Rolle vollen Zugriff auf den S3-Bucket zu gewähren:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::example-bucket/*", "arn:aws:s3:::example-bucket" ] } ] }
Wichtig: Gewähre nur vollen Zugriff auf den S3-Bucket, um zu testen, ob die falsche Einrichtung der IAM-Berechtigungen das Problem verursacht hat. Nachdem du das Problem behoben hast, setze die benutzerdefinierten Berechtigungen auf ihren vorherigen Zustand zurück.
Um Dateien in einen bestimmten Ordner in Amazon S3 hochzuladen, verwende den Parameter p_s3_prefix in der Prozedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3. Stelle sicher, dass du über die erforderlichen Berechtigungen verfügst, bevor du die Dateien hochlädst.
Um beispielsweise Dateien in den Ordner Beispiel-Ordner in den S3-Bucket Beispiel-Bucket hochzuladen, fügen die folgende IAM-Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::example-bucket/example-folder/*" ] } ] }
Sicherstellen, dass du eine Optionsgruppe an die RDS-Datenbank-Instance angefügt hast
Führe die folgenden Schritte aus:
-
Öffne die Aurora- und RDS-Konsole.
-
Wähle im Navigationsbereich Datenbanken aus.
-
Wähle die Datenbank-Instance aus, die du überprüfen möchtest.
-
Wähle die Registerkarte Konfiguration und notiere dir den Parameter Optionsgruppen.
-
Um zu überprüfen, ob sich diese Optionsgruppe im Status in-sync (synchronisiert) befindet, führe den folgenden Befehl describe-db-instances aus:
aws rds describe-db-instances \--db-instance-identifier example-db-instance \--query 'DBInstances[*].[OptionGroupMemberships[*]]'Hinweis: Ersetze example-db-instance durch deine Datenbank-Instance.
-
Führe eine der folgenden Aktionen aus:
Wenn sich die Optionsgruppe nicht im Status in-sync (synchronisiert) befindet, wähle die Registerkarte Protokolle und Ereignisse und überprüfe den Abschnitt Aktuelle Ereignisse. Identifiziere die Komponente, die verhindert, dass die Optionsgruppe synchronisiert ist, und entferne dann diese Komponente aus der Datenbank.
-oder-
Wenn sich die Optionsgruppe im Status in-sync (synchronisiert) befindet, überprüfe, ob die Option S3_INTEGRATION in der Optionsgruppe enthalten ist. Wenn die Option S3_INTEGRATION nicht in der Optionsgruppe enthalten ist, füge die S3-Integrationsoption hinzu.
Hinweis: Wenn du den Fehler „ORA-00904: "RDSADMIN"."RDSADMIN_S3_TASKS"."UPLOAD_TO_S3": invalid identifier";“ erhältst, stelle sicher, dass du der Datenbank-Instance die Option S3_INTEGRATION hinzufügst.
Ausfallzeiten treten nicht auf, wenn du die Option S3_INTEGRATION hinzufügst. Wenn du die Option Sofort anwenden verwenden möchtest, stelle sicher, dass keine Wartungsmaßnahmen ausstehen. Wenn Wartungsmaßnahmen ausstehen, gelten diese Aktionen für die S3-Integration. Weitere Informationen findest du unter Wartung einer DB-Instance.
Dateien hoch- und herunterladen
Du kannst von der Datenbank-Instance aus nicht direkt auf die Amazon-S3-Dateien zugreifen. Um auf diese Dateien zuzugreifen, musst du die Dateien in ein Verzeichnis auf dem Amazon-RDS-Host kopieren. Gehe wie folgt vor, um Dateien von der Datenbank-Instance in einen S3-Bucket hoch- und aus einem S3-Bucket herunterzuladen:
- Verwende den Befehl expdp, die dbms_datapump-API im DATA_DUMP_DIR oder das benutzerdefinierte Verzeichnis, um die nach Amazon S3 zu exportierenden Dateien zu erstellen.
- Verwende dann die Prozedur rdsadmin.rdsadmin_s3_tasks.upload_to_s3, um Dateien auf S3 hochzuladen.
- Verwende die Prozedur rdsadmin. rdsadmin_s3_tasks.download_from_s3, um Dateien aus dem S3-Bucket in den Ordner DATA_PUMP_DIR oder ein vom Benutzer erstelltes Verzeichnis herunterzuladen.
Wenn du die Prozedur zum Hoch- oder Herunterladen des rdsadmin-Pakets ausführst, zeige die Protokolle an und überwache den Status der Dateiübertragung. Gehe wie folgt vor, um diese Protokolle anzuzeigen:
-
Öffne die Aurora- und RDS-Konsole.
-
Wähle im Navigationsbereich Datenbanken aus.
-
Wähle die Datenbank-Instance aus, die du anzeigen möchtest.
-
Wähle die Registerkarte Protokolle und Ereignisse aus.
-
Gib im Abschnitt Protokolle die Aufgaben-ID der Prozedur in den Suchfilter ein.
-
Wähle die zurückgegebene Datei aus.
-
Wähle Beobachten, um die Protokolle anzuzeigen, oder wähle Download, um die Protokolle herunterzuladen.
-
Du kannst auch den folgenden Befehl ausführen, um die während des Hoch- oder Herunterladens generierte Protokolldatei zu lesen:
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));Hinweis: Ersetze task-id durch die Aufgaben-ID, die die Prozedur zurückgibt.
Ähnliche Informationen
Warum verwendet meine DB-Instance von Amazon RDS für Oracle mehr Speicher als ich erwartet habe?
- Themen
- Database
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr