Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS - AWS Database Migration Service

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.

Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS

Migrieren Sie Daten aus einer oder mehreren Microsoft SQL Server-Datenbanken mit AWS DMS. Mit einer SQL Serverdatenbank als Quelle können Sie Daten in eine andere SQL Serverdatenbank oder in eine der anderen AWS DMS unterstützten Datenbanken migrieren.

Hinweise zu Versionen von SQL Server, die als Quelle AWS DMS unterstützt werden, finden Sie unterQuellen für AWS DMS.

Die SQL Quellserver-Datenbank kann auf jedem Computer in Ihrem Netzwerk installiert werden. Für die Verwendung mit ist ein SQL Serverkonto mit den entsprechenden Zugriffsberechtigungen für die Quelldatenbank für den von Ihnen ausgewählten Tasktyp erforderlich AWS DMS. Weitere Informationen finden Sie unter Berechtigungen für SQL Serveraufgaben.

AWS DMS unterstützt die Migration von Daten aus benannten SQL Serverinstanzen. Beim Erstellen des Quellendpunkts können Sie folgende Notation für den Servernamen verwenden.

IPAddress\InstanceName

Im folgenden Beispiel wird ein korrekter Servername für den Quellendpunkt angegeben. Hier ist der erste Teil des Namens die IP-Adresse des Servers und der zweite Teil ist der Name der SQL Serverinstanz (in diesem BeispielSQLTest).

10.0.0.25\SQLTest

Ermitteln Sie außerdem die Portnummer, auf der Ihre benannte SQL Serverinstanz lauscht, und verwenden Sie sie, um Ihren AWS DMS Quellendpunkt zu konfigurieren.

Anmerkung

Port 1433 ist der Standard für Microsoft SQL Server. Aber auch dynamische Ports, die sich bei jedem SQL Serverstart ändern, und spezifische statische Portnummern, die für die Verbindung mit dem SQL Server über eine Firewall verwendet werden, werden häufig verwendet. Sie möchten also die tatsächliche Portnummer Ihrer benannten SQL Serverinstanz wissen, wenn Sie den AWS DMS Quellendpunkt erstellen.

Sie können SSL damit Verbindungen zwischen Ihrem SQL Serverendpunkt und der Replikationsinstanz verschlüsseln. Weitere Informationen zur Verwendung SSL mit einem SQL Server-Endpunkt finden Sie unterVerwenden von SSL mit AWS Database Migration Service.

Sie können es CDC für die laufende Migration aus einer SQL Serverdatenbank verwenden. Hinweise zur Konfiguration Ihrer SQL Quellserver-Datenbank für CDC finden Sie unterErfassung von Datenänderungen für die laufende Replikation vom SQL Server.

Weitere Informationen zur Arbeit mit SQL Server-Quelldatenbanken und AWS DMS finden Sie im Folgenden.

Einschränkungen bei der Verwendung von SQL Server als Quelle für AWS DMS

Die folgenden Einschränkungen gelten bei der Verwendung einer SQL Serverdatenbank als Quelle für AWS DMS:

  • Die Identitätseigenschaft für eine Spalte wird nicht zu einer Spalte in der Zieldatenbank migriert.

  • Der SQL Serverendpunkt unterstützt die Verwendung von Tabellen mit spärlichen Spalten nicht.

  • Windows-Authentifizierung wird nicht unterstützt.

  • Änderungen an berechneten Feldern auf einem SQL Server werden nicht repliziert.

  • Temporäre Tabellen werden nicht unterstützt.

  • SQLDas Wechseln zwischen Serverpartitionen wird nicht unterstützt.

  • Wenn Sie die UPDATETEXT Dienstprogramme WRITETEXT und verwenden, werden AWS DMS keine Ereignisse erfasst, die auf die Quelldatenbank angewendet wurden.

  • Das folgende Muster der Datenmanipulationssprache (DML) wird nicht unterstützt.

    SELECT * INTO new_table FROM existing_table
  • Wenn Sie SQL Server als Quelle verwenden, wird die Verschlüsselung auf Spaltenebene nicht unterstützt.

  • AWS DMS unterstützt keine Audits auf Serverebene auf SQL Server 2008 oder SQL Server 2008 R2 als Quellen. Der Grund dafür ist ein bekanntes Problem mit SQL Server 2008 und 2008 R2. Wenn Sie beispielsweise den folgenden Befehl ausführen, schlägt dies AWS DMS fehl.

    USE [master] GO ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on) GO
  • Geometriespalten werden im vollständigen LOB-Modus nicht unterstützt, wenn SQL Server als Quelle verwendet wird. Verwenden Sie stattdessen den limitierten LOB-Modus oder legen Sie die Aufgabeneinstellung InlineLobMaxSize so fest, dass der Inline-LOB-Modus verwendet wird.

  • Wenn Sie eine Microsoft SQL Server-Quelldatenbank in einer Replikationsaufgabe verwenden, werden die SQL Server Replication Publisher-Definitionen nicht entfernt, wenn Sie die Aufgabe entfernen. Ein Microsoft SQL Server-Systemadministrator muss diese Definitionen von Microsoft SQL Server löschen.

  • Das Migrieren von Daten aus schemagebundenen Daten und non-schema-bound Ansichten wird nur für Aufgaben mit Volllast unterstützt.

  • Das Umbenennen von Tabellen mit sp_rename wird nicht unterstützt (z. B. sp_rename 'Sales.SalesRegion', 'SalesReg;)

  • Das Umbenennen von Spalten mit sp_rename wird nicht unterstützt (z. B. sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';)

  • AWS DMS unterstützt keine Änderungsverarbeitung zum Setzen und Löschen von Spaltenstandardwerten (unter Verwendung der ALTER COLUMN SET DEFAULT Klausel mit Anweisungen). ALTER TABLE

  • AWS DMS unterstützt keine Änderungsverarbeitung zum Festlegen der NULL-Zulässigkeit von Spalten (Verwendung der ALTER COLUMN [SET|DROP] NOT NULL Klausel mit ALTER TABLE Anweisungen).

  • Bei SQL Server 2012 und SQL Server 2014 kann die Verteilungsdatenbank bei Verwendung der DMS Replikation mit Verfügbarkeitsgruppen nicht in einer Verfügbarkeitsgruppe platziert werden. SQL2016 unterstützt die Platzierung der Verteilungsdatenbank in einer Verfügbarkeitsgruppe, mit Ausnahme von Verteilungsdatenbanken, die in Zusammenführungs-, bidirektionalen oder peer-to-peer Replikationstopologien verwendet werden.

  • Unterstützt bei partitionierten Tabellen AWS DMS keine unterschiedlichen Datenkomprimierungseinstellungen für jede Partition.

  • Wenn Sie einen Wert in die räumlichen Datentypen (GEOGRAPHYundGEOMETRY) des SQL Servers einfügen, können Sie entweder die Eigenschaft Identifier (SRID) des räumlichen Bezugssystems ignorieren oder eine andere Zahl angeben. AWS DMS Ersetzt beim Replizieren von Tabellen mit räumlichen Datentypen die durch die SRID Standardeinstellung SRID (0 für GEOMETRY und 4326 für). GEOGRAPHY

  • Wenn Ihre Datenbank nicht für MS- REPLICATION oder MS- konfiguriert istCDC, können Sie trotzdem Tabellen erfassen, die keinen Primärschlüssel haben, aber es werden nur INSERT DELETE DML /-Ereignisse erfasst. UPDATEund TRUNCATE TABLE Ereignisse werden ignoriert.

  • Columnstore-Indizes werden nicht unterstützt.

  • Speicheroptimierte Tabellen (mit In-MemoryOLTP) werden nicht unterstützt.

  • Wenn Sie eine Tabelle mit einem Primärschlüssel replizieren, der aus mehreren Spalten besteht, wird das Aktualisieren der Primärschlüsselspalten während eines Volllastvorgangs nicht unterstützt.

  • Verzögerte Haltbarkeit wird nicht unterstützt.

  • Die readBackupOnly=Y Endpunkteinstellung (zusätzliches Verbindungsattribut) funktioniert bei SQL Serverquellinstanzen aufgrund der RDS Art und WeiseRDS, wie Backups ausgeführt werden, nicht.

  • EXCLUSIVE_AUTOMATIC_TRUNCATIONfunktioniert nicht auf Amazon RDS SQL Server-Quell-Instances, da RDS Benutzer keinen Zugriff darauf haben, die gespeicherte SQL Serverprozedur auszuführen,sp_repldone.

  • AWS DMS erfasst keine Befehle zum Kürzen.

  • AWS DMS unterstützt keine Replikation von Datenbanken mit aktivierter beschleunigter Datenbankwiederherstellung (ADR).

  • AWS DMS unterstützt nicht die Erfassung von Anweisungen in Data Definition Language (DDL) und Data Manipulation Language (DML) innerhalb einer einzigen Transaktion.

  • AWS DMS unterstützt nicht die Replikation von Anwendungspaketen auf Datenebene (DACPAC).

  • UPDATEAnweisungen, die Primärschlüssel oder eindeutige Indizes beinhalten und mehrere Datenzeilen aktualisieren, können zu Konflikten führen, wenn Sie Änderungen an der Zieldatenbank vornehmen. Dies kann beispielsweise der Fall sein, wenn die Zieldatenbank Aktualisierungen als INSERT DELETE AND-Anweisungen anstelle einer einzelnen UPDATE Anweisung anwendet. Im stapeloptimierten Anwendungsmodus wird die Tabelle möglicherweise ignoriert. Im transaktionalen Apply-Modus kann der UPDATE Vorgang zu Verstößen gegen Einschränkungen führen. Laden Sie die entsprechende Tabelle neu, um dieses Problem zu vermeiden. Suchen Sie alternativ die problematischen Datensätze in der Kontrolltabelle „Ausnahmen anwenden“ (dmslogs.awsdms_apply_exceptions) und bearbeiten Sie sie manuell in der Zieldatenbank. Weitere Informationen finden Sie unter Einstellungen für die Optimierung der Verarbeitung von Änderungen.

  • AWS DMS unterstützt nicht die Replikation von Tabellen und Schemas, bei denen der Name ein Sonderzeichen aus dem folgenden Satz enthält.

    \\ -- \n \" \b \r ' \t ;

  • Datenmaskierung wird nicht unterstützt. AWS DMS migriert maskierte Daten ohne Maskierung.

  • AWS DMS repliziert bis zu 32.767 Tabellen mit Primärschlüsseln und bis zu 1.000 Spalten für jede Tabelle. Das liegt daran, dass für jede replizierte Tabelle ein Artikel zur SQL Serverreplikation AWS DMS erstellt wird und Artikel zur SQL Serverreplikation diese Einschränkungen haben.

  • Wenn Sie Change Data Capture (CDC) verwenden, müssen Sie alle Spalten, die einen eindeutigen Index bilden, als NOT NULL definieren. Wenn diese Anforderung nicht erfüllt ist, wird der SQL Serversystemfehler 22838 die Folge sein.

  • Ereignisse können verloren gehen, wenn der SQL Server sie aus dem aktiven Transaktionslog in das Backup-Log archiviert oder sie aus dem aktiven Transaktionslog kürzt.

Beim Zugriff auf die Sicherungstransaktionsprotokolle gelten die folgenden Einschränkungen:

  • Verschlüsselte Sicherungen werden nicht unterstützt.

  • Backups, die in URL oder auf Windows Azure gespeichert sind, werden nicht unterstützt.

  • AWS DMS unterstützt die direkte Verarbeitung von Transaktionsprotokollsicherungen auf Dateiebene aus alternativen freigegebenen Ordnern nicht.

  • AWS DMS Unterstützt für andere SQL Cloud-Server-Quellen als Amazon RDS für Microsoft SQL Server nur die laufende Replikation (CDC) mit dem aktiven Transaktionsprotokoll. Sie können das Backup-Protokoll nicht mit verwendenCDC. Sie können Ereignisse verlieren, wenn der SQL Server sie aus dem aktiven Transaktionslog im Backup-Log archiviert oder sie aus dem aktiven Transaktionslog kürzt, bevor er es lesen DMS kann.

  • Für Amazon RDS for Microsoft SQL Server-Quellen unterstützen AWS DMS 3.5.2 und niedriger die laufende Replikation (CDC) nur mit dem aktiven Transaktionsprotokoll, da mit CDC nicht auf das Backup-Protokoll zugegriffen werden DMS kann. Sie können Ereignisse verlieren, wenn RDS for SQL Server sie aus dem aktiven Transaktionslog in das Backup-Log archiviert oder sie aus dem aktiven Transaktionslog kürzt, bevor Sie es lesen DMS können. Diese Einschränkung gilt nicht für AWS DMS Version 3.5.3 und höher.

Berechtigungen für SQL Serveraufgaben

Berechtigungen für reine Volllastaufgaben

Die folgenden Berechtigungen sind zum Ausführen reiner Volllastaufgaben erforderlich. Beachten Sie, dass AWS DMS das dms_user Login nicht erstellt wird. Hinweise zum Erstellen eines Logins für SQL Server finden Sie unterEinen Datenbankbenutzer mit Microsoft SQL Server erstellen.

USE db_name; CREATE USER dms_user FOR LOGIN dms_user; ALTER ROLE [db_datareader] ADD MEMBER dms_user; GRANT VIEW DATABASE STATE to dms_user; GRANT VIEW DEFINITION to dms_user; USE master; GRANT VIEW SERVER STATE TO dms_user;

Berechtigungen für Aufgaben mit laufender Replikation

Selbstverwaltete SQL Serverinstanzen können DMS mit oder ohne Verwendung der sysadmin Rolle für die laufende Replikation konfiguriert werden. Stellen Sie bei SQL Serverinstanzen, denen Sie die sysadmin Rolle nicht zuweisen können, sicher, dass der DMS Benutzer über die im Folgenden beschriebenen Rechte verfügt.

Richten Sie Berechtigungen für die laufende Replikation von einer selbstverwalteten SQL Serverdatenbank aus ein
  1. Erstellen Sie ein neues SQL Serverkonto mit Kennwortauthentifizierung mithilfe von SQL Server Management Studio (SSMS) oder wie zuvor beschriebenBerechtigungen für reine Volllastaufgaben, self_managed_user beispielsweise unter.

  2. Führen Sie die folgenden GRANT Befehle aus:

    GRANT VIEW SERVER STATE TO self_managed_user; USE MSDB; GRANT SELECT ON MSDB.DBO.BACKUPSET TO self_managed_user; GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO self_managed_user; GRANT SELECT ON MSDB.DBO.BACKUPFILE TO self_managed_user; USE db_name; CREATE USER self_managed_user FOR LOGIN self_managed_user; ALTER ROLE [db_owner] ADD MEMBER self_managed_user; GRANT VIEW DEFINITION to self_managed_user;
  3. Zusätzlich zu den oben genannten Berechtigungen benötigt der Benutzer eine der folgenden Berechtigungen:

Richten Sie Berechtigungen für die laufende Replikation aus einer SQL Cloud-Serverdatenbank ein

Eine in der Cloud gehostete SQL Serverinstanz ist eine Instanz, die auf Amazon RDS für Microsoft SQL Server, eine Azure SQL Managed Instance oder eine andere verwaltete SQL Cloud-Server-Instanz läuft, die von DMS unterstützt wird.

Erstellen Sie ein neues SQL Serverkonto mit Passwortauthentifizierung mithilfe von SQL Server Management Studio (SSMS) oder wie zuvor beschriebenBerechtigungen für reine Volllastaufgaben, z. B. rds_user

Führen Sie die folgenden Befehle zum Erteilen der Berechtigungen aus.

GRANT VIEW SERVER STATE TO rds_user; USE MSDB; GRANT SELECT ON MSDB.DBO.BACKUPSET TO rds_user; GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO rds_user; GRANT SELECT ON MSDB.DBO.BACKUPFILE TO rds_user; USE db_name; CREATE USER rds_user FOR LOGIN rds_user; ALTER ROLE [db_owner] ADD MEMBER rds_user; GRANT VIEW DEFINITION to rds_user;

Für Amazon RDS for Microsoft SQL Server-Quellen unterstützen DMS Version 3.5.3 und höher das Lesen aus Transaktionsprotokoll-Backups. Um sicherzustellen, DMS dass Sie auf die Protokollsicherungen zugreifen können, gewähren Sie zusätzlich zu den oben genannten Rechten entweder master Benutzerrechte oder die folgenden Rechte für eine RDS SQL Serverquelle:

//DMS 3.5.3 version onwards GRANT EXEC ON msdb.dbo.rds_dms_tlog_download TO rds_user; GRANT EXEC ON msdb.dbo.rds_dms_tlog_read TO rds_user; GRANT EXEC ON msdb.dbo.rds_dms_tlog_list_current_lsn TO rds_user; GRANT EXEC ON msdb.dbo.rds_task_status TO rds_user;

Voraussetzungen für die Verwendung der laufenden Replikation (CDC) von einer SQL Serverquelle

Sie können die fortlaufende Replikation (Change Data Capture oderCDC) für eine selbstverwaltete SQL Serverdatenbank vor Ort oder bei Amazon EC2 oder eine Cloud-Datenbank wie Amazon RDS oder eine SQL verwaltete Microsoft Azure-Instance verwenden.

Die folgenden Anforderungen gelten speziell für die Verwendung der laufenden Replikation mit einer SQL Serverdatenbank als Quelle für: AWS DMS

  • SQLDer Server muss für vollständige Backups konfiguriert sein, und Sie müssen eine Sicherung durchführen, bevor Sie mit der Datenreplikation beginnen.

  • Das Wiederherstellungsmodell muss auf Bulk logged (Massenprotokollierung) oder Full (Vollständig) eingestellt sein.

  • SQLServer-Backups auf mehreren Festplatten werden nicht unterstützt. Wenn das Backup so definiert ist, dass das Datenbank-Backup in mehrere Dateien auf verschiedenen Festplatten geschrieben wird, AWS DMS können die Daten nicht gelesen werden und die AWS DMS Aufgabe schlägt fehl.

  • Bei selbstverwalteten SQL Serverquellen werden SQL Server Replication Publisher-Definitionen für die in einer DMS CDC Aufgabe verwendete Quelle nicht entfernt, wenn Sie die Aufgabe entfernen. Ein SQL Serversystemadministrator muss diese Definitionen von SQL Server für selbstverwaltete Quellen löschen.

  • CDCWährenddessen AWS DMS muss nach Backups des SQL Server-Transaktionsprotokolls gesucht werden, um die Änderungen lesen zu können. AWS DMS unterstützt keine Backups von SQL Server-Transaktionsprotokollen, die mit Backup-Software von Drittanbietern erstellt wurden und nicht im systemeigenen Format vorliegen. Um Backups des Transaktionsprotokolls zu unterstützen, die im nativen Format vorliegen und mit Backup-Software von Drittanbietern erstellt wurden, fügen Sie dem Quellendpunkt das Verbindungsattribut use3rdPartyBackupDevice=Y hinzu.

  • Beachten Sie bei selbstverwalteten SQL Serverquellen, dass der SQL Server Änderungen an neu erstellten Tabellen erst erfasst, wenn sie veröffentlicht wurden. Wenn Tabellen zu einer SQL Serverquelle hinzugefügt werden, AWS DMS verwaltet er die Erstellung der Publikation. Dieser Vorgang kann allerdings einige Minuten dauern. Während dieser Verzögerung vorgenommene Operationen in neu erstellten Tabellen werden nicht erfasst oder in der Zieldatenbank repliziert.

  • AWS DMS Für die Erfassung von Änderungsdaten muss die vollständige Transaktionsprotokollierung auf dem SQL Server aktiviert sein. Um die vollständige Transaktionsprotokollierung auf dem SQL Server zu aktivieren, aktivieren Sie entweder MS- REPLICATION oder CHANGE DATA CAPTURE (CDC).

  • SQLServer-Tlog-Einträge werden erst für die Wiederverwendung markiert, wenn der MS CDC Capture-Job diese Änderungen verarbeitet hat.

  • CDCOperationen werden in speicheroptimierten Tabellen nicht unterstützt. Diese Einschränkung gilt für SQL Server 2014 (als die Funktion zum ersten Mal eingeführt wurde) und höher.

  • AWS DMS Für die Erfassung von Änderungsdaten ist standardmäßig eine Distributionsdatenbank auf einem Amazon EC2 - oder SQL On-Prem-Server als Quelle erforderlich. Stellen Sie daher sicher, dass Sie den Verteiler aktiviert haben, während Sie MS Replication für Tabellen mit Primärschlüsseln konfigurieren.

Unterstützte Komprimierungsmethoden für Server SQL

Beachten Sie Folgendes zur Unterstützung von SQL Serverkomprimierungsmethoden in AWS DMS:

  • AWS DMS unterstützt die Zeilen-/Seitenkomprimierung in SQL Serverversion 2008 und höher.

  • AWS DMS unterstützt das Vardecimal-Speicherformat nicht.

  • AWS DMS unterstützt keine spärlichen Spalten und keine Komprimierung von Spaltenstrukturen.

Arbeiten mit selbstverwalteten Server-Verfügbarkeitsgruppen SQL AlwaysOn

SQLServer Always On-Verfügbarkeitsgruppen bieten Hochverfügbarkeit und Disaster Recovery als Alternative zur Datenbankspiegelung auf Unternehmensebene.

In AWS DMS können Sie Änderungen von einem einzelnen primären oder sekundären Verfügbarkeitsgruppenreplikat migrieren.

Arbeiten mit dem Replikat der primären Verfügbarkeitsgruppe

Gehen Sie wie folgt vor, um die primäre Verfügbarkeitsgruppe als Quelle in AWS DMS zu verwenden:
  1. Aktivieren Sie die Verteilungsoption für alle SQL Serverinstanzen in Ihren Verfügbarkeitsreplikaten. Weitere Informationen finden Sie unter Einrichtung einer laufenden Replikation auf einem selbstverwalteten Server SQL.

  2. Öffnen Sie in der AWS DMS Konsole die Einstellungen für die SQL Serverquelldatenbank. Geben Sie als Servername den Namen oder die IP-Adresse des Domain Name Service (DNS) an, die für Ihren Verfügbarkeitsgruppen-Listener konfiguriert wurde.

Wenn Sie eine AWS DMS Aufgabe zum ersten Mal starten, kann es länger als gewöhnlich dauern, bis sie gestartet wird. Das liegt daran, dass die Erstellung der Tabellenartikel durch den Verfügbarkeitsgruppenserver dupliziert wird.

Arbeiten mit dem Replikat einer sekundären Verfügbarkeitsgruppe

Gehen Sie wie folgt vor, um eine sekundäre Verfügbarkeitsgruppe als Quelle für zu verwenden: AWS DMS
  1. Verwenden Sie für die Verbindung zu einzelnen Replikaten dieselben Anmeldeinformationen wie für den Benutzer des AWS DMS Quellendpunkts.

  2. Stellen Sie sicher, dass Ihre AWS DMS Replikationsinstanz die DNS Namen aller vorhandenen Replikate auflösen und eine Verbindung zu ihnen herstellen kann. Sie können die folgende SQL Abfrage verwenden, um DNS Namen für all Ihre Replikate abzurufen.

    select ar.replica_server_name, ar.endpoint_url from sys.availability_replicas ar JOIN sys.availability_databases_cluster adc ON adc.group_id = ar.group_id AND adc.database_name = '<source_database_name>';
  3. Wenn Sie den Quellendpunkt erstellen, geben Sie den DNS Namen des Verfügbarkeitsgruppen-Listeners für den Servernamen des Endpunkts oder für die Serveradresse des geheimen Endpunkts an. Weitere Informationen zu Verfügbarkeitsgruppen-Listenern finden Sie unter Was ist ein Verfügbarkeitsgruppen-Listener? in der SQL Serverdokumentation.

    Sie können entweder einen öffentlichen DNS Server oder einen lokalen DNS Server verwenden, um den Verfügbarkeitsgruppen-Listener, das primäre Replikat und die sekundären Replikate aufzulösen. Um einen lokalen DNS Server zu verwenden, konfigurieren Sie den Amazon Route 53 Resolver. Weitere Informationen finden Sie unter Verwenden Ihres eigenen Vor-Ort-Nameservers.

  4. Fügen Sie Ihrem Quellendpunkt die folgenden zusätzlichen Verbindungsattribute hinzu.

    Zusätzliches Verbindungsattribut Wert Hinweise
    applicationIntent ReadOnly Ohne diese ODBC Einstellung wird die Replizierungsaufgabe an das Replikat der primären Verfügbarkeitsgruppe weitergeleitet. Weitere Informationen finden Sie unter SQLServer Native Client Support for High Availability, Disaster Recovery in der SQL Serverdokumentation.
    multiSubnetFailover yes Weitere Informationen finden Sie unter SQLServer Native Client Support for High Availability, Disaster Recovery in der SQL Serverdokumentation.
    alwaysOnSharedSynchedBackupIsEnabled false Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung des SQL Servers als Quelle für AWS DMS.
    activateSafeguard false Weitere Informationen finden Sie unter Einschränkungen.
    setUpMsCdcForTables false Weitere Informationen finden Sie unter Einschränkungen.
  5. Aktivieren Sie die Verteilungsoption für alle Replikate in Ihrer Verfügbarkeitsgruppe. Fügen Sie der Verteilerliste alle Knoten hinzu. Weitere Informationen finden Sie unter So richten Sie die Verteilung ein.

  6. Führen Sie die folgende Abfrage für das primäre Lese-/Schreibreplikat aus, um die Veröffentlichung Ihrer Datenbank zu ermöglichen. Sie führen diese Abfrage nur einmal für Ihre Datenbank aus.

    sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';

Einschränkungen

Im Folgenden werden Einschränkungen für die Arbeit mit einem Replikat einer sekundären Verfügbarkeitsgruppe aufgeführt:

  • AWS DMS unterstützt Safeguard nicht, wenn ein schreibgeschütztes Verfügbarkeitsgruppenreplikat als Quelle verwendet wird. Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung des SQL Servers als Quelle für AWS DMS.

  • AWS DMS unterstützt das setUpMsCdcForTables zusätzliche Verbindungsattribut nicht, wenn ein schreibgeschütztes Verfügbarkeitsgruppenreplikat als Quelle verwendet wird. Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung des SQL Servers als Quelle für AWS DMS.

  • AWS DMS kann ab Version 3.4.7 ein selbstverwaltetes sekundäres Verfügbarkeitsgruppenreplikat als Quelldatenbank für die laufende Replikation (Change Data Capture oderCDC) verwenden. Cloud SQL Server Multi-AZ-Read Replicas werden nicht unterstützt. Wenn Sie frühere Versionen von verwenden AWS DMS, stellen Sie sicher, dass Sie das Replikat der primären Verfügbarkeitsgruppe als Quelldatenbank für verwenden. CDC

Failover auf andere Knoten

Wenn Sie das ApplicationIntent zusätzliche Verbindungsattribut für Ihren Endpunkt auf festlegenReadOnly, stellt Ihre AWS DMS Aufgabe eine Verbindung mit dem schreibgeschützten Knoten mit der höchsten Nur-Lese-Routing-Priorität her. Anschließend erfolgt ein Failover zu anderen schreibgeschützten Knoten in Ihrer Verfügbarkeitsgruppe, wenn der schreibgeschützte Knoten mit der höchsten Priorität nicht verfügbar ist. Wenn Sie dies nicht festlegenApplicationIntent, stellt Ihre AWS DMS Aufgabe nur eine Verbindung zum primären Knoten (Lese-/Schreibknoten) in Ihrer Verfügbarkeitsgruppe her.

Endpunkteinstellungen bei Verwendung des SQL Servers als Quelle für AWS DMS

Sie können Endpunkteinstellungen verwenden, um Ihre SQL Server-Quelldatenbank ähnlich wie bei der Verwendung zusätzlicher Verbindungsattribute zu konfigurieren. Sie geben die Einstellungen an, wenn Sie den Quellendpunkt mithilfe der AWS DMS Konsole erstellen, oder indem Sie den create-endpoint Befehl in AWS CLI, mit der --microsoft-sql-server-settings '{"EndpointSetting": "value", ...}' JSON Syntax verwenden.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit SQL Server als Quelle verwenden können.

Name Beschreibung

ActivateSafeguard

Dieses Attribut aktiviert oder deaktiviert Safeguard. Weitere Informationen zu Safeguard finden Sie im Folgenden unter SafeguardPolicy.

Standardwert: true

Zulässige Werte: {false, true}

Beispiel: '{"ActivateSafeguard": true}'

AlwaysOnSharedSynchedBackupIsEnabled

Dieses Attribut passt das Verhalten AWS DMS bei der Migration von einer SQL Server-Quelldatenbank an, die als Teil eines Always-On-Verfügbarkeitsgruppenclusters gehostet wird.

AWS DMS bietet erweiterte Unterstützung für SQL Server-Quelldatenbanken, die für die Ausführung in einem Always-On-Cluster konfiguriert sind. In diesem Fall versucht AWS DMS nachzuverfolgen, ob Transaktions-Backups von anderen Knoten im AlwaysOn-Cluster als dem Knoten, auf dem die Quelldatenbank-Instance gehostet wird, ausgeführt werden. AWS DMS Versucht beim Start der Migrationsaufgabe, eine Verbindung zu jedem Knoten im Cluster herzustellen, schlägt jedoch fehl, wenn keine Verbindung zu einem der Knoten hergestellt werden kann.

Wenn Sie alle Knoten im Always-On-Cluster AWS DMS nach Transaktionssicherungen abfragen müssen, setzen Sie dieses Attribut auffalse.

Standardwert: true

Gültige Werte: true oder false.

Beispiel: '{"AlwaysOnSharedSynchedBackupIsEnabled": false}'

"ApplicationIntent": "readonly"

Diese Einstellung des ODBC Treiberattributs veranlasst den SQL Server, Ihre Replikationsaufgabe an den schreibgeschützten Knoten mit der höchsten Priorität weiterzuleiten. Ohne diese Einstellung leitet der SQL Server Ihre Replikationsaufgabe an den primären Lese- und Schreibknoten weiter.

EnableNonSysadminWrapper

Verwenden Sie diese Endpunkteinstellung, wenn Sie die laufende Replikation auf einem eigenständigen SQL Server ohne Sysadmin-Benutzer einrichten. Dieser Parameter wird in AWS DMS Version 3.4.7 und höher unterstützt. Hinweise zum Einrichten der laufenden Replikation auf einem eigenständigen SQL Server finden Sie unterErfassung von Datenänderungen für die laufende Replikation vom SQL Server.

Standardwert: false

Zulässige Werte: true, false

Beispiel: '{"EnableNonSysadminWrapper": true}'

ExecuteTimeout

Verwenden Sie dieses zusätzliche Verbindungsattribut (ECA), um das Timeout für die Client-Anweisung für die SQL Serverinstanz in Sekunden festzulegen. Der Standardwert liegt bei 60 Sekunden.

Beispiel: '{"ExecuteTimeout": 100}'

FatalOnSimpleModel

Wenn diese Einstellung auf gesetzt isttrue, generiert sie einen schwerwiegenden Fehler, wenn das Wiederherstellungsmodell für die SQL Serverdatenbank auf simple eingestellt ist.

Standardwert: false

Gültige Werte: true oder false.

Beispiel: '{"FatalOnSimpleModel": true}'

ForceLobLookup

Erzwingt die LOB Inline-SucheLOB.

Standardwert: false

Zulässige Werte: true, false

Beispiel: '{"ForceLobLookup": false}'

"MultiSubnetFailover": "Yes"

Dieses ODBC Treiberattribut hilft DMS dabei, im Falle eines Failovers der Availability Group eine Verbindung zum neuen primären Server herzustellen. Dieses Attribut ist für Situationen konzipiert, in denen die Verbindung unterbrochen wird oder die Listener-IP-Adresse falsch ist. In diesen Situationen wird AWS DMS versucht, eine Verbindung zu allen IP-Adressen herzustellen, die dem Availability Group Listener zugeordnet sind.

ReadBackupOnly

Für die Verwendung dieses Attributs sind Sysadmin-Berechtigungen erforderlich. Wenn dieses Attribut auf gesetzt istY, werden während der laufenden Replikation AWS DMS nur Änderungen aus Transaktionsprotokollsicherungen gelesen und nicht aus der aktiven Transaktionslogdatei. Wenn Sie diesen Parameter auf Y festlegen, können Sie steuern, wie stark die aktive Transaktionsprotokolldatei beim vollständigen Laden und fortlaufenden Replikationsaufgaben wächst. Dies kann bei fortlaufender Replikation jedoch zu einer gewissen Quelllatenz führen.

Gültige Werte: N oder Y. Der Standardwert ist N.

Beispiel: '{"ReadBackupOnly": Y}'

Hinweis: Dieser Parameter funktioniert aufgrund der Art und WeiseRDS, wie Backups ausgeführt werden, nicht auf Amazon RDS SQL Server-Quell-Instances.

SafeguardPolicy

Um eine optimale Leistung zu erzielen, AWS DMS versucht er, alle ungelesenen Änderungen aus dem aktiven Transaktionslog (TLOG) zu erfassen. Manchmal kann es jedoch TLOG vorkommen, dass das aktive Dokument aufgrund von Kürzungen nicht alle ungelesenen Änderungen enthält. AWS DMS Greift in diesem Fall auf die Protokollsicherung zu, um die fehlenden Änderungen zu erfassen. Um den Zugriff auf die Protokollsicherung so gering wie möglich zu halten, AWS DMS wird das Kürzen mithilfe einer der folgenden Methoden verhindert:

  1. RELY_ON_SQL_SERVER_REPLICATION_AGENT(Transaktionen in der Datenbank starten): Dies ist die Standardeinstellung für AWS DMS.

    Wenn Sie diese Einstellung verwenden, AWS DMS muss der SQL Serverprotokolllese-Agent ausgeführt werden, damit Transaktionen, die für die Replikation markiert sind, aus dem aktiven Bereich verschoben werden AWS DMS könnenTLOG. Beachten Sie, dass der aktive Log Reader Agent voll werden TLOG kann, wenn der Log Reader Agent nicht läuft, sodass die Quelldatenbank in den schreibgeschützten Modus wechselt, bis Sie das Problem behoben haben. Wenn Sie die Microsoft-Replikation in Ihrer Datenbank für einen anderen Zweck als aktivieren müssen AWS DMS, müssen Sie diese Einstellung wählen.

    Wenn Sie diese Einstellung verwenden, werden die Lesevorgänge von Protokollsicherungen AWS DMS minimiert, indem eine aufgerufene Tabelle erstellt wird, awsdms_truncation_safeguard und das TLOG Kürzen wird verhindert, indem eine offene Transaktion in der Datenbank nachgeahmt wird. Dadurch wird verhindert, dass die Datenbank Ereignisse kürzt und sie fünf Minuten lang in das Backup-Protokoll verschiebt (standardmäßig). Stellen Sie sicher, dass die Tabelle in keinem Wartungsplan enthalten ist, da der Wartungsauftrag andernfalls möglicherweise fehlschlägt. Sie können die Tabelle problemlos löschen, wenn keine Aufgaben mit der Datenbankoption Start Transactions konfiguriert sind.

  2. EXCLUSIVE_AUTOMATIC_TRUNCATION(Ausschließlich sp_repldone mit einer einzelnen Aufgabe verwenden): Wenn Sie diese Einstellung verwenden, AWS DMS hat es volle Kontrolle über den Replikationsagentenprozess, der Protokolleinträge als verwendet markiert. ready for truncation sp_repldone Bei dieser Einstellung wird AWS DMS keine Dummy-Transaktion wie bei der Einstellung RELY_ON_SQL_SERVER_REPLICATION_AGENT (Standard) verwendet. Sie können diese Einstellung nur verwenden, wenn MS Replication nur für die Quelldatenbank AWS DMS verwendet wird. Außerdem kann bei Verwendung dieser Einstellung nur eine AWS DMS Aufgabe auf die Datenbank zugreifen. Wenn Sie parallel AWS DMS Aufgaben für dieselbe Datenbank ausführen müssen, verwenden SieRELY_ON_SQL_SERVER_REPLICATION_AGENT.

    • Diese Einstellung erfordert, dass der Log Reader Agent in der Datenbank beendet wird. Wenn der Log Reader Agent beim Start der Aufgabe ausgeführt wird, erzwingt die AWS DMS Task das Beenden der Aufgabe. Sie können den Log Reader Agent auch manuell beenden, bevor Sie die Aufgabe starten.

    • Wenn Sie diese Methode mit MS- verwendenCDC, sollten Sie die CDCMS-Capture- und CDCMS-Cleanup-Jobs beenden und deaktivieren.

    • Sie können diese Einstellung nicht verwenden, wenn der Microsoft SQL Server-Migrationsauftrag auf einem Remote-Verteilercomputer ausgeführt wird, da dieser AWS DMS keinen Zugriff auf den Remotecomputer hat.

    • EXCLUSIVE_AUTOMATIC_TRUNCATIONfunktioniert nicht auf Amazon RDS for SQL Server-Quell-Instances, da RDS Amazon-Benutzer keinen Zugriff haben, um die sp_repldone gespeicherte Prozedur auszuführen.

    • Wenn Sie SafeguardPolicy auf EXCLUSIVE_AUTOMATIC_TRUNCATION setzen, ohne die Sysadmin-Rolle zu verwenden, müssen Sie dem Benutzer dmsuser Berechtigungen für die Objekte dbo.syscategories und dbo.sysjobs erteilen.

Standardwert: RELY_ON_SQL_SERVER_REPLICATION_AGENT

Zulässige Werte: {EXCLUSIVE_AUTOMATIC_TRUNCATION, RELY_ON_SQL_SERVER_REPLICATION_AGENT}

Beispiel: '{"SafeguardPolicy": "EXCLUSIVE_AUTOMATIC_TRUNCATION"}'

SetUpMsCdcForTables

Dieses Attribut aktiviert MS- CDC für die Quelldatenbank und für Tabellen in der Aufgabenzuweisung, für die die MS-Replikation nicht aktiviert ist. Wenn Sie diesen Wert auf true setzen, wird die gespeicherte Prozedur sp_cdc_enable_db in der Quelldatenbank und die gespeicherte Prozedur sp_cdc_enable_table für jede Tabelle in der Aufgabe ausgeführt, für die MS-Replication in der Quelldatenbank nicht aktiviert ist. Weitere Informationen zum Aktivieren der Verteilung finden Sie unter Einrichtung einer laufenden Replikation auf einem selbstverwalteten Server SQL.

Zulässige Werte: {true, false}

Beispiel: '{"SetUpMsCdcForTables": true}'

TlogAccessMode

Gibt den Modus an, der zum Abrufen CDC von Daten verwendet wird.

Standardwert: PreferTlog

Zulässige Werte: BackupOnly, PreferBackup, PreferTlog, TlogOnly

Beispiel: '{"TlogAccessMode": "PreferTlog"}'

Use3rdPartyBackupDevice

Wenn dieses Attribut auf Y gesetzt ist, verarbeitet AWS DMS Transaktionsprotokoll-Backups von Drittanbietern, falls sie im nativen Format erstellt wurden.

Quelldatentypen für Server SQL

Die Datenmigration, bei der SQL Server als Quelle für verwendet wird, AWS DMS unterstützt die meisten SQL Serverdatentypen. In der folgenden Tabelle sind die SQL Serverquelldatentypen aufgeführt, die bei der Verwendung unterstützt werden, AWS DMS sowie die Standardzuweisung von AWS DMS Datentypen.

Weitere Informationen zum Anzeigen des Datentyps, der im Ziel zugewiesen ist, finden Sie im Abschnitt für den Zielendpunkt, den Sie verwenden.

Weitere Informationen zu AWS DMS Datentypen finden Sie unterDatentypen für den AWS Database Migration Service.

SQLServer-Datentypen

AWS DMS Datentypen

BIGINT

INT8

BIT

BOOLEAN

DECIMAL

NUMERIC

INT

INT4

MONEY

NUMERIC

NUMERIC(p, s)

NUMERIC

SMALLINT

INT2

SMALLMONEY

NUMERIC

TINYINT

UINT1

REAL

REAL4

FLOAT

REAL8

DATETIME

DATETIME

DATETIME2(SQLServer 2008 und höher)

DATETIME

SMALLDATETIME

DATETIME

DATE

DATE

TIME

TIME

DATETIMEOFFSET

WSTRING

CHAR

STRING

VARCHAR

STRING

VARCHAR(maximal)

CLOB

TEXT

Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von CLOB Datentypen für eine bestimmte Aufgabe aktivieren.

Bei SQL Servertabellen werden die LOB Spalten im Ziel auch für UPDATE Anweisungen AWS DMS aktualisiert, die den Wert der LOB Spalte in SQL Server nicht ändern.

Während CDC AWS DMS unterstützt CLOB Datentypen nur in Tabellen, die einen Primärschlüssel enthalten.

NCHAR

WSTRING

NVARCHAR(Länge)

WSTRING

NVARCHAR(maximal)

NCLOB

NTEXT

Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von SupportLobs für eine bestimmte Aufgabe aktivieren. Weitere Informationen zum Aktivieren von Lob-Unterstützung finden Sie unter Einstellung der LOB Unterstützung für Quelldatenbanken in einer AWS DMS Aufgabe.

Bei SQL Servertabellen werden die LOB Spalten im Ziel auch für UPDATE Anweisungen AWS DMS aktualisiert, die den Wert der LOB Spalte in SQL Server nicht ändern.

Während CDC AWS DMS unterstützt CLOB Datentypen nur in Tabellen, die einen Primärschlüssel enthalten.

BINARY

BYTES

VARBINARY

BYTES

VARBINARY(maximal)

BLOB

IMAGE

Bei SQL Servertabellen werden die LOB Spalten im Ziel auch für UPDATE Anweisungen AWS DMS aktualisiert, die den Wert der LOB Spalte in SQL Server nicht ändern.

Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von BLOB Datentypen für eine bestimmte Aufgabe aktivieren.

AWS DMS unterstützt BLOB Datentypen nur in Tabellen, die einen Primärschlüssel enthalten.

TIMESTAMP

BYTES

UNIQUEIDENTIFIER

STRING

HIERARCHYID

HIERARCHYIDWird bei der Replikation auf einen SQL Server-Zielendpunkt verwendet.

Verwenden Sie WSTRING (250), wenn Sie auf alle anderen Zielendpunkte replizieren.

XML

NCLOB

Bei SQL Servertabellen werden die LOB Spalten im Ziel auch für UPDATE Anweisungen AWS DMS aktualisiert, die den Wert der LOB Spalte in SQL Server nicht ändern.

Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von NCLOB Datentypen für eine bestimmte Aufgabe aktivieren.

Während CDC AWS DMS unterstützt NCLOB Datentypen nur in Tabellen, die einen Primärschlüssel enthalten.

GEOMETRY

GEOMETRYWird bei der Replikation auf Zielendpunkte verwendet, die diesen Datentyp unterstützen.

CLOBWird verwendet, wenn auf Zielendpunkte repliziert wird, die diesen Datentyp nicht unterstützen.

GEOGRAPHY

GEOGRAPHYWird verwendet, wenn auf Zielendpunkte repliziert wird, die diesen Datentyp unterstützen.

CLOBWird verwendet, wenn auf Zielendpunkte repliziert wird, die diesen Datentyp nicht unterstützen.

AWS DMS unterstützt keine Tabellen, die Felder mit den folgenden Datentypen enthalten.

  • CURSOR

  • SQL_VARIANT

  • TABLE

Anmerkung

Benutzerdefinierte Datentypen werden abhängig von dem Typ, auf dem sie basieren, unterstützt. Beispielsweise wird ein benutzerdefinierter Datentyp, der auf DATETIME basiert, als DATETIME Datentyp behandelt.