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.
Wir empfehlen, vor und nach dem Laden der Daten DB-Snapshots der Amazon RDS-DB-Zielinstanz zu erstellen. Amazon RDS-DB-Snapshots sind vollständige Backups von Ihrer DB-Instance, die für eine Wiederherstellung Ihrer DB-Instance auf einen bekannten Zustand verwendet werden können. Wenn Sie ein DB-Snapshot-I/O initiieren, werden alle Operationen in Ihrer DB-Instance augenblicklich unterbrochen, während Ihre Datenbank gesichert wird.
Wenn Sie einen DB-Snapshot unmittelbar vor dem Laden erstellen, können Sie die Datenbank bei Bedarf in ihrem Zustand vor dem Laden wiederherstellen. Ein DB-Snapshot, der sofort nach einem Ladevorgang gemacht wird, schützt Sie vor einem erneuten Laden der Daten, falls ein Fehler auftritt. Sie können diesen aber auch als Anfangsbestand für neue Datenbank-Instances verwenden.
Im Folgenden sind die durchzuführenden Schritte aufgeführt. Jeder Schritt wird im Folgenden ausführlicher erläutert.
Erstellen Sie flache Dateien, die die zu ladenden Daten enthalten.
Stoppen Sie alle Anwendungen, die auf die Ziel-DB-Instance zugreifen.
Erstellen eines DB-Snapshots.
Erwägen Sie, automatische Backups für Amazon RDS zu deaktivieren.
Laden Sie die Daten.
Aktivieren Sie die automatischen Backups erneut.
Schritt 1: Erstellen Sie flache Dateien, die die zu ladenden Daten enthalten
Verwenden Sie ein gängiges Format, z. B. kommagetrennte Werte (CSV), um die zu ladenden Daten zu speichern. Jede Tabelle muss über eine eigene Datei verfügen. Sie können keine Daten für mehrere Tabellen in derselben Datei kombinieren. Geben Sie jeder Datei denselben Namen wie der zugehörigen Tabelle. Die Dateierweiterung können Sie benennen, wie Sie möchten. Wenn der Tabellenname beispielsweise sales
lautet, kann der Dateiname sales.csv
oder sales.txt
lauten, aber nicht sales_01.csv
.
Wann immer es möglich ist, ordnen Sie Daten nach Primärschlüssel der ladenden Tabelle. Dadurch werden die Ladezeiten drastisch verbessert und die Anforderungen an den Festplattenspeicher minimiert.
Die optimale Geschwindigkeit und Effizienz dieser Prozedur ist auf kleine Dateigrößen ausgelegt. Wenn die Größe einer einzelnen unkomprimierten Datei mehr als 1 GiB beträgt, teilen Sie diese in mehrere Dateien auf, die danach separat geladen werden können.
Verwenden Sie auf Unix-ähnlichen Systemen (einschließlich Linux) den split
-Befehl. Der folgende Befehl teilt beispielsweise die Datei sales.csv
in mehrere Dateien auf, die kleiner als 1 GiB sind. Die Teilung findet nur an Zeilenumbrüchen statt (-C 1024m). Die neuen Dateien heißen sales.part_00
, sales.part_01
usw.
split -C 1024m -d sales.csv sales.part_
Ähnliche Hilfsprogramme sind auch für andere Betriebssysteme verfügbar.
Schritt 2: Halten Sie alle Anwendungen an, die auf die Ziel-DB-Instance zugreifen
Stoppen Sie vor dem Starten eines großen Ladevorgangs alle Anwendungsaktivitäten, die auf die DB-Ziel-Instance zugreifen, in die die Daten geladen werden sollen. Wir empfehlen dies insbesondere, wenn andere Sitzungen die zu ladenden Tabellen oder die in diesen Tabellen referenzierten Tabellen verändern. Dadurch wird die Gefahr von Verstößen gegen Einschränkungen während des Ladens reduziert und zugleich die Ausführungsgeschwindigkeit des Ladevorgangs erhöht. Zudem wird es möglich, die DB-Instance im Zustand unmittelbar vor dem Ladevorgang wiederherzustellen, ohne die Änderungen durch Prozesse zu verlieren, die nicht am Ladevorgang beteiligt sind.
Unter Umständen ist dies jedoch nicht möglich oder nicht praktikabel. Wenn Sie vor dem Ladevorgang den Zugriff von Anwendungen auf die DB-Instance nicht stoppen können, führen Sie die erforderlichen Schritte aus, um die Verfügbarkeit und Integrität der Daten sicherzustellen. Die jeweiligen erforderlichen Schritte können sich stark unterscheiden, je nachdem welche besonderen Verwendungsfälle der Standortanforderungen vorliegen.
Schritt 3: Erstellen Sie einen DB-Snapshot
Wenn Sie Daten in eine neue DB-Instance laden wollen, die keine Daten enthält, können Sie diesen Schritt überspringen. Andernfalls ermöglicht das Erstellen eines DB-Snapshots der DB-Instance die Wiederherstellung der DB-Instance in dem Zustand, den sie unmittelbar vor dem Ladevorgang hatte, falls dies erforderlich wird. Wie bereits zuvor erwähnt, werden, wenn Sie ein DB-Snapshot I/O initiieren, alle Operationen in Ihrer DB-Instance für einige Minuten unterbrochen, während die Datenbank gesichert wird.
Im folgenden Beispiel wird der AWS CLI create-db-snapshot
Befehl ausgeführt, um einen DB-Snapshot der AcmeRDS
Instance zu erstellen und dem DB-Snapshot die Kennung zuzuweisen"preload"
.
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds create-db-snapshot \ --db-instance-identifier
AcmeRDS
\ --db-snapshot-identifierpreload
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds create-db-snapshot ^ --db-instance-identifier
AcmeRDS
^ --db-snapshot-identifierpreload
Sie können auch die Wiederherstellung aus der DB-Snapshot-Funktionalität verwenden, um Test-DB-Instances für Testversuche zu erstellen, oder, um die Änderungen während eines Ladevorgangs rückgängig zu machen.
Bedenken Sie, dass die Wiederherstellung einer Datenbank aus einem DB-Snapshot eine neue DB-Instance erstellt, die wie alle DB-Instances über eine eindeutige Kennung und einen Endpunkt verfügt. Um die DB-Instance wiederherzustellen, ohne den Endpunkt zu ändern, löschen Sie zuerst die DB-Instance, damit Sie den Endpunkt wiederverwenden können.
Um beispielsweise eine DB-Instance für einen Testlauf oder andere Testzwecke zu erstellen, weisen Sie der DB-Instance eine eigene Kennung zu. Im Beispiel ist AcmeRDS-2
" die Kennung. Das Beispiel stellt über den Endpunkt, der AcmeRDS-2
zugeordnet ist, eine Verbindung mit der DB-Instance her.
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier
AcmeRDS-2
\ --db-snapshot-identifierpreload
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier
AcmeRDS-2
^ --db-snapshot-identifierpreload
Um einen bestehenden Endpunkt erneut zu verwenden, löschen Sie zuerst die DB-Instance und weisen Sie dann der wiederhergestellten Datenbank dieselbe Kennung zu.
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds delete-db-instance \ --db-instance-identifier
AcmeRDS
\ --final-db-snapshot-identifierAcmeRDS-Final
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifierAcmeRDS
\ --db-snapshot-identifierpreload
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds delete-db-instance ^ --db-instance-identifier
AcmeRDS
^ --final-db-snapshot-identifierAcmeRDS-Final
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifierAcmeRDS
^ --db-snapshot-identifierpreload
Im vorherigen Beispiel wird ein letzter DB-Snapshot der DB-Instance erstellt, bevor sie gelöscht wird. Dies ist zwar optional, wird aber empfohlen.
Schritt 4: Erwägen Sie, automatische Backups für Amazon RDS zu deaktivieren
Warnung
Deaktivieren Sie automatische Backups nicht, wenn Sie eine point-in-time Wiederherstellung durchführen müssen.
Durch das Deaktivieren automatisierter Backups werden alle vorhandenen Backups gelöscht, sodass eine point-in-time Wiederherstellung nicht möglich ist, nachdem automatische Backups deaktiviert wurden. Das Deaktivieren von automatischen Backups ist eine Leistungsoptimierung und ist für Datenladevorgänge nicht erforderlich. Beachten Sie, dass manuelle DB-Snapshots nicht von der Deaktivierung automatischer Backups betroffen sind. Alle bestehenden manuellen DB-Snapshots bleiben für eine Wiederherstellung verfügbar.
Das Deaktivieren von automatischen Backups reduziert die Ladezeit um 25 % und verringert zugleich den während des Ladevorgangs erforderlichen Speicherplatz. Wenn Sie Daten in eine neue DB-Instance laden wollen, die keine Daten enthält, ist das Deaktivieren von Backups eine einfache Möglichkeit, die Übertragungsgeschwindigkeit zu erhöhen und zusätzlichen Speicherverbrauch zu vermeiden. In einigen Fällen können Sie jedoch in eine DB-Instance laden, die bereits Daten enthält. Wenn ja, sollten Sie die Vorteile der Deaktivierung von Backups gegen die Auswirkungen eines Verlusts der Leistungsfähigkeit point-in-time-recovery abwägen.
In DB-Instances ist die Funktion für automatische Backups standardmäßig aktiviert (mit einem Aufbewahrungszeitraum von 1 Tag). Setzen Sie den Wert des Aufbewahrungszeitraums für Backups auf 0, um automatische Backups zu deaktivieren. Nach dem Ladevorgang können Sie Backups erneut aktivieren, indem Sie den Aufbewahrungszeitraum für Backups auf einen Nicht-Null-Wert setzen. Um Backups zu aktivieren oder zu deaktivieren, fährt Amazon RDS die DB-Instance herunter und startet sie neu, um die Protokollierung in MariaDB oder MySQL zu aktivieren oder zu deaktivieren.
Führen Sie den AWS CLI modify-db-instance
Befehl aus, um die Backup-Aufbewahrung auf Null zu setzen und die Änderung sofort zu übernehmen. Das Setzen des Aufbewahrungszeitraums für Backups auf Null erfordert den Neustart einer DB-Instance. Warten Sie daher bitte, bis der Neustart abgeschlossen wurde, bevor Sie fortfahren.
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds modify-db-instance \ --db-instance-identifier
AcmeRDS
\ --apply-immediately \ --backup-retention-period0
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds modify-db-instance ^ --db-instance-identifier
AcmeRDS
^ --apply-immediately ^ --backup-retention-period0
Sie können den Status Ihrer DB-Instance mit dem AWS CLI
describe-db-instances
Befehl überprüfen. Das folgende Beispiel zeigt den DB-Instance-Status der AcmeRDS
-DB-Instance.
aws rds describe-db-instances --db-instance-identifier
AcmeRDS
--query "*[].{DBInstanceStatus:DBInstanceStatus}"
Wenn der Status der DB-Instance available
ist, können Sie fortfahren.
Schritt 5: Laden Sie die Daten
Verwenden Sie die LOAD DATA LOCAL INFILE
MySQL-Anweisung, um Zeilen aus Ihren Flatfiles in die Datenbanktabellen zu lesen.
Das folgende Beispiel zeigt Ihnen, wie Sie Daten aus einer Datei mit dem Namen sales.txt
in eine Sales
in der Datenbank benannte Tabelle laden.
mysql> LOAD DATA LOCAL INFILE 'sales.txt' INTO TABLE Sales FIELDS TERMINATED BY ' ' ENCLOSED BY '' ESCAPED BY '\\'; Query OK, 1 row affected (0.01 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
Weitere Informationen zu der LOAD DATA
Anweisung finden Sie in der MySQL-Dokumentation
Schritt 6: Reaktivieren Sie automatische Backups für Amazon RDS
Nachdem der Ladevorgang abgeschlossen ist, aktivieren Sie die automatischen Backups in Amazon RDS erneut, indem Sie den Aufbewahrungszeitraum für Backups auf seinen ursprünglichen Wert vor dem Ladevorgang setzen. Wie bereits vorher erwähnt, wird Amazon RDS einen Neustart der DB-Instance durchführen, es kommt also zu einem kurzen Ausfall.
Im folgenden Beispiel wird der AWS CLI modify-db-instance
Befehl ausgeführt, um automatische Backups für die AcmeRDS
DB-Instance zu aktivieren und die Aufbewahrungsfrist auf einen Tag festzulegen.
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds modify-db-instance \ --db-instance-identifier
AcmeRDS
\ --backup-retention-period1
\ --apply-immediately
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds modify-db-instance ^ --db-instance-identifier
AcmeRDS
^ --backup-retention-period1
^ --apply-immediately