Integration einer Amazon RDS for SQL Server-DB-Instance mit Amazon S3
Sie können Dateien zwischen einer DB-Instance mit Amazon RDS for SQL Server und einem
Amazon S3-Bucket übertragen. Dabei können Sie Amazon S3 mit SQL Server-Funktionen
wie etwa BULK INSERT verwenden. Sie können beispielsweise .csv-, .xml-, .txt- und
andere Dateien aus Amazon S3 zum Host der DB-Instance herunterladen und die Daten
aus D:\S3\
in die Datenbank laden. Alle Dateien werden in D:\S3\
auf der DB-Instance gespeichert.
Die folgenden Einschränkungen gelten:
-
Dateien im
D:\S3
-Ordner werden nach einem Failover auf Multi-AZ-Instances auf dem Standby-Replikat gelöscht. Weitere Informationen finden Sie unter Multi-AZ-Einschränkungen für die S3-Integration. -
Die DB-Instance und der S3-Bucket müssen sich in der gleichen AWS-Region befinden.
-
Wenn Sie mehr als eine S3-Integrationsaufgabe gleichzeitig ausführen, werden die Aufgaben sequenziell und nicht parallel ausgeführt.
Anmerkung S3-Integrationsaufgaben verwenden dieselbe Warteschlange wie native Backup- und Wiederherstellungsaufgaben. Sie können maximal zwei Aufgaben gleichzeitig in dieser Warteschlange haben. Daher blockieren zwei laufende native Backup- und Wiederherstellungsaufgaben alle S3-Integrationsaufgaben.
-
Sie müssen die S3-Integrationsfunktion auf den wiederhergestellten Instances erneut aktivieren. Die S3-Integration wird nicht von der Quell-Instance auf die wiederhergestellte Instance übertragen. Dateien in D:\S3 werden auf einer wiederhergestellten Instance gelöscht.
-
Der Download auf die DB-Instance ist auf 100 Dateien begrenzt. Anders ausgedrückt: Es können sich nicht mehr als 100 Dateien in
D:\S3\
befinden. -
Es werden nur Dateien ohne Dateierweiterungen oder mit den folgenden Dateierweiterungen zum Download unterstützt: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt und .xml.
Anmerkung Dateien mit der Dateierweiterung „.ispac“ werden zum Download unterstützt, wenn SQL Server Integration Services aktiviert ist. Weitere Informationen zum Aktivieren von SSIS finden Sie unter SQL Server Integration Services.
Dateien mit den folgenden Dateierweiterungen werden für den Download unterstützt, wenn SQL Server Analysis Services aktiviert ist: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets und .xmla. Weitere Informationen zum Aktivieren von SSAS finden Sie unter SQL Server Analysis Services.
-
Der S3-Bucket muss denselben Eigentümer wie die zugehörige AWS Identity and Access Management- (IAM) Rolle haben. Daher wird die kontoübergreifende S3-Integration nicht unterstützt.
-
Der S3-Bucket kann nicht für die Öffentlichkeit zugänglich sein.
-
Die Dateigröße für Uploads ist auf 50 GB pro Datei begrenzt.
Themen
Weitere Informationen zum Arbeiten mit Dateien in Amazon S3 finden Sie unter Erste Schritte mit Amazon Simple Storage Service.
Voraussetzungen für die Integration von RDS SQL Server mit S3
Bevor Sie beginnen, suchen oder erstellen Sie den S3-Bucket, den Sie verwenden möchten. Fügen Sie weiterhin Berechtigungen hinzu, so dass die RDS DB-Instance auf den S3-Bucket zugreifen kann. Zur Konfiguration dieses Zugriffs erstellen Sie eine IAM-Richtlinie und eine IAM-Rolle.
So erstellen Sie eine IAM-Richtlinie für den Zugriff auf Amazon S3:
-
Wählen Sie in der IAM Management-Konsole
im Navigationsbereich Policies (Richtlinien). -
Erstellen Sie eine neue Richtlinie, und verwenden Sie die Registerkarte Visual editor für die folgenden Schritte.
-
Geben Sie unter Service
S3
ein, und wählen Sie dann den S3-Service. -
Wählen Sie unter Actions (Aktionen) Folgendes, um den Zugang zu gewähren, den Ihre DB-Instance benötigt.
-
ListAllMyBuckets
– erforderlich -
ListBucket
– erforderlich -
GetBucketACL
– erforderlich -
GetBucketLocation
– erforderlich -
GetObject
– erforderlich für das Herunterladen von Dateien von S3 zuD:\S3\
-
PutObject
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
ListMultipartUploadParts
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
AbortMultipartUpload
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3
-
-
Für Resources (Ressourcen) hängen die angezeigten Optionen davon ab, welche Aktionen Sie im vorherigen Schritt ausgewählt haben. Möglicherweise sehen Sie Optionen für Bucket, Object (Objekt) oder beide. Geben Sie für beide den jeweiligen Amazon-Ressourcennamen (ARN) an.
Geben Sie für Bucket den ARN für den Bucket an, den Sie verwenden möchten. Wenn Ihr Bucket beispielsweise den Namen
example-bucket
hat, setzen Sie den ARN aufarn:aws:s3:::example-bucket
.Geben Sie für Object (Objekt) den ARN für den Bucket ein, und wählen Sie dann eine der folgenden Optionen:
-
Um Zugriff auf alle Dateien in dem angegebenen Bucket zu gewähren, wählen Sie Any (Beliebig) für Bucket name (Name des Buckets) und Object name (Name des Objekts).
-
Um Zugriff auf bestimmte Dateien oder Ordner in dem Bucket zu gewähren, geben Sie ARNs für die Buckets und Objekte an, auf die SQL Server zugreifen können soll.
-
-
Befolgen Sie die Anweisungen in der Konsole, bis Sie die Richtlinie fertig erstellt haben.
Vorstehendes ist eine verkürzte Anleitung zur Einrichtung einer Richtlinie. Ausführlichere Anweisungen zum Erstellen von IAM-Richtlinien finden Sie unter Erstellen von IAM-Richtlinien im IAM-Benutzerhandbuch.
So erstellen Sie eine IAM-Rolle, die die IAM-Richtlinie aus der vorherigen Prozedur verwendet:
-
Wählen Sie in der IAM Management-Konsole
im Navigationsbereich Roles (Rollen). -
Erstellen Sie eine neue IAM-Rolle, und wählen Sie die folgenden Optionen, wenn sie in der Konsole angezeigt werden:
-
AWS-Service
-
RDS
-
RDS – Add Role to Database (Rolle zu Datenbank hinzufügen)
Wählen Sie dann unten Next permissions (Nächste Berechtigungen).
-
-
Geben Sie für Attach permissions policies (Berechtigungsrichtlinien anfügen) den Namen der vorher erstellten IAM-Richtlinie ein. Wählen Sie dann eine Richtlinie aus der Liste aus.
-
Befolgen Sie die Anweisungen in der Konsole, bis Sie die Rolle fertig erstellt haben.
Vorstehendes ist eine verkürzte Anleitung zur Einrichtung einer Rolle. Wenn Sie eine ausführlichere Anleitung zum Erstellen einer Rolle wünschen, vgl. IAM-Rollen im IAM-Benutzerhandbuch.
So gewähren Sie Amazon RDS Zugriff auf einen Amazon S3-Bucket
-
Erstellen Sie eine IAM-Richtlinie, die Amazon RDS Zugriff auf einen S3-Bucket gewährt.
Schließen Sie die jeweiligen Aktionen ein, um den Zugriff zu gewähren, den Ihre DB-Instance erfordert:
-
ListAllMyBuckets
– erforderlich -
ListBucket
– erforderlich -
GetBucketACL
– erforderlich -
GetBucketLocation
– erforderlich -
GetObject
– erforderlich für das Herunterladen von Dateien von S3 zuD:\S3\
-
PutObject
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
ListMultipartUploadParts
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3 -
AbortMultipartUpload
– erforderlich für das Hochladen von Dateien vonD:\S3\
zu S3
Der folgende AWS CLI-Befehl erstellt eine IAM-Richtlinie mit dem Namen
mit diesen Optionen. Sie gewährt Zugriff auf einen Bucket mit dem Namenrds-s3-integration-policy
.your-s3-bucket-arn
Beispiel
Für Linux, macOS oder Unix:
aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
bucket_name
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/key_prefix/*
" } ] }'Für Windows:
Achten Sie darauf, dass Sie die Zeilenenden so ändern, dass Ihre Schnittstelle sie unterstützt (
^
anstelle von\
). Unter Windows müssen Sie dazu alle doppelten Anführungszeichen mit dem Escape-Zeichen\
versehen. Um dies für alle Anführungszeichen in JSON zu vermeiden, können Sie sie stattdessen in eine Datei speichern und als Parameter einführen.Erstellen Sie zuerst die
policy.json
-Datei mit der folgenden Berechtigungsrichtlinie:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/key_prefix/*" } ] }
Verwenden Sie dann den folgenden Befehl, um die Richtlinie zu erstellen:
aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document file://
policy_file_path
-
-
Notieren Sie nach dem Erstellen der Richtlinie den Amazon-Ressourcennamen (ARN) der Richtlinie. Sie benötigen den ARN bei einem späteren Schritt.
-
Erstellen Sie eine IAM-Rolle, die Amazon RDS in Ihrem Auftrag annehmen kann, um auf Ihre S3-Buckets zuzugreifen.
Der folgende AWS CLI-Befehl erstellt zu diesem Zweck die Rolle
.rds-s3-integration-role
Beispiel
Für Linux, macOS oder Unix:
aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
Für Windows:
Achten Sie darauf, dass Sie die Zeilenenden so ändern, dass Ihre Schnittstelle sie unterstützt (
^
anstelle von\
). Unter Windows müssen Sie dazu alle doppelten Anführungszeichen mit dem Escape-Zeichen\
versehen. Um dies für alle Anführungszeichen in JSON zu vermeiden, können Sie sie stattdessen in eine Datei speichern und als Parameter einführen.Erstellen Sie zuerst die
assume_role_policy.json
-Datei mit der folgenden Richtlinie:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Verwenden Sie anschließend den folgenden Befehl zum Erstellen der IAM-Rolle:
aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://
assume_role_policy_file_path
Weitere Informationen finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer im IAM-Benutzerhandbuch.
-
Notieren Sie nach dem Erstellen der IAM-Rolle den ARN der Rolle. Sie benötigen den ARN bei einem späteren Schritt.
-
Fügen Sie die erstellte IAM-Richtlinie der IAM-Rolle an, die Sie erstellt haben.
Der folgende AWS CLI-Befehl fügt die Richtlinie an die Rolle
an.rds-s3-integration-role
Beispiel
Für Linux, macOS oder Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
Für Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-s3-integration-role
Ersetzen Sie
durch den Richtlinien-ARN, den Sie im vorherigen Schritt notiert haben.your-policy-arn
Aktivieren der RDS SQL Server-Integration mit S3
Im folgenden Abschnitt erfahren Sie, wie Sie die Amazon S3-Integration mit Amazon
RDS for SQL Server aktivieren. Zur Arbeit mit der S3-Integration muss Ihre DB-Instance
mit der IAM-Rolle verbunden sein, die Sie vorher erstellt haben, bevor Sie den Funktionsnamenparameter
S3_INTEGRATION
verwenden.
Um eine IAM-Rolle zu einer DB-Instance hinzufügen zu können, muss der Status der DB-Instance available (verfügbar) sein.
So ordnen Sie Ihre IAM-Rolle Ihrer DB-Instance zu
-
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie den Namen der RDS SQL Server-DB-Instance, um ihre Details anzuzeigen.
-
Wählen Sie auf der Registerkarte Connectivity & security (Konnektivität und Sicherheit) im Bereich Manage IAM roles (IAM-Rollen verwalten) die IAM-Rolle aus, die unter Add IAM roles to this instance (IAM-Rollen zu dieser Instance hinzufügen) hinzugefügt werden soll.
-
Wählen Sie unter Feature (Funktion) die Option S3_INTEGRATION aus.
-
Wählen Sie Rolle hinzufügen.
So fügen Sie die IAM-Rolle der RDS SQL Server-DB-Instance hinzu:
-
Der folgende AWS CLI-Befehl fügt Ihre IAM-Rolle einer RDS SQL Server-DB-Instance mit der Bezeichnung
hinzu.mydbinstance
Beispiel
Für Linux, macOS oder Unix:
aws rds add-role-to-db-instance \ --db-instance-identifier
mydbinstance
\ --feature-name S3_INTEGRATION \ --role-arnyour-role-arn
Für Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Ersetzen Sie
durch den Rollen-ARN, den Sie im vorherigen Schritt notiert haben. Für die Optionyour-role-arn
--feature-name
mussS3_INTEGRATION
angegeben werden.
Übertragen von Dateien zwischen RDS SQL Server und einem S3-Bucket
Sie können gespeicherte Amazon RDS-Prozeduren zum Herunterladen und Hochladen von Dateien zwischen S3 und Ihrer RDS DB-Instance verwenden. Sie können auch gespeicherte Amazon RDS-Prozeduren zum Auflisten und Löschen von Dateien auf der RDS-Instance verwenden.
Die Dateien, die Sie von Amazon S3 herunter- und dazu hochladen, werden im Ordner
D:\S3
gespeichert. Dies ist der einzige Ordner, den Sie zum Zugriff auf Ihre Dateien verwenden
können. Sie können Ihre Dateien in Unterordnern organisieren, die für Sie erstellt
werden, wenn Sie beim Download den Zielordner einschließen.
Einige der gespeicherten Prozeduren verlangen, dass Sie einen Amazon-Ressourcennamen
(ARN) für Ihren Amazon S3-Bucket und die Datei angeben. Das Format für Ihren ARN lautet
arn:aws:s3:::bucket_name/file_name
. Amazon S3 benötigt keine Kontonummer oder AWS-Region in ARNs.
S3-Integrationsaufgaben werden sequenziell ausgeführt und nutzen dieselbe Warteschlange wie native Sicherungs- und Wiederherstellungsaufgaben. Sie können maximal zwei Aufgaben gleichzeitig in dieser Warteschlange haben. Der Verarbeitungsbeginn für jede Aufgabe kann bis zu fünf Minuten in Anspruch nehmen.
Herunterladen von Dateien aus einem Amazon S3-Bucket zu einer SQL Server-DB-Instance
Verwenden Sie zum Herunterladen von Dateien aus einem S3-Bucket zu einer RDS SQL Server-DB-Instance
die gespeicherte Prozedur Amazon RDS msdb.dbo.rds_download_from_s3
mit den folgenden Parametern.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
NVARCHAR |
– |
Erforderlich |
Der S3-ARN der herunterzuladenden Datei, zum Beispiel: |
|
NVARCHAR |
– |
Optional |
Der Dateipfad für die RDS-Instance. Wenn nichts angegeben ist, ist der Dateipfad |
|
INT |
0 |
Optional |
Die vorhandene Datei überschreiben: 0 = Nicht überschreiben 1 = Überschreiben |
Sie können Dateien ohne Dateierweiterung und Dateien mit den folgenden Dateierweiterungen herunterladen: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt und .xml.
Dateien mit der Dateierweiterung „.ispac“ werden zum Download unterstützt, wenn SQL Server Integration Services aktiviert ist. Weitere Informationen zum Aktivieren von SSIS finden Sie unter SQL Server Integration Services.
Dateien mit den folgenden Dateierweiterungen werden für den Download unterstützt, wenn SQL Server Analysis Services aktiviert ist: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets und .xmla. Weitere Informationen zum Aktivieren von SSAS finden Sie unter SQL Server Analysis Services.
Das folgende Beispiel zeigt die gespeicherte Prozedur für den Download von Dateien von S3.
exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::
bucket_name/bulk_data.csv
', @rds_file_path='D:\S3\seed_data\data.csv
', @overwrite_file=1
;
Die Beispieloperation rds_download_from_s3
erstellt einen Ordner mit der Bezeichnung seed_data
in D:\S3\
, wenn der Ordner noch nicht vorhanden ist. Dann lädt das Beispiel die Quelldatei
bulk_data.csv
von S3 zu einer neuen Datei mit der Bezeichnung data.csv
auf der DB-Instance herunter. Wenn die Datei bereits vorhanden war, wird sie überschrieben,
da der Parameter @overwrite_file
auf 1
gesetzt ist.
Hochladen von Dateien von einer SQL Server-DB-Instance zu einem Amazon S3-Bucket
Verwenden Sie zum Hochladen von Dateien aus einer RDS SQL Server-DB-Instance zu einem
S3-Bucket die gespeicherte Prozedur Amazon RDS msdb.dbo.rds_upload_to_s3
mit den folgenden Parametern.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
NVARCHAR |
– |
Erforderlich |
Der S3-ARN der in S3 zu erstellenden Datei, zum Beispiel: |
|
NVARCHAR |
– |
Erforderlich |
Der Dateipfad der zu S3 hochzuladenden Datei. Es werden absolute und relative Pfade unterstützt. |
|
INT |
– |
Optional |
Die vorhandene Datei überschreiben: 0 = Nicht überschreiben 1 = Überschreiben |
Das folgende Beispiel lädt die Datei mit der Bezeichnung data.csv
von dem angegebenen Speicherort in D:\S3\seed_data\
zu einer Datei new_data.csv
in dem von dem ARN angegebenen S3-Bucket hoch.
exec msdb.dbo.rds_upload_to_s3 @rds_file_path='D:\S3\
seed_data\data.csv
', @s3_arn_of_file='arn:aws:s3:::bucket_name/new_data.csv
', @overwrite_file=1
;
Wenn die Datei in S3 bereits vorhanden war, wird sie überschrieben, da der Parameter
@overwrite_file auf 1
gesetzt ist.
Auflisten von Dateien auf der RDS DB-Instance
Verwenden Sie zum Auflisten der auf der DB-Instance verfügbaren Dateien eine gespeicherte
Prozedur und eine Funktion. Führen Sie zunächst die folgende gespeicherte Prozedur
aus, um Dateidetails von den Dateien in D:\S3\
zu erfassen.
exec msdb.dbo.rds_gather_file_details;
Die gespeicherte Prozedur gibt die ID der Aufgabe zurück. Wie andere Aufgaben wird
diese gespeicherte Prozedur asynchron ausgeführt. Sobald der Status der Aufgabe SUCCESS
ist, können Sie die Aufgaben-ID in der rds_fn_list_file_details
-Funktion verwenden, um die vorhandenen Dateien und Verzeichnisse in D:\S3\ wie nachfolgend
gezeigt aufzulisten.
SELECT * FROM msdb.dbo.rds_fn_list_file_details(
TASK_ID
);
Die rds_fn_list_file_details
-Funktion gibt eine Tabelle mit den folgenden Spalten zurück:
Ausgabeparameter | Beschreibung |
---|---|
filepath |
Absoluter Pfad der Datei (zum Beispiel D:\S3\mydata.csv )
|
size_in_bytes |
Dateigröße (in Bytes) |
last_modified_utc |
Letztes Änderungsdatum/-uhrzeit im UTC-Format |
is_directory |
Option, die angibt, ob es sich bei dem Element um ein Verzeichnis handelt (true /false ).
|
Löschen von Dateien auf der RDS-Instance
Verwenden Sie zum Löschen der auf der DB-Instance verfügbaren Dateien die gespeicherte
Prozedur Amazon RDS msdb.dbo.rds_delete_from_filesystem
mit den folgenden Parametern.
Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
---|---|---|---|---|
|
NVARCHAR |
– |
Erforderlich |
Der Dateipfad der zu löschenden Datei. Es werden absolute und relative Pfade unterstützt. |
|
INT |
0 |
Optional |
Zum Löschen eines Verzeichnisses muss diese Markierung eingeschlossen und auf
Dieser Parameter wird ignoriert, wenn Sie eine Datei löschen. |
Zum Löschen eines Verzeichnisses muss @rds_file_path
mit einem umgekehrten Schrägstrich (\
) enden, und @force_delete
muss auf 1
gesetzt sein.
Im folgenden Beispiel wird die Datei D:\S3\delete_me.txt
gelöscht.
exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\
delete_me.txt
';
Im folgenden Beispiel wird das Verzeichnis D:\S3\example_folder\
gelöscht.
exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\
example_folder
\', @force_delete=1;
Überwachung des Status einer Dateiübertragungsaufgabe
Rufen Sie zum Nachverfolgen des Status Ihrer S3-Integrationsaufgabe die rds_fn_task_status
-Funktion auf. Dazu sind zwei Parameter erforderlich. Der erste Parameter sollte immer
NULL
sein, da er sich nicht auf die S3-Integration bezieht. Der zweite Parameter akzeptiert
eine Aufgaben-ID. Setzen Sie den zweiten Parameter auf 0
, um Ergebnisse für alle aufgaben zu erhalten.
Um eine Liste aller Aufgaben anzuzeigen, setzen Sie den ersten Parameter auf NULL
und den zweiten Parameter auf 0
, wie im folgenden Beispiel gezeigt.
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,
0
);
Um eine bestimmte Aufgabe zu erhalten, setzen Sie den ersten Parameter auf NULL
und den zweiten Parameter auf die Aufgaben-ID, wie im folgenden Beispiel gezeigt,
SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,
42
);
Die rds_fn_task_status
-Funktion gibt die folgenden Informationen zurück.
Ausgabeparameter |
Beschreibung |
---|---|
|
Die ID der Aufgabe. |
|
Für die S3-Integration können Aufgaben die folgenden Aufgabentypen haben:
|
|
Nicht verwendbar für S3-Integrationsaufgaben. |
|
Verlauf der Aufgabe als Prozentwert. |
|
Zeitdauer für die Ausführung der Aufgabe (in Minuten). |
|
Der Status der Aufgabe. Die folgenden Status sind möglich:
|
|
Zusätzliche Informationen über die Aufgabe. Wenn bei der Verarbeitung ein Fehler auftritt, enthält diese Spalte Informationen zu dem Fehler. |
|
Datum und Uhrzeit der letzten Aktualisierung des Aufgabenstatus. |
|
Datum und Uhrzeit, an denen die Aufgabe angelegt wurde. |
|
Der ARN des S3-Objekts, von dem der Download oder zu dem der Upload stattfand. |
|
Nicht verwendbar für S3-Integrationsaufgaben. |
|
Nicht verwendbar für S3-Integrationsaufgaben. |
|
Der Dateipfad auf der RDS DB-Instance. |
|
Eine Option, die anzeigt, ob eine bestehende Datei überschrieben wird. |
|
Nicht verwendbar für S3-Integrationsaufgaben. |
Abbrechen einer Aufgabe
Verwenden Sie zum Abbrechen von S3-Integrationsaufgaben die gespeicherte msdb.dbo.rds_cancel_task
-Prozedur mit dem Parameter task_id
. Laufende Lösch- und Auflistungsaufgaben können nicht abgebrochen werden. Das folgende
Beispiel zeigt eine Anforderung zum Abbrechen einer Aufgabe.
exec msdb.dbo.rds_cancel_task @task_id = 1234;
Verwenden Sie für die Anzeige einer Übersicht über alle Aufgaben und ihre Aufgaben-IDs
die rds_fn_task_status
-Funktion wie in Überwachung des Status einer Dateiübertragungsaufgabe beschrieben.
Multi-AZ-Einschränkungen für die S3-Integration
Bei Multi-AZ-Instances werden Dateien im D:\S3
-Ordner nach einem Failover auf dem Standby-Replikat gelöscht. Ein Failover kann beispielsweise
bei Änderungen der DB-Instance geplant werden, z. B. beim Ändern der Instance-Klasse
oder beim Aktualisieren der Engine-Version. Oder ein Failover kann während eines Ausfalls
der primären Instance ungeplant sein.
Es wird nicht empfohlen, den D:\S3
-Ordner für die Dateispeicherung zu verwenden. Die bewährte Methode besteht darin,
erstellte Dateien in Amazon S3 hochzuladen, um sie beständig zu machen, und Dateien
herunterzuladen, wenn Sie Daten importieren müssen.
Um die letzte Failover-Zeit zu bestimmen, können Sie das gespeicherte msdb.dbo.rds_failover_time
-Verfahren verwenden. Weitere Informationen finden Sie unter Ermitteln der letzten Failover-Zeit.
Beispiel Kein Failover in letzter Zeit
Dieses Beispiel zeigt die Ausgabe, wenn in den Fehlerprotokollen kein aktuelles Failover vorhanden ist. Seit 2020-04-29 23:59:00.01 ist kein Failover aufgetreten.
Daher sind alle nach dieser Zeit heruntergeladenen Dateien, die nicht mit dem gespeicherten
rds_delete_from_filesystem
-Verfahren gelöscht wurden, weiterhin auf dem aktuellen Host verfügbar. Dateien, die
vor diesem Zeitpunkt heruntergeladen wurden, sind möglicherweise ebenfalls verfügbar.
errorlog_available_from | recent_failover_time |
---|---|
2020-04-29 23:59:00.0100000 |
Null |
Beispiel Failover in letzter Zeit
Dieses Beispiel zeigt die Ausgabe, wenn ein Failover in den Fehlerprotokollen vorliegt. Das letzte Failover erfolgte am 2020-05-05 18:57:51.89.
Auf alle nach dieser Zeit heruntergeladenen Dateien, die nicht mit dem gespeicherten
rds_delete_from_filesystem
-Verfahren gelöscht wurden, kann auf dem aktuellen Host weiterhin zugegriffen werden.
errorlog_available_from | recent_failover_time |
---|---|
2020-04-29 23:59:00.0100000 |
2020-05-05 18:57:51.8900000 |
Deaktivieren der RDS SQL Server-Integration mit S3
Nachfolgend erfahren Sie, wie Sie die Amazon S3-Integration mit Amazon RDS for SQL
Server deaktivieren. Dateien in D:\S3\
werden nicht gelöscht, wenn die S3-Integration deaktiviert wird.
Um eine IAM-Rolle von einer DB-Instance löschen zu können, muss der Status der DB-Instance
available
sein.
So entfernen Sie die Zuweisung Ihrer IAM-Rolle zu DB-Instance:
-
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie den Namen der RDS SQL Server-DB-Instance, um ihre Details anzuzeigen.
-
Wählen Sie auf der Registerkarte Connectivity & security (Konnektivität und Sicherheit) im Bereich Manage IAM roles (IAM-Rollen verwalten) die IAM-Rolle aus, die entfernt werden soll.
-
Wählen Sie Delete.
So entfernen Sie die IAM-Rolle von der RDS SQL Server-DB-Instance:
-
Der folgende AWS CLI-Befehl entfernt die IAM-Rolle von einer RDS SQL Server-DB-Instance mit der Bezeichnung
.mydbinstance
Für Linux, macOS oder Unix:
aws rds remove-role-from-db-instance \ --db-instance-identifier
mydbinstance
\ --feature-name S3_INTEGRATION \ --role-arnyour-role-arn
Für Windows:
aws rds remove-role-from-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Ersetzen Sie
durch den jeweiligen ARN der IAM-Rolle für die Optionyour-role-arn
--feature-name
.