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.
Babelfish als Ziel verwenden für AWS Database Migration Service
Sie können Daten von einer Microsoft SQL Server-Quelldatenbank zu einem Babelfish-Ziel migrieren, indem Sie. AWS Database Migration Service
Babelfish for Aurora PostgreSQL erweitert Ihre Amazon Aurora PostgreSQL kompatible Edition-Datenbank um die Möglichkeit, Datenbankverbindungen von Microsoft SQL Server-Clients zu akzeptieren. Dadurch können Anwendungen, die ursprünglich für SQL Server entwickelt wurden, direkt mit Aurora PostgreSQL arbeiten – mit nur wenigen Codeänderungen im Vergleich zu einer herkömmlichen Migration und ohne Änderung der Datenbanktreiber.
Informationen zu Versionen von Babelfish, die als Ziel AWS DMS unterstützt werden, finden Sie unter. Ziele für AWS DMS Frühere Versionen von Babelfish in Aurora PostgreSQL erfordern ein Upgrade, damit der Babelfish-Endpunkt verwendet werden kann.
Anmerkung
Der Aurora-PostgreSQL-Zielendpunkt ist die bevorzugte Methode für die Migration von Daten zu Babelfish. Weitere Informationen finden Sie unter Verwenden von Babelfish für Aurora PostgreSQL als Ziel.
Informationen zur Verwendung von Babelfish als Datenbank-Endpunkt finden Sie unter Babelfish for Aurora PostgreSQL im Benutzerhandbuch für Amazon Aurora.
Voraussetzungen für die Verwendung von Babelfish als Ziel für AWS DMS
Sie müssen Ihre Tabellen erstellen, bevor Sie Daten migrieren, um sicherzustellen, dass die richtigen Datentypen und Tabellenmetadaten AWS DMS verwendet werden. Wenn Sie Ihre Tabellen nicht auf dem Ziel erstellen, bevor Sie die Migration ausführen, werden die Tabellen AWS DMS möglicherweise mit falschen Datentypen und Berechtigungen erstellt. AWS DMS Erstellt beispielsweise stattdessen eine Zeitstempelspalte als Binärdatei (8) und bietet nicht die erwartete Timestamp-/Rowversion-Funktionalität.
So können Sie Ihre Tabellen vor der Migration vorbereiten und erstellen
-
Führen Sie Create-Table-DDL-Anweisungen aus, die alle eindeutigen Einschränkungen, Primärschlüssel oder Standardeinschränkungen enthalten.
Fügen Sie keine Einschränkungen hinsichtlich Fremdschlüsseln und keine DDL-Anweisungen für Objekte wie Ansichten, gespeicherte Prozeduren, Funktionen oder Auslöser hinzu. Sie können sie nach der Migration Ihrer Quelldatenbank anwenden.
-
Identifizieren Sie alle Identitätsspalten, berechneten Spalten oder Spalten mit den Datentypen rowversion oder timestamp für Ihre Tabellen. Erstellen Sie anschließend die erforderlichen Transformationsregeln, um bekannte Probleme bei der Ausführung der Migrationsaufgabe zu beheben. Weitere Informationen finden Sie unter Transformationsregeln und Aktionen.
-
Identifizieren Sie Spalten mit Datentypen, die Babelfish nicht unterstützt. Ändern Sie dann die betroffenen Spalten in der Zieltabelle, sodass sie unterstützte Datentypen verwenden, oder erstellen Sie eine Transformationsregel, durch die sie während der Migrationsaufgabe entfernt werden. Weitere Informationen finden Sie unter Transformationsregeln und Aktionen.
In der folgenden Tabelle sind Quelldatentypen, die von Babelfish nicht unterstützt werden, und der entsprechende empfohlene Zieldatentyp aufgeführt.
Quelldatentyp
Empfohlener Babelfish-Datentyp
HEIRARCHYID
NVARCHAR(250)
GEOMETRY
VARCHAR(MAX)
GEOGRAPHY
VARCHAR(MAX)
So legen Sie die Aurora-Kapazitätseinheiten (ACUs) für Ihre Aurora PostgreSQL Serverless V2-Quelldatenbank fest
Sie können die Leistung Ihrer AWS DMS Migrationsaufgabe vor der Ausführung verbessern, indem Sie den ACU-Mindestwert festlegen.
-
Stellen Sie im Fenster mit den Kapazitätseinstellungen von Severless v2 Minimum ACUs auf
2
oder eine angemessene Stufe für Ihren Aurora-DB-Cluster ein.Weitere Informationen zum Festlegen von Aurora-Kapazitätseinheiten finden Sie unter Auswählen des Aurora-Serverless-v2-Kapazitätsbereichs für einen Aurora-Cluster im Benutzerhandbuch für Amazon Aurora.
Nachdem Sie Ihre AWS DMS Migrationsaufgabe ausgeführt haben, können Sie den Mindestwert Ihres ACUs auf ein angemessenes Niveau für Ihre Aurora PostgreSQL Serverless V2-Quelldatenbank zurücksetzen.
Sicherheitsanforderungen bei der Verwendung von Babelfish als Ziel für AWS Database Migration Service
Im Folgenden werden die Sicherheitsanforderungen für die Verwendung AWS DMS mit einem Babelfish-Target beschrieben:
-
Der Name des Administrator-Benutzers (Admin-Benutzer), mit dem die Datenbank erstellt wurde.
-
PSQL-Login und -Benutzer mit den ausreichenden SELECT-, INSERT-, UPDATE-, DELETE- und REFERENCES-Berechtigungen.
Benutzerberechtigungen für die Verwendung von Babelfish als Ziel für AWS DMS
Wichtig
Aus Sicherheitsgründen muss das für die Datenmigration verwendete Benutzerkonto ein registrierter Benutzer in einer Babelfish-Zieldatenbank sein.
Ihr Babelfish-Zielendpunkt erfordert Mindestbenutzerberechtigungen, um eine AWS DMS -Migration ausführen zu können.
So erstellen Sie einen Login und einen Transact-SQL (T-SQL)-Benutzer mit geringen Berechtigungen
-
Erstellen Sie einen Login und ein Passwort für die Verbindung mit dem Server.
CREATE LOGIN dms_user WITH PASSWORD =
'password'
; GO -
Erstellen Sie die virtuelle Datenbank für Ihren Babelfish-Cluster.
CREATE DATABASE my_database; GO
-
Erstellen Sie den T-SQL-Benutzer für Ihre Zieldatenbank.
USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
-
Erteilen Sie für jede Tabelle in Ihrer Babelfish-Datenbank GRANT-Berechtigungen für die Tabellen.
GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;
Einschränkungen bei der Verwendung von Babelfish als Ziel für AWS Database Migration Service
Die folgenden Einschränkungen gelten, wenn Sie eine Babelfish-Datenbank als Ziel für AWS DMS verwenden:
-
Es wird nur der Tabellenvorbereitungsmodus „Nichts unternehmen“ unterstützt.
-
Der Datentyp ROWVERSION erfordert eine Tabellenzuordnungsregel, die den Spaltennamen während der Migrationsaufgabe aus der Tabelle entfernt.
-
Der Datentyp sql_variant wird nicht unterstützt.
-
Der vollständige LOB-Modus wird unterstützt. Für die Verwendung von SQL Server als Quellendpunkt muss die Einstellung
ForceFullLob=True
für das SQL Server-Endpunkt-Verbindungsattribut festgelegt werden, damit LOBs sie zum Zielendpunkt migriert werden kann. -
Für Einstellungen von Replikationsaufgaben gelten die folgenden Einschränkungen:
{ "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. }
-
Die Datentypen TIME (7), DATETIME2 (7) und DATETIMEOFFSET (7) in Babelfish begrenzen den Genauigkeitswert für den Sekundenanteil der Zeit auf 6 Ziffern. Ziehen Sie die Verwendung des Genauigkeitswerts 6 für Ihre Zieltabelle in Betracht, wenn Sie diese Datentypen verwenden. Bei Babelfish-Versionen 2.2.0 und höher ist bei Verwendung von TIME (7) und DATETIME2 (7) die siebte Stelle der Genauigkeit immer Null.
-
Im Modus DO_NOTHING prüft DMS, ob die Tabelle bereits vorhanden ist. Wenn die Tabelle nicht im Zielschema vorhanden ist, erstellt DMS die Tabelle auf Grundlage der Quelltabellendefinition und ordnet alle benutzerdefinierten Datentypen ihrem Basisdatentyp zu.
-
Eine AWS DMS Migrationsaufgabe zu einem Babelfish-Ziel unterstützt keine Tabellen mit Spalten, die die Datentypen ROWVERSION oder TIMESTAMP verwenden. Sie können eine Tabellenzuordnungsregel verwenden, die den Spaltennamen während der Übertragung aus der Tabelle entfernt. Im folgenden Beispiel für eine Transformationsregel wird die Tabelle mit dem Namen
Actor
in Ihrer Quelle so transformiert, dass alle Spalten, die mit den Zeichencol
beginnen, aus der TabelleActor
in Ihrem Ziel entfernt werden.{ "rules": [{ "rule-type": "selection",is "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
-
Für Tabellen mit Identitäts- oder berechneten Spalten, bei denen die Zieltabellen Namen mit gemischter Groß- und Kleinschreibung wie Kategorien verwenden, müssen Sie eine Transformationsregelaktion erstellen, die die Tabellennamen für Ihre DMS-Aufgabe in Kleinbuchstaben umwandelt. Das folgende Beispiel zeigt, wie die Transformationsregelaktion „Kleinbuchstaben erstellen“ mithilfe der Konsole erstellt wird. AWS DMS Weitere Informationen finden Sie unter Transformationsregeln und Aktionen.
-
Vor Babelfish Version 2.2.0 beschränkte DMS die Anzahl der Spalten, die Sie auf einen Babelfish-Zielendpunkt replizieren konnten, auf zwanzig (20) Spalten. Mit Babelfish 2.2.0 wurde das Limit auf 100 Spalten erhöht. Mit den Babelfish-Versionen 2.4.0 und höher wird die Anzahl der Spalten, die Sie replizieren können, erneut erhöht. Sie können das folgende Codebeispiel für Ihre SQL-Server-Datenbank ausführen, um zu ermitteln, welche Tabellen zu lang sind.
USE myDB; GO DECLARE @Babelfish_version_string_limit INT = 8000; -- Use 380 for Babelfish versions before 2.2.0 WITH bfendpoint AS ( SELECT [TABLE_SCHEMA] ,[TABLE_NAME] , COUNT( [COLUMN_NAME] ) AS NumberColumns , ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) AS InsertIntoCommandLength -- values string , CASE WHEN ( SUM( LEN( [COLUMN_NAME] ) + 3) + SUM( LEN( FORMAT(ORDINAL_POSITION, 'N0') ) + 3 ) + LEN( TABLE_SCHEMA ) + 3 + 12 -- INSERT INTO string + 12) -- values string >= @Babelfish_version_string_limit THEN 1 ELSE 0 END AS IsTooLong FROM [INFORMATION_SCHEMA].[COLUMNS] GROUP BY [TABLE_SCHEMA], [TABLE_NAME] ) SELECT * FROM bfendpoint WHERE IsTooLong = 1 ORDER BY TABLE_SCHEMA, InsertIntoCommandLength DESC, TABLE_NAME ;
Zieldatentypen für Babelfish
Die folgende Tabelle zeigt die Babelfish-Zieldatentypen, die bei der Verwendung unterstützt werden, AWS DMS und die Standardzuweisung von Datentypen. AWS DMS
Weitere Informationen zu AWS DMS Datentypen finden Sie unter. Datentypen für den AWS Database Migration Service
AWS DMS Datentyp |
Babelfish-Datentyp |
---|---|
BOOLEAN |
TINYINT |
BYTES |
VARBINARY (Länge) |
DATUM |
DATUM |
TIME |
TIME |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
NUMERIC |
NUMERIC (p,s) |
REAL4 |
REAL |
REAL8 |
FLOAT |
STRING |
Wenn die Spalte eine Datums- oder Zeitspalte ist, gehen Sie wie folgt vor:
Wenn die Spalte keine Datums- oder Zeitspalte ist, verwenden Sie VARCHAR (Länge). |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INT |
UINT8 |
BIGINT |
WSTRING |
NVARCHAR(Länge) |
BLOB |
VARBINARY(max) Um diesen Datentyp mit DMS zu verwenden, müssen Sie die Verwendung von BLOBs für eine bestimmte Aufgabe aktivieren. DMS unterstützt BLOB-Datentypen nur in Tabellen, die einen Primärschlüssel enthalten. |
CLOB |
VARCHAR(max) Um diesen Datentyp mit DMS zu verwenden, müssen Sie die Verwendung von CLOBs für eine bestimmte Aufgabe aktivieren. |
NCLOB |
NVARCHAR(max) Um diesen Datentyp mit DMS zu verwenden, müssen Sie die Verwendung von NCLOBs für eine bestimmte Aufgabe aktivieren. Bei CDC unterstützt DMS NCLOB-Datentypen nur in Tabellen, die einen Primärschlüssel enthalten. |