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.
Runbook zur Amazon DocumentDB-Migration
Dieses Runbook bietet einen umfassenden Leitfaden für die Migration einer MongoDB-Datenbank zu Amazon DocumentDB mithilfe von AWS Database Migration Service (DMS). Es wurde entwickelt, um Datenbankadministratoren, Cloud-Techniker und Entwickler während der gesamten Migration zu unterstützen — von der ersten Entdeckung bis zur end-to-end Validierung nach der Migration.
Angesichts der Unterschiede in der Implementierung und den unterstützten Funktionen zwischen MongoDB und Amazon DocumentDB betont dieses Runbook einen strukturierten und systematischen Ansatz. Es beschreibt wichtige Bewertungen vor der Migration, hebt Kompatibilitätsaspekte hervor und beschreibt detailliert die wichtigsten Aufgaben, die erforderlich sind, um eine erfolgreiche Migration mit minimalen Unterbrechungen sicherzustellen.
Das Runbook ist in die folgenden Themen gegliedert:
Kompatibilität— Machen Sie sich mit den unterstützten MongoDB-Funktionen und Datentypen in Amazon DocumentDB vertraut und identifizieren Sie potenzielle Inkompatibilitäten.
Erkennung von Workloads— Analysieren Sie bestehende MongoDB-Workloads, einschließlich read/write Muster, Datenvolumen und Leistungsbasislinien.
Index-Migration— Analysieren Sie Strategien zum Extrahieren und Transformieren von MongoDB-Indizes für eine optimale Leistung in Amazon DocumentDB.
Benutzermigration— Erläutern Sie den Ansatz für die Migration von Datenbankbenutzern, Rollen und Zugriffskontrollen zu Amazon DocumentDB.
Datenmigrationen— Erläutern Sie verschiedene Methoden zur Datenmigration AWS DMS, einschließlich Volllast und Erfassung von Änderungsdaten (CDC).
Überwachen— Erläutern Sie die verschiedenen Überwachungsansätze bei der Migration mithilfe von DMS oder systemeigenen Tools.
Validierung— Bereitstellung von Verfahren für Datenintegritätsprüfungen, Funktionsvalidierung und Leistungsvergleiche nach der Migration.
Wenn Teams die Anleitungen in diesem Runbook befolgen, können sie einen reibungslosen, sicheren und effizienten Übergang zu Amazon DocumentDB sicherstellen und gleichzeitig die Anwendungsfunktionalität beibehalten und Risiken minimieren.
Kompatibilität
Bei der Migration von MongoDB zu Amazon DocumentDB sind eine gründliche Erstbeurteilung und Funktionskompatibilitätsprüfung für eine erfolgreiche Migration unerlässlich. Dieser Prozess beginnt mit einer umfassenden Bestandsaufnahme Ihrer MongoDB-Funktionen, einschließlich Aggregationspipeline-Operatoren, Abfragemustern, Indizes und Datenmodellen.
Da Amazon DocumentDB mit den MongoDB-APIs 3.6, 4.0 und 5.0 kompatibel ist, müssen Anwendungen, die neuere MongoDB-spezifische Funktionen verwenden, möglicherweise umgestaltet werden. Zu den kritischen Bereichen, die bewertet werden müssen, gehören Sharding-Mechanismen (Amazon DocumentDB verwendet einen anderen Ansatz), Transaktionsimplementierungen, Change-Stream-Funktionen und Indextypen (insbesondere Sparse-Indizes und partielle Indizes).
Auch die Leistungsmerkmale unterscheiden sich, da Amazon DocumentDB für Unternehmens-Workloads mit vorhersehbarer Leistung optimiert ist. Beim Testen sollten repräsentative Workloads für beide Systeme ausgeführt werden, um Abfragemuster zu identifizieren, die möglicherweise optimiert werden müssen.
Während der Bewertungsphase ist es wichtig, die Ausführungspläne zu überwachen, um potenzielle Leistungslücken zu erkennen. Dies hilft bei der Erstellung eines klaren Migrationsplans, in dem notwendige Anwendungsänderungen identifiziert und realistische Zeitpläne für einen reibungslosen Übergang festgelegt werden.
Kompatibilität der Kernfunktionen
Umfassende Funktionsunterstützung
CRUD-Operationen — Genießen Sie volle Unterstützung für alle grundlegenden Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge, einschließlich Bulk- und Abfrageoperatoren, wodurch eine nahtlose Anwendungskompatibilität gewährleistet wird.
Umfangreiche Indizierungsfunktionen — Nutzen Sie die umfassende Unterstützung für Einzelfeld-, Verbund-, TTL-, Teil-, Sparse- und 2dsphären-Indizes, um Ihre Abfrageleistung und Textindizes (Version 5) für textbasierte Suchvorgänge zu optimieren.
Replikation auf Unternehmensebene — Profitieren Sie von einem robusten automatischen Failover-Mechanismus mit Read Replicas für hervorragende Hochverfügbarkeit ohne Betriebsaufwand.
Fortschrittliche Backup-Lösungen — Mit dem automatisierten Backup-System mit Point-in-Time Recovery (PITR) und manuellen Snapshots auf Abruf zum Schutz Ihrer Daten können Sie sich darauf verlassen.
Verbesserte AWS— integrierte Funktionen
Optimierte Aggregation — Nutzen Sie die am häufigsten verwendeten Aggregationsstufen (
$match
,,$group
$sort
$project
, usw.) mit optimierter Leistung für Unternehmens-Workloads.Transaktionsunterstützung — Implementieren Sie Transaktionen mit mehreren Dokumenten und mehreren Sammlungen, die sich perfekt für die meisten Anforderungen von Geschäftsanwendungen eignen.
Datenverfolgung in Echtzeit — Aktivieren Sie Change-Streams mit einem einfachen Befehl und verlängern Sie die Aufbewahrungsdauer von Change-Streams durch eine einfache Parametergruppeneinstellung für die Überwachung von Datenänderungen in Echtzeit.
Ortsbezogene Dienste — Implementieren Sie Geodatenanwendungen mit Unterstützung für
$geoNear
Operator- und 2dSphere-Indizes.Textsuchfunktionen — Nutzen Sie die integrierte Textsuchfunktion für die Suche nach Inhalten.
Vorteile moderner Architektur
Cloud-natives Design — Genießen Sie eine AWS optimierte Architektur, die ältere Funktionen durch effizientere Aggregations-Pipeline-Operationen ersetzt. MapReduce
Verbesserte Sicherheit — Profitieren Sie von AWS Identity and Access Management (IAM), SCRAM-SHA-1, SCRAM-SHA-256, X.509-Zertifikatsauthentifizierung und passwortbasierter Authentifizierung.
Vorhersehbare Leistung — Erleben Sie eine konsistente Leistung, die speziell für Unternehmens-Workloads optimiert wurde.
Einen umfassenden Überblick über die Funktionen von Amazon DocumentDB finden Sie unter Unterstützte MongoDB APIs, Operationen und Datentypen in Amazon DocumentDB und Funktionale Unterschiede: Amazon DocumentDB und MongoDB zur Maximierung des Potenzials Ihrer Datenbank.
Amazon DocumentDB unterstützt nicht alle von MongoDB angebotenen Indizes. Wir bieten ein kostenloses Index-Tool
Amazon DocumentDB DocumentDB-Kompatibilitätsbewertungstool
Das MongoDB to Amazon DocumentDB Compatibility Tool ist ein Open-Source-Hilfsprogramm, das dabei hilft GitHub , die Kompatibilität
Schlüsselfunktionen
Identifiziert MongoDB-API-Nutzungsmuster in Ihrem Workload
Weist vor der Migration auf mögliche Kompatibilitätsprobleme hin
Generiert detaillierte Kompatibilitätsberichte mit Empfehlungen
Als eigenständiges Hilfsprogramm verfügbar, das lokal ausgeführt werden kann
Bewertungsmethoden
Protokollgestützte Bewertung
Vorteile:
Erfasst das tatsächliche Laufzeitverhalten und Abfragemuster
Identifiziert reale Nutzungshäufigkeiten und Leistungsmerkmale
Erkennt dynamische Abfragen, die im Quellcode möglicherweise nicht sichtbar sind
Kein Zugriff auf den Quellcode der Anwendung erforderlich
Nachteile:
Erfordert Zugriff auf MongoDB-Protokolle mit aktivierter Profilerstellung
Erfasst nur Vorgänge, die während des Protokollierungszeitraums stattgefunden haben
Möglicherweise fehlen selten genutzte Funktionen oder saisonale Workloads
Analyse des Quellcodes
Vorteile:
Umfassende Abdeckung aller potenziellen MongoDB-Operationen in der Codebasis
Kann Probleme in selten ausgeführten Codepfaden identifizieren
Erkennt clientseitige Logik, die von Amazon DocumentDB DocumentDB-Unterschieden betroffen sein könnte
Sie müssen die Anwendung nicht ausführen, um die Bewertung durchzuführen
Nachteile:
Kann Code kennzeichnen, der existiert, aber nie in der Produktion ausgeführt wird
Erfordert Zugriff auf den vollständigen Quellcode der Anwendung
Eingeschränkte Fähigkeit, dynamisch erstellte Abfragen zu analysieren
Um optimale Ergebnisse zu erzielen, empfehlen wir, wenn möglich beide Bewertungsmethoden zu verwenden, um sich vor der Migration ein vollständiges Bild der Kompatibilitätsprobleme zu machen.
Erkennung von Workloads
Die Migration von MongoDB zu Amazon DocumentDB erfordert ein gründliches Verständnis der bestehenden Datenbank-Arbeitslast. Bei der Workload-Erkennung werden Ihre Datenbanknutzungsmuster, Datenstrukturen, Abfrageleistung und Betriebsabhängigkeiten analysiert, um einen reibungslosen Übergang mit minimalen Unterbrechungen sicherzustellen. In diesem Abschnitt werden die wichtigsten Schritte beschrieben, die bei der Workload-Erkennung erforderlich sind, um eine effektive Migration von MongoDB zu Amazon DocumentDB zu ermöglichen.
Themen
Bewertung der bestehenden MongoDB-Bereitstellung
Vor der Migration ist es wichtig, die aktuelle MongoDB-Umgebung zu evaluieren, einschließlich:
Cluster-Architektur — Identifizieren Sie die Anzahl der Knoten, Replikatgruppen und Sharding-Konfigurationen. Bei der Migration von MongoDB zu Amazon DocumentDB ist es wichtig, Ihre MongoDB-Sharding-Konfiguration zu verstehen, da Amazon DocumentDB kein benutzergesteuertes Sharding unterstützt. Für Anwendungen, die für eine Shard-MongoDB-Umgebung entwickelt wurden, müssen architektonische Änderungen vorgenommen werden, da Amazon DocumentDB mit seiner speicherbasierten Architektur einen anderen Skalierungsansatz verwendet. Bei der Umstellung auf Amazon DocumentDB müssen Sie Ihre Datenverteilungsstrategie anpassen und möglicherweise gemeinsam genutzte Sammlungen konsolidieren.
Speicher und Datenvolumen — Messen Sie die Gesamtdatengröße und Indexgröße Ihres Clusters. Ergänzen Sie dies mit dem Oplog-Überprüfungstool
, um Schreibmuster und die Geschwindigkeit des Datenwachstums zu verstehen. Weitere Informationen zur Dimensionierung Ihres Clusters finden Sie unterDimensionierung der Instanzen. Workload-Muster — Analysieren Sie den Lese- und Schreibdurchsatz, die Häufigkeit der Abfrageausführung und die Indexierungseffizienz.
Betriebliche Abhängigkeiten — Dokumentieren Sie alle Anwendungen, Dienste und Integrationen, die auf MongoDB basieren.
Identifizieren von Unterschieden im Datenmodell
Obwohl Amazon DocumentDB MongoDB-kompatibel ist, gibt es Unterschiede bei den unterstützten Funktionen, wie z. B.:
Transaktionen — Amazon DocumentDB unterstützt ACID-Transaktionen, jedoch mit einigenEinschränkungen.
Schemadesign — Stellen Sie sicher, dass Dokumentstrukturen, eingebettete Dokumente und Verweise den Best Practices von Amazon DocumentDB
entsprechen.
Abfrage- und Leistungsanalyse
Das Verständnis des Abfrageverhaltens hilft bei der Optimierung der Leistung bei der Migration und nach der Migration. Zu den wichtigsten zu analysierenden Bereichen gehören:
Langsame Abfragen — Identifizieren Sie Abfragen mit hoher Ausführungszeit mithilfe der Profiling-Tools von MongoDB.
Abfragemuster — Kategorisieren Sie gängige Abfragetypen, einschließlich CRUD-Operationen und -Aggregationen.
Indexnutzung — Beurteilen Sie, ob Indizes in Amazon DocumentDB effektiv genutzt werden oder optimiert werden müssen. Verwenden Sie die
$indexStats
Aggregationspipeline-Phase in Kombination mit derexplain()
Methode für Ihre kritischen Abfragen, um die Indexnutzung zu bewerten und die Leistung in Amazon DocumentDB zu optimieren. Beginnen Sie mit der Ausführungdb.collection.aggregate([{$indexStats{}}])
, um zu ermitteln, welche Indizes verwendet werden. Sie können detailliertere Analysen durchführen, indem Sie Ihre häufigsten Abfragen mitexplainPlan
ausführen.Parallelität und Verteilung der Arbeitslast — Bewerten Sie Lese- und Schreibverhältnisse, Verbindungspooling und Leistungsengpässe.
Überprüfung der Sicherheit und Zugriffskontrolle
Authentifizierung und Autorisierung
MongoDB RBAC zu Amazon DocumentDB IAM und RBAC — Ordnen Sie die rollenbasierten Zugriffskontrollbenutzer und Rollen von MongoDB AWS Identity and Access Management (IAM) -Richtlinien und Amazon DocumentDB SCRAM-Authentifizierungsbenutzern zu.
Strategie zur Benutzermigration — Planen Sie die Migration von Datenbankbenutzern, benutzerdefinierten Rollen und Rechten zu den von Amazon DocumentDB unterstützten Authentifizierungsmechanismen.
Rechteunterschiede — Identifizieren Sie MongoDB-Rechte ohne direkte Amazon DocumentDB DocumentDB-Entsprechungen (z. B. Clusterverwaltungsrollen).
Anwendungsauthentifizierung — Aktualisieren Sie die Verbindungszeichenfolgen und die Verwaltung der Anmeldeinformationen für die Passwortrichtlinien von Amazon DocumentDB. Sie können den Secrets Manager verwenden, um Ihre Anmeldeinformationen zu speichern und Passwörter zu wechseln.
Verwaltung von Dienstkonten — Richten Sie Prozesse für die Verwaltung der Anmeldeinformationen für Dienstkonten in ein AWS Secrets Manager.
Implementierung der geringsten Rechte — Überprüfen und verfeinern Sie die Zugriffskontrollen, um die Prinzipien der geringsten Rechte in der neuen Umgebung zu implementieren.
Verschlüsselung
Stellen Sie sicher, dass die Verschlüsselung im Ruhezustand und bei der Übertragung den Compliance-Anforderungen entspricht.
Netzwerkkonfiguration
Planen Sie die Einrichtung von Virtual Private Cloud (VPC) und die Regeln für Sicherheitsgruppen.
Überlegungen zum Betrieb und zur Überwachung
Um die Zuverlässigkeit des Systems zu gewährleisten, sollte die Workload-Erkennung auch Folgendes beinhalten:
Backup- und Wiederherstellungsstrategie — Evaluieren Sie bestehende Backup-Methoden und die Backup-Funktionen von Amazon DocumentDB.
AWS Backup Integration — Nutzen Sie das zentralisierte Backup-Management AWS Backup für alle AWS Dienste, einschließlich Amazon DocumentDB.
CloudWatch Metriken — Ordnen MongoDB MongoDB-Überwachungsmetriken Amazon CloudWatch DocumentDB-Metriken für CPU, Arbeitsspeicher, Verbindungen und Speicher zu.
Performance Insights — Implementieren Sie Amazon DocumentDB Performance Insights, um die Datenbanklast zu visualisieren und Leistungsprobleme mit detaillierten Abfrageanalysen zu analysieren.
Profiler — Konfigurieren Sie den Amazon DocumentDB DocumentDB-Profiler für die Erfassung langsam laufender Vorgänge (ähnlich dem Profiler von MongoDB, jedoch mit Amazon DocumentDB-spezifischen Einstellungen).
Die Aktivierung erfolgt über Parametergruppen mit entsprechenden Schwellenwerten.
Analysieren Sie Profiler-Daten, um Optimierungsmöglichkeiten zu identifizieren
CloudWatch Ereignisse — Richten Sie eine ereignisgesteuerte Überwachung für Amazon DocumentDB-Clusterereignisse ein.
Konfigurieren Sie Benachrichtigungen für Backup-Ereignisse, Wartungsfenster und Failover.
Integrieren Sie Amazon SNS für Benachrichtigungen und automatische AWS Lambda Antworten.
Audit-Protokollierung — Planen Sie die Konfiguration der Audit-Protokollierung ein, um Benutzeraktivitäten und sicherheitsrelevante Ereignisse nachzuverfolgen.
Verbesserte Überwachung — Ermöglicht eine erweiterte Überwachung detaillierter Messdaten auf Betriebssystemebene in Intervallen von 1 Sekunde.
Index-Migration
Bei der Migration von MongoDB zu Amazon DocumentDB werden nicht nur Daten, sondern auch Indizes übertragen, um die Abfrageleistung aufrechtzuerhalten und den Datenbankbetrieb zu optimieren. In diesem Abschnitt wird der detaillierte step-by-step Prozess für die Migration von Indizes von MongoDB zu Amazon DocumentDB beschrieben, wobei Kompatibilität und Effizienz gewährleistet werden.
Verwenden des Amazon DocumentDB DocumentDB-Indextools
Klonen Sie das Index-Tool
git clone https://github.com/aws-samples/amazon-documentdb-tools.git cd amazon-documentdb-tools/index-tool
pip install -r requirements.txt
Indizes aus MongoDB exportieren (wenn Sie von MongoDB migrieren)
python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir mongodb_index_export --uri 'mongodb://localhost:27017'
Indizes aus Amazon DocumentDB exportieren (wenn Sie von Amazon DocumentDB migrieren)
python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir docdb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'
Indizes importieren
python3 migrationtools/documentdb_index_tool.py --restore-indexes --skip-incompatible --dir mongodb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'
Überprüfen Sie die Indizes
python3 migrationtools/documentdb_index_tool.py --show-issues --dir mongodb_index_export
Benutzermigration
Die Migration von Benutzern von MongoDB zu Amazon DocumentDB ist für die Aufrechterhaltung der Zugriffskontrolle, Authentifizierung und Datenbanksicherheit unerlässlich. In diesem Abschnitt werden detaillierte Schritte zur erfolgreichen Migration von MongoDB-Benutzern unter Beibehaltung ihrer Rollen und Berechtigungen mithilfe des Amazon DocumentDB DocumentDB-Export-Benutzertools beschrieben.
Verwenden des Amazon DocumentDB DocumentDB-Tools zum Exportieren von Benutzern
Der Export Users tool
Voraussetzungen
# Clone the repository git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/export-users
# Install required dependencies pip install pymongo
Schritt 1: Benutzer und Rollen exportieren
# Export users and roles to JavaScript files python3 docdbExportUsers.py \ --users-file mongodb-users.js \ --roles-file mongodb-roles.js \ --uri "mongodb://admin:password@source-host:27017/"
Schritt 2: Bearbeiten Sie die Benutzerdatei
// Example of how to update the users.js file // Find each user creation statement and add the password db.getSiblingDB("admin").createUser({ user: "appuser", // Add password here pwd: "newpassword", roles: [ { role: "readWrite", db: "mydb" } ] })
Schritt 3: Benutzerdefinierte Rollen in Amazon DocumentDB wiederherstellen
# Import roles first mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-roles.js
Schritt 4: Benutzer in Amazon DocumentDB wiederherstellen
# Import users after roles are created mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-users.js
Wichtige Hinweise
Passwörter werden aus Sicherheitsgründen nicht exportiert und müssen manuell zur Datei users.js hinzugefügt werden.
Rollen müssen vor den Benutzern importiert werden, um eine korrekte Rollenzuweisung sicherzustellen.
Das Tool generiert JavaScript Dateien, die direkt mit der Mongo-Shell ausgeführt werden können.
Benutzerdefinierte Rollen und ihre Rechte bleiben während der Migration erhalten.
Dieser Ansatz ermöglicht die Überprüfung und Änderung der Benutzerberechtigungen vor dem Import.
Diese Methode bietet einen sicheren und flexiblen Ansatz für die Migration von Benutzern und Rollen von MongoDB zu Amazon DocumentDB und ermöglicht gleichzeitig das Zurücksetzen von Kennwörtern während des Migrationsprozesses.
Datenmigrationen
Themen
Online-Migration
Dieser Abschnitt enthält detaillierte Schritte zur Durchführung einer Online-Migration von MongoDB zu Amazon DocumentDB, um minimale Ausfallzeiten und kontinuierliche Replikation AWS DMS zu ermöglichen. Zunächst richten Sie einen Amazon DocumentDB-Cluster als Ziel ein und stellen sicher, dass Ihre MongoDB-Instance ordnungsgemäß als Quelle konfiguriert ist. In der Regel ist für die Erfassung von Change Data Capture ein Replikat-Set-Modus erforderlich. Als Nächstes erstellen Sie eine DMS-Replikationsinstanz und definieren Quell- und Zielendpunkte mit den erforderlichen Verbindungsdetails. Nach der Validierung der Endpunkte konfigurieren und starten Sie eine Migrationsaufgabe, die das vollständige Laden von Daten, eine laufende Replikation oder beides umfassen kann.
Ziel konfigurieren (Amazon DocumentDB)
Anmerkung
Wenn Sie bereits einen Amazon DocumentDB-Cluster für die Migration bereitgestellt haben, können Sie diesen Schritt überspringen.
Erstellen Sie eine benutzerdefinierte Parametergruppe
Informationen zu den AWS Management Console AWS CLI Oder-Verfahren finden Sie unterAmazon DocumentDB-Cluster-Parametergruppen erstellen.
Erstellen Sie einen Amazon DocumentDB-Cluster
Anmerkung
In diesem Handbuch werden zwar weitere Verfahren zum Erstellen eines Amazon DocumentDB-Clusters beschrieben, die Schritte in diesem Abschnitt beziehen sich jedoch speziell auf die Aufgabe, große Datenmengen auf einen neuen Cluster zu migrieren.
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon DocumentDB DocumentDB-Konsole unter https://console.aws.amazon.com/docdb
. Klicken Sie im Navigationsbereich auf Cluster.
Tipp
Wenn der Navigationsbereich auf der linken Seite des Bildschirms nicht angezeigt wird, wählen Sie links oben auf der Seite das Menüsymbol (
) aus.
Wählen Sie in der Amazon DocumentDB-Managementkonsole unter Clusters die Option Create aus.
Wählen Sie auf der Seite Amazon DocumentDB-Cluster erstellen im Abschnitt Clustertyp die Option Instance-based cluster (dies ist die Standardoption).
Gehen Sie im Abschnitt Cluster-Konfiguration wie folgt vor:
Geben Sie als Cluster-ID einen eindeutigen Namen ein, z.
mydocdbcluster
B. Beachten Sie, dass die Konsole alle Clusternamen unabhängig von der Art der Eingabe in Kleinbuchstaben ändert.Wählen Sie für Engine-Version 5.0.0 aus.
Lassen Sie im Abschnitt Cluster-Speicherkonfiguration die Standardeinstellung von Amazon DocumentDB unverändert (dies ist die Standardoption).
Gehen Sie im Abschnitt Instanzkonfiguration wie folgt vor:
Wählen Sie für DB-Instance-Klasse die Option Speicheroptimierte Klassen (einschließlich R-Klassen) aus (dies ist die Standardeinstellung).
Wählen Sie für Instance-Klasse eine Instance-Klasse aus, die auf der Arbeitslast basiert. Zum Beispiel:
db.r6g.large: für kleinere Workloads
db.r6g.4xlarge: für größere Workloads
Als bewährte Methode empfehlen wir, eine möglichst große Instance zu wählen, um einen optimalen Durchsatz bei Volllast zu erzielen, und sie nach Abschluss der Migration herunterzuskalieren.
Wählen Sie für Anzahl der Instanzen die Option 1 Instanz aus. Die Auswahl einer Instanz trägt zur Kostenminimierung bei. Wir empfehlen, dass Sie nach Abschluss der Volllastmigration auf drei Instanzen skalieren, um eine hohe Verfügbarkeit zu gewährleisten.
Geben Sie im Abschnitt Authentifizierung einen Benutzernamen für den Hauptbenutzer ein und wählen Sie dann Selbstverwaltet aus. Geben Sie ein Passwort ein und bestätigen Sie es.
Wählen Sie im Abschnitt Netzwerkeinstellungen eine VPC- und Subnetzgruppe aus und konfigurieren Sie dann die VPC-Sicherheitsgruppe. Stellen Sie sicher, dass Ihre Amazon DocumentDB-Sicherheitsgruppe eingehende Verbindungen von der Sicherheitsgruppe der DMS-Instance zulässt, indem Sie die Regeln für eingehenden Datenverkehr aktualisieren.
Aktivieren Sie im ncryption-at-rest Abschnitt E die Verschlüsselung (empfohlen) und wählen Sie einen KMS-Schlüssel aus oder geben Sie ihn ein.
Stellen Sie im Abschnitt Backup die Aufbewahrungsfrist für Backups ein (1—35 Tage).
Überprüfen Sie Ihre Konfiguration und wählen Sie Create cluster aus.
Die Bereitstellungszeit beträgt in der Regel zwischen 10 und 15 Minuten.
Quelle konfigurieren
MongoDB und Amazon DocumentDB können je nach Szenario beide als Migrationsquellen dienen:
MongoDB als Quelle — Häufig bei der Migration von einer lokalen oder selbstverwalteten MongoDB zu einer Amazon DocumentDB oder anderen Datenbankdiensten. AWS Erfordert die Ausführung im Replikatgruppenmodus mit einem ausreichend dimensionierten Oplog (stellen Sie sicher, dass es so dimensioniert ist, dass es alle Operationen bei Volllast aufnehmen kann), um die Erfassung von Änderungsdaten während der Migration zu unterstützen.
Amazon DocumentDB als Quelle — Wird in der Regel für regionsübergreifende Replikation, Versions-Upgrades oder die Migration zu anderen Datenbankdiensten wie MongoDB Atlas verwendet. ErfordertChange-Streams aktivieren, dass der
change_stream_log_retention_duration
Parameter in der Cluster-Parametergruppe festgelegt wird, um laufende Änderungen während der Migration zu erfassen. Stellen Sie sicher, dass Ihrechange_stream_log_retention_duration
Einstellung groß genug ist, um die Zeit abzudecken, die für den Vollladevorgang benötigt wird.
Bevor Sie mit der Migration beginnen, konfigurieren Sie Ihre Quelle so, dass der AWS DMS Zugriff möglich ist.
Erstellen Sie einen MongoDB-Benutzer mit den richtigen Berechtigungen:
db.createUser({ user: "
dmsUser
", pwd: "yourSecurePassword
", roles: [{ role: "readAnyDatabase", db: "admin" }] })
Konfigurieren Sie Netzwerk und Authentifizierung.
Gehen Sie bei der Konfiguration der Netzwerkkonnektivität für die Migration von MongoDB zu DMS wie folgt vor:
EC2-gehostete MongoDB-Quelle
Ändern Sie die EC2 Sicherheitsgruppe, um eingehenden Datenverkehr von der Sicherheitsgruppe der DMS-Replikationsinstanz zuzulassen.
Fügen Sie eine Regel für den TCP-Port 27017 (oder Ihren benutzerdefinierten MongoDB-Port) hinzu.
Verwenden Sie die Sicherheitsgruppen-ID der DMS-Replikationsinstanz als Quelle für eine präzise Zugriffskontrolle.
Stellen Sie sicher, dass das Subnetz der EC2 Instanz über eine Route zum Subnetz der DMS-Replikationsinstanz verfügt.
On-Premises-MongoDB-Quelle
Konfigurieren Sie Ihre Firewall so, dass eingehende Verbindungen von den öffentlichen IP-Adressen der DMS-Replikationsinstanz zugelassen werden.
Wenn Sie AWS Direct Connect oder ein VPN verwenden, stellen Sie sicher, dass das Routing zwischen Ihrem Netzwerk und der VPC, die die DMS-Instanz enthält, ordnungsgemäß ist.
Testen Sie die Konnektivität mit Telnet- oder NC-Befehlen vom DMS-Subnetz zu Ihrem MongoDB-Server.
MongoDB Atlas-Quelle
Fügen Sie IP-Adressen einer DMS-Replikationsinstanz zur IP-Zulassungsliste von MongoDB Atlas hinzu.
Konfigurieren Sie VPC-Peering zwischen AWS VPC und MongoDB Atlas VPC, wenn Atlas auf läuft. AWS
AWS PrivateLink Richten Sie private Konnektivität (Enterprise-Stufe) ein, wenn die Ausführung auf einem anderen Cloud-Anbieter erfolgt.
Erstellen Sie einen dedizierten Benutzer mit entsprechenden read/write Berechtigungen.
Verwenden Sie eine MongoDB Atlas-Verbindungszeichenfolge, bei der der SSL-Modus auf „verify-full“ gesetzt ist.
Stellen Sie sicher, dass die Protokollgröße für die Dauer der Migration ausreichend ist.
Amazon DocumentDB DocumentDB-Quelle
Konfigurieren Sie Ihre Amazon DocumentDB DocumentDB-Quellsicherheitsgruppe so, dass eingehender Datenverkehr von der Sicherheitsgruppe der DMS-Replikationsinstanz zugelassen wird.
Erstellen Sie eine DMS-Replikationsinstanz
Wir empfehlen die Verwendung von DMS Buddy
Wenn Sie es vorziehen, manuell zu konfigurieren, gehen Sie wie folgt vor:
Öffnen Sie die AWS DMS-Konsole und wählen Sie Create Replication instance.
Geben Sie Details zur Replikationsinstanz ein:
Instanzname: Wählen Sie einen eindeutigen Namen.
Instanzklasse: Wählen Sie basierend auf der Arbeitslast aus. Beispiel: dms.r5.large (kleine Workloads), dms.r5.4xlarge (große Workloads).
Motorversion: 3.5.4
Zugewiesener Speicher: Die Standardeinstellung ist 100 GB (bei Bedarf erhöhen). Dies hängt von der Größe des Dokuments updates/second und der Dauer des vollen Ladevorgangs ab.
Multi-AZ-Bereitstellung: Aktivieren Sie diese Option für hohe Verfügbarkeit, falls erforderlich.
Wählen Sie dieselbe VPC wie Amazon DocumentDB.
Stellen Sie sicher, dass Sicherheitsgruppen eingehenden Datenverkehr von der Quelle und Amazon DocumentDB zulassen.
Klicken Sie auf Replikationsinstanz erstellen und warten Sie, bis der Status verfügbar ist.
DMS-Endpunkte erstellen
Erstellen Sie einen Quellendpunkt
Für eine MongoDB-Quelle
Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder Replizieren und dann Endpoints aus.
Wählen Sie Endpunkt erstellen aus.
Wählen Sie auf der Seite Endpunkt erstellen die Option Quellendpunkt aus.
Gehen Sie im Abschnitt Endpunktkonfiguration wie folgt vor:
Geben Sie eine eindeutige und aussagekräftige Endpunkt-ID ein (z. B. „mongodb-source“).
Wählen Sie MongoDB als Quell-Engine.
Wählen Sie für Zugriff auf Endpunktdatenbank die Option Zugriffsinformationen manuell bereitstellen aus.
Geben Sie als Servername Ihren
MongoDB server DNS name/IP address
ein.Geben Sie für Port 27017 ein (Standard-MongoDB-Port).
Wählen Sie für den Authentifizierungsmodus den entsprechenden Modus für Ihre Anwendung (Passwort/SSL) aus (Standard ist Secrets Manager).
Wenn der Authentifizierungsmodus Passwort ist, geben Sie Folgendes an:
Benutzername und Passwort: Geben Sie MongoDB-Anmeldeinformationen ein.
Datenbankname: Ihr Quelldatenbankname.
Authentifizierungsmechanismus: SCRAM-SHA-1 (Standard) oder geeigneter Mechanismus
Behalten Sie für den Metadatenmodus die Standardeinstellung Dokument bei.
Zusätzliche Verbindungsattribute:
authSource=admin (wenn die Authentifizierungsdatenbank anders ist)
your-replica-set-namereplicaSet=< > (für CDC erforderlich)
Für eine Amazon DocumentDB DocumentDB-Quelle
Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder Replizieren und dann Endpoints aus.
Wählen Sie Endpunkt erstellen aus.
Wählen Sie auf der Seite Endpunkt erstellen die Option Quellendpunkt aus.
Gehen Sie im Abschnitt Endpunktkonfiguration wie folgt vor:
Geben Sie eine eindeutige und aussagekräftige Endpunkt-ID ein (z. B. „docdb-source“).
Wählen Sie Amazon DocumentDB als Quell-Engine.
Wählen Sie für Zugriff auf Endpunktdatenbank die Option Zugriffsinformationen manuell bereitstellen aus.
Geben Sie als Servername Ihren
source Amazon DocumentDB cluster endpoint
ein.Geben Sie für Port 27017 ein (Standardport von Amazon DocumentDB).
Wählen Sie für den SSL-Modus verify-full (empfohlen für Amazon DocumentDB).
Wählen Sie für CA Certificate das Amazon RDS-Root-CA-Zertifikat aus.
Wählen Sie für den Authentifizierungsmodus den entsprechenden Modus für Ihre Anwendung (Passwort/SSL) (Standard ist Secrets Manager).
Wenn der Authentifizierungsmodus Passwort ist, geben Sie Folgendes an:
Benutzername und Passwort: Geben Sie Ihre Amazon DocumentDB DocumentDB-Anmeldeinformationen ein.
Datenbankname: Ihr Quelldatenbankname.
Authentifizierungsmechanismus: SCRAM-SHA-1 (Standard) oder geeigneter Mechanismus
Behalten Sie für den Metadatenmodus die Standardeinstellung Dokument bei.
Einen Zielendpunkt erstellen (Amazon DocumentDB)
Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder Replizieren und anschließend Endpoints aus.
Wählen Sie Endpunkt erstellen aus.
Wählen Sie auf der Seite Endpunkt erstellen die Option Zielendpunkt aus.
Gehen Sie im Abschnitt Endpunktkonfiguration wie folgt vor:
Geben Sie eine eindeutige und aussagekräftige Endpunkt-ID ein (z. B. „docdb-target“).
Wählen Sie Amazon DocumentDB als Ziel-Engine.
Wählen Sie für Access to Endpoint Database die Methode aus, mit der Sie den Zugriff auf die Datenbank authentifizieren möchten:
Wenn Sie AWS Secrets Manager wählen, wählen Sie im Feld Secret das Geheimnis aus, in dem Sie Ihre Amazon DocumentDB DocumentDB-Anmeldeinformationen speichern.
Wenn Sie Zugangsinformationen manuell bereitstellen wählen:
Geben Sie als Servername Ihren ein
target Amazon DocumentDB cluster endpoint
.Geben Sie für Port 27017 ein (Standardport von Amazon DocumentDB).
Wählen Sie für den SSL-Modus verify-full (empfohlen für Amazon DocumentDB).
Laden Sie für CA Certificate das CA-Zertifikatspaket für die SSL-Verifizierung herunter und geben Sie es an.
Wählen Sie für den Authentifizierungsmodus den entsprechenden Modus für Ihre Anwendung (Passwort/SSL) (Standard ist Secrets Manager).
Wenn der Authentifizierungsmodus Passwort ist, geben Sie Folgendes an:
Benutzername und Passwort: Geben Sie Ihre Amazon DocumentDB DocumentDB-Anmeldeinformationen ein.
Datenbankname: Ihr Quelldatenbankname.
Authentifizierungsmechanismus: SCRAM-SHA-1 (Standard) oder geeigneter Mechanismus
Behalten Sie für den Metadatenmodus die Standardeinstellung Dokument bei.
Replikationsaufgabe erstellen
Wählen Sie in der DMS-Konsole im Navigationsbereich Migrieren oder replizieren und dann Aufgaben aus.
Wählen Sie Create task aus.
Gehen Sie auf der Seite Aufgabe erstellen im Abschnitt Aufgabenkonfiguration wie folgt vor:
Geben Sie eine eindeutige und aussagekräftige Task-ID ein (z. B. "mongodb-docdb-replication„).
Wählen Sie den Quellendpunkt, den Sie zuvor erstellt haben, im Dropdownmenü Quelldatenbank-Endpunkt aus.
Wählen Sie den Zielendpunkt, den Sie zuvor erstellt haben, im Dropdownmenü Zieldatenbank-Endpunkt aus.
Wählen Sie als Aufgabentyp die Option Migrieren und replizieren aus.
Gehen Sie im Abschnitt Einstellungen wie folgt vor:
Behalten Sie für den Target-Tabellenvorbereitungsmodus die Standardeinstellung bei.
Behalten Sie für Aufgabe nach Abschluss des vollständigen Ladevorgangs die Standardeinstellung bei.
Lassen Sie für LOB-Spalteneinstellungen die Einstellung Eingeschränkter LOB-Modus unverändert.
Behalten Sie für die Datenvalidierung die Standardeinstellung Ausschalten bei.
Aktivieren Sie für Aufgabenprotokolle das Kontrollkästchen CloudWatch Protokolle aktivieren.
Lassen Sie für Batch-optimiertes Anwenden die Standardeinstellung deaktiviert (aus).
Wählen Sie ganz oben im Bereich Aufgabeneinstellungen im Bearbeitungsmodus die Option JSON-Editor aus und legen Sie die folgenden Attribute fest:
{ "TargetMetadata": { "ParallelApplyThreads": 5 }, "FullLoadSettings": { "MaxFullLoadSubTasks": 16 } }
Fügen Sie im Abschnitt Tabellenzuordnungen eine neue Auswahlregel hinzu:
Fügen Sie als Schemaname die zu migrierende Quelldatenbank hinzu. Verwenden Sie%, um mehrere Datenbanken anzugeben.
Fügen Sie als Name der Schematabelle die Quellsammlung hinzu, die migriert werden soll. Verwenden Sie%, um mehrere Sammlungen anzugeben.
Behalten Sie für Aktion die Standardeinstellung Include bei
Fügen Sie für große Sammlungen (über 100 GB) die Regel für Tabelleneinstellungen hinzu:
Fügen Sie als Schemaname die zu migrierende Quelldatenbank hinzu. Verwenden Sie%, um mehrere Datenbanken anzugeben.
Fügen Sie als Name der Schematabelle die Quellsammlung hinzu, die migriert werden soll. Verwenden Sie%, um mehrere Sammlungen anzugeben.
Geben Sie für Anzahl der Partitionen den Wert 16 ein (sollte kleiner sein als
MaxFullLoadSubTask
).
Vergewissern Sie sich, dass die Option im Abschnitt „Bewertung vor der Migration“ ausgeschaltet ist.
Offline-Migration
In diesem Abschnitt wird der Prozess zur Durchführung einer Offline-Migration von einer selbstverwalteten MongoDB-Instance zu Amazon DocumentDB mithilfe nativer MongoDB-Tools beschrieben: und. mongodump
mongorestore
Voraussetzungen
Anforderungen an Source MongoDB
Zugriff auf die MongoDB-Quellinstanz mit entsprechenden Berechtigungen.
Installieren Sie
mongodump
. falls erforderlich (es wird während einer MongoDB-Installation installiert).Stellen Sie sicher, dass genügend Speicherplatz für die Dump-Dateien vorhanden ist.
Amazon DocumentDB DocumentDB-Anforderungen von Target
Stellen Sie sicher, dass Sie einen Amazon DocumentDB-Cluster bereitgestellt haben.
Stellen Sie sicher, dass sich eine EC2 Instance in derselben VPC wie Amazon DocumentDB befindet, um die Migration zu erleichtern.
Netzwerkkonnektivität muss zwischen Ihrer Quellumgebung und Amazon DocumentDB verfügbar sein.
mongorestore muss auf der EC2 Migrationsinstanz installiert sein.
Für den Zugriff auf Amazon DocumentDB müssen entsprechende IAM-Berechtigungen konfiguriert werden.
Allgemeine Anforderungen
AWS CLI muss konfiguriert sein (wenn AWS Dienste für die Zwischenspeicherung verwendet werden)
Für die Datenübertragung muss ausreichend Bandbreite verfügbar sein.
Das Zeitfenster für die Ausfallzeit sollte genehmigt werden (wenn Sie eine Live-Migration durchführen, sollten Sie andere Methoden in Betracht ziehen)
Bereiten Sie einen Amazon DocumentDB-Cluster vor
Erstellen Sie einen Amazon DocumentDB-Cluster in AWS:
Passen Sie eine Instance-Größe an, die auf Ihrer Arbeitslast basiert.
Konfigurieren Sie eine VPC, Subnetze und Sicherheitsgruppen.
Aktivieren Sie die erforderlichen Parameter über Parametergruppen.
Führen Sie den Datendump durch (Mongodump)
Wählen Sie eine der folgenden Optionen, um eine Dump-Datei zu erstellen:
Option 1: Einfach
mongodump -- uri="mongodb://
<source_user>
:<source_password>
@<source_host>
:<source_port>
/<database>
" -- out=/path/to/dumpOption 2: Bessere Steuerung und Leistung
mongodump \ --uri="mongodb://
<source_user>
:<source_password>
@<sourcehost>
:<source_port>
" \ --out=/path/to/dump \ --gzip \# Compress output --numParallelCollections=4 \# Parallel collections dump --ssl \# If using SSL --authenticationDatabase=admin \ # If auth is required --readPreference=secondaryPreferred # If replica setOption 3: Große Datenbanken
mongodump \ --host=
<source_host>
\ --port=<source_port>
\ --username=<source_user>
\ --password=<source_password>
\ --db=<specific_db>
\# Only dump specific DB --collection=<specific_collection>
\ # Only dump specific collection --query='{ "date": { "$gt": "2020-01-01" } }' \ # Filter documents --archive=/path/to/archive.gz \# Single archive output --gzip \ --ssl
Übertragen Sie Dumpdateien in die Wiederherstellungsumgebung
Wählen Sie eine geeignete Methode, die auf Ihrer Dump-Größe basiert:
Klein — Direkt auf Ihre Migrationsmaschine kopieren (EC2 Instanz, die Sie zuvor erstellt haben):
scp -r /path/to/dump user@migration-machine:/path/to/restore
Medium — Amazon S3 als Zwischenspeicher verwenden:
aws s3 cp --recursive /path/to/dump s3://your-bucket/mongodb-dump/
Groß — Bei sehr großen Datenbanken sollten Sie eine physische Übertragung in Betracht ziehen AWS DataSync .
Daten in Amazon DocumentDB wiederherstellen (mongorestore)
Bevor Sie mit dem Wiederherstellungsprozess beginnen, erstellen Sie die Indizes in Amazon DocumentDB. Sie können das Amazon DocumentDB Index-Tool
Wählen Sie eine der folgenden Optionen, um Daten wiederherzustellen:
Option 1: Grundlegende Wiederherstellung
mongorestore --uri="mongodb://
<docdb_user>
:<docdb_password>
@<docdb_endpoint>
:27017" /path/to/dump-
Option 2: Bessere Steuerung und Leistung
mongorestore \ --uri="mongodb://
<docdb_user>
:<docdb_password>
@<docdb_endpoint>
:27017" \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ # DocumentDB CA cert --gzip \# If dumped with gzip --numParallelCollections=4 \# Parallel restoration --numInsertionWorkersPerCollection=4 \# Parallel documents insertion --noIndexRestore \# skip indexes as they are pre-created /path/to/dump Option 3: Große Datenbanken oder spezifische Kontrollen
mongorestore \ --host=
<docdb_endpoint>
\ --port=27017 \ --username=<docdb_user>
\ --password=<docdb_password>
\ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ --archive=/path/to/archive.gz \# If using archive format --gzip \ --nsInclude="db1.*" \# Only restore specific namespaces --nsExclude="db1.sensitive_data" \ # Exclude specific collections if needed --noIndexRestore \# skip indexes as they are pre-created --writeConcern="{w: 'majority'}" # Ensure write durability
Überwachen
Dieser Abschnitt bietet einen detaillierten Überwachungsprozess, mit dem Sie den Fortschritt, die Leistung und den Zustand einer laufenden Migration aus folgenden Quellen verfolgen können:
MongoDB nach Amazon DocumentDB
or
Amazon DocumentDB zu Amazon DocumentDB
Die Schritte zur Überwachung gelten unabhängig von der Migrationsmethode (AWS DMS Mongodump/Mongorestore oder andere Tools).
AWS DMS Überwachung der Migration (falls zutreffend)
Überwachen Sie die folgenden wichtigen CloudWatch Kennzahlen:
Metriken zur Volllastphase
FullLoadThroughputBandwidthTarget— Netzwerkbandbreite (KB/Sekunde) bei Volllast
FullLoadThroughputRowsTarget— Anzahl der Ladevorgänge pro rows/documents Sekunde
FullLoadThroughputTablesTarget— Anzahl der tables/collections Abgeschlossenen pro Minute
FullLoadProgressPercent— Prozentsatz der abgeschlossenen Volllast
TablesLoaded— Anzahl der tables/collections erfolgreich geladenen
TablesLoading— Anzahl der tables/collections aktuell geladenen
TablesQueued— Anzahl der Personen, die tables/collections darauf warten, geladen zu werden
TablesErrored— Nummer tables/collections , die nicht geladen werden konnte
Metriken der CDC-Phase
CDCLatencyZiel — Zeitverzögerung (Sekunden) zwischen Quellenänderung und Zielanwendung
CDCLatencyQuelle — Zeitverzögerung (Sekunden) zwischen der Änderung an der Quelle und dem Lesen durch das DMS
CDCThroughputRowsTarget— Zeilen pro Sekunde, die während der laufenden Replikation angewendet werden
CDCThroughputBandwidthTarget— Netzwerkbandbreite (KB/Sekunde) während CDC
CDCIncomingÄnderungen — Anzahl der von der Quelle empfangenen Änderungsereignisse
CDCChangesMemoryTarget— Verwendeter Speicher (MB) zum Speichern von Änderungen auf der Zielseite
Metriken für Ressourcen
CPUUtilization— CPU-Auslastung der Replikationsinstanz
FreeableMemory— Verfügbarer Speicher auf der Replikationsinstanz
FreeStorageSpace— Verfügbarer Speicher auf der Replikationsinstanz
NetworkTransmitThroughput— Netzwerkdurchsatz für die Replikationsinstanz
NetworkReceiveThroughput— Netzwerkdurchsatz für die Replikationsinstanz
Metriken für Fehler
ErrorsCount— Gesamtzahl der Fehler während der Migration
TableErrorsCount— Anzahl der tabellenspezifischen Fehler
RecordsErrorsCount— Anzahl der datensatzspezifischen Fehler
Erstellen Sie CloudWatch Alarme für kritische Messwerte, z. B. CDCLatencyTarget
um Benachrichtigungen CPUUtilization
zu erhalten, wenn sich die Migrationsleistung verschlechtert.
DMS-Protokolle (Protokolle) CloudWatch
Gehen Sie zur Amazon CloudWatch Logs-Konsole.
Suchen Sie nach Ihrer Protokollgruppe und wählen Sie sie aus. Es wird ähnlich aussehen wie „dms-tasks —“.
Suchen Sie nach Protokollstreams, die möglicherweise Fehlerinformationen enthalten:
Streams mit „Fehler“ im Namen
Streams mit Aufgaben IDs - oder Endpunktnamen
Die neuesten Log-Streams zum Zeitpunkt Ihrer Migration
Suchen Sie in diesen Streams nach Schlüsselwörtern wie:
„Fehler“
„Ausnahme“
„gescheitert“
„Warnung“
Status der DMS-Aufgabe (verwendet AWS CLI)
aws dms describe-replication-tasks --filters Name=replication-task id,Values=
<task_id>
--query "ReplicationTasks[0].Status"
Erwarteter Statusfluss:
erstellen → bereit → läuft → stoppt → gestoppt (oder fehlgeschlagen)
Monitor mit docdb-dashboarder
Das docdb-dashboarder
Tool bietet eine umfassende Überwachung für Amazon DocumentDB-Cluster, indem es automatisch CloudWatch Dashboards mit wichtigen Leistungskennzahlen generiert. Diese Dashboards zeigen wichtige Metriken auf Cluster-Ebene (Replikatverzögerung, Betriebszähler), Metriken auf Instance-Ebene (CPU, Arbeitsspeicher, Verbindungen) und Speichermetriken (Volumennutzung, Backup-Speicher). Für Migrationsszenarien bietet das Tool spezielle Dashboards, die den Migrationsfortschritt anhand von Kennzahlen wie CDC-Replikationsverzögerung und Betriebsraten verfolgen. Die Dashboards können mehrere Cluster gleichzeitig überwachen und bieten Unterstützung für NVMe Instanzen, die von einem System unterstützt werden. Durch die Visualisierung dieser Kennzahlen können Teams proaktiv Leistungsengpässe erkennen, die Ressourcenzuweisung optimieren und den reibungslosen Betrieb ihrer Amazon DocumentDB DocumentDB-Bereitstellungen sicherstellen. Das Tool macht die manuelle Erstellung von Dashboards überflüssig und bietet gleichzeitig eine konsistente Überwachung in allen Umgebungen. Anweisungen zur Einrichtung und erweiterte Konfigurationsoptionen finden Sie im Amazon DocumentDB Dashboarder
Validierung
Themen
Dieser Abschnitt enthält einen detaillierten Validierungsprozess zur Sicherstellung der Datenkonsistenz, Integrität und Anwendungskompatibilität nach der Migration von:
MongoDB nach Amazon DocumentDB
or
Amazon DocumentDB zu Amazon DocumentDB
Die Validierungsschritte gelten unabhängig von der Migrationsmethode (AWS DMS mongodump/mongorestore oder andere Tools).
Checkliste für die Validierung
Stellen Sie sicher, dass die Anzahl der Dokumente in jeder Sammlung zwischen Quelle und Ziel übereinstimmt:
MongoDB-Quelle
mongo --host
<source_host>
--port<port>
--username<user>
-- password<password>
--eval "db.<collection>
.count()"
Amazon DocumentDB DocumentDB-Ziel
mongo --host
<target_host>
--port<port>
--username<user>
-- password<password>
--eval "db.<collection>
.count()"
Schema- und Indexvalidierung
Stellen Sie sicher, dass:
Alle Sammlungen sind im Ziel vorhanden.
Indizes werden korrekt repliziert.
Schemadefinitionen (sofern erzwungen) sind identisch.
Überprüfen Sie die Sammlungen (Quelle im Vergleich zu Ziel)
mongo --host
<source_host>
--eval "show collections" mongo --host<target_host>
--ssl --eval "show collections"
Überprüfen Sie die Indizes (Quelle im Vergleich zu Ziel)
mongo --host
<source_host>
--eval" db.<collection>
.getIndexes()" mongo --host<target_host>
--ssl –eval" db.<collection>
.getIndexes()"
Vergleichen Sie die Liste der Sammlungen, um sicherzustellen, dass keine Sammlungen fehlen oder zusätzliche Sammlungen vorhanden sind.
Überprüfen Sie Indizes, indem Sie Indexnamen, Schlüsseldefinitionen, eindeutige Einschränkungen und TTL-Indizes (falls vorhanden) überprüfen.
Überprüfen Sie die Schemavalidierungsregeln (wenn Sie die Schemavalidierung in MongoDB verwenden)
mongo --host
<source_host>
--eval" db.getCollectionInfos({name: '<collection>
'}) [0].options.validator" mongo --host<target_host>
--ssl –eval" db.getCollectionInfos({name: '<collection>
'})[0].options.validator"
Datenerhebung und Validierung auf Feldebene
Sie können Dokumente nach dem Zufallsprinzip auswählen und Felder zwischen Quelle und Ziel vergleichen.
Manuelle Probenahme
Ruft fünf zufällige Dokumente ab (Quelle):
mongo --host
<source_host>
--eval "db.<collection>
.aggregate([{ \$sample: { size: 5 } }])"
Ruft dasselbe Dokument ab IDs (Ziel):
mongo --host
<target_host>
--ssl –eval "db.<collection>
.find({ _id: { \$in: [<list_of_ids>
] } })"
Automatische Probenahme
import pymongo # Connect to source and target source_client = pymongo.MongoClient("
<source_uri>
") target_client = pymongo.MongoClient("<target_uri>
", ssl=True) source_db = source_client["<db_name>
"] target_db = target_client["<db_name>
"] # Compare 100 random documents for doc in source_db.<collection>
.aggregate([{ "$sample": { "size": 100 } }]): target_doc = target_db.<collection>
.find_one({ "_id": doc["_id"] }) if target_doc != doc: print(f"❌ Mismatch in _id: {doc['_id']}") else: print(f"✅ Match: {doc['_id']}")
Validierung mit einem DataDiffer Tool
Das DataDiffer Tool
Voraussetzungen
Vor der Installation des DataDiffer Tools müssen die folgenden Voraussetzungen erfüllt sein:
Python 3.7+
PyMongo Bibliothek
Netzwerkkonnektivität sowohl zu Quell- als auch zu Amazon DocumentDB DocumentDB-Zielclustern
Einrichtung und Installation
Klonen Sie das Repository und navigieren Sie zum Verzeichnis DataDiffer
git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/data-differ
Installieren Sie die erforderlichen Abhängigkeiten
pip install -r requirements.txt
Datenvalidierung wird ausgeführt
Erstellen Sie eine Konfigurationsdatei (z. B. config.json) mit Verbindungsdetails
{ "source": { "uri": "mongodb://username:password@source-mongodb- host:27017/?replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "target": { "uri": "mongodb://username:password@target-docdb- cluster.region.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global- bundle.pem&replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "options": { "batch_size": 1000, "threads": 4, "sample_size": 0, "verbose": true } }
Führen Sie das Tool aus DataDiffer
python differ.py --config config.json
Verwenden Sie bei großen Sammlungen Stichproben, um eine Teilmenge von Daten zu validieren
python differ.py --config config.json --sample-size 10000
Um mehrere Sammlungen zu validieren, erstellen Sie separate Konfigurationsdateien oder verwenden Sie den Batch-Modus
python differ.py --batch-config batch_config.json
Ergebnisse interpretieren
Das Tool gibt Folgendes aus:
Gesamtzahl der Dokumente in Quell- und Zieldokument
Anzahl der übereinstimmenden Dokumente
Anzahl der fehlenden Dokumente
Anzahl der Dokumente mit Unterschieden
Detaillierter Bericht über Unterschiede (falls vorhanden)
Bewährte Methoden
Im Folgenden finden Sie bewährte Methoden für die Verwendung des DataDiffer Tools:
Schrittweise ausführen — Überprüfen Sie zunächst die Anzahl der Dokumente, nehmen Sie dann Stichproben für wichtige Dokumente vor und führen Sie abschließend, falls erforderlich, einen vollständigen Vergleich durch.
Suchen Sie nach Schemaunterschieden — Amazon DocumentDB hat im Vergleich zu MongoDB einige Einschränkungen. Das Tool hebt inkompatible Datentypen oder Strukturen hervor.
In Ruhephasen validieren — Führen Sie die Validierung aus, wenn die Schreibvorgänge minimal sind, um die Konsistenz zu gewährleisten.
Überwachen Sie die Ressourcennutzung — Der Vergleichsprozess kann ressourcenintensiv sein. Passen Sie die Chargengröße und die Fadenzahl entsprechend an.
Indizes validieren — Stellen Sie nach der Datenvalidierung sicher, dass alle erforderlichen Indizes auf dem Amazon DocumentDB DocumentDB-Zielcluster erstellt wurden.
Validierungsergebnisse dokumentieren — Führen Sie als Teil Ihrer Migrationsdokumentation eine Aufzeichnung der Validierungsergebnisse für jede Sammlung.