Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation d'une base de données Microsoft SQL Server comme source pour AWS DMS
Migrez les données d'une ou de plusieurs bases de données Microsoft SQL Server à l'aide de AWS DMS. Avec une base de données SQL Server comme source, vous pouvez migrer les données vers une autre base de données SQL Server ou vers l'une des autres bases de données AWS DMS prises en charge.
Pour plus d'informations sur les versions de SQL Server prises AWS DMS en charge en tant que source, consultezSources pour AWS DMS.
La base de données source SQL Server peut être installée sur n'importe quel ordinateur dans votre réseau. Un compte SQL Server avec les privilèges d'accès appropriés à la base de données source pour le type de tâche que vous avez choisi est également nécessaire pour une utilisation avec AWS DMS. Pour de plus amples informations, veuillez consulter Autorisations pour les tâches SQL Server.
AWS DMS prend en charge la migration de données à partir d'instances nommées de SQL Server. Vous pouvez utiliser la notation suivante dans le nom du serveur lorsque vous créez le point de terminaison source.
IPAddress\InstanceName
Par exemple, voici un nom de serveur correct de point de terminaison source. Ici, la première partie du nom est l'adresse IP du serveur et la seconde partie est le nom de l'instance SQL Server (dans cet exemple, SQLTest).
10.0.0.25\SQLTest
Obtenez également le numéro de port sur lequel écoute votre instance nommée de SQL Server et utilisez-le pour configurer votre point de terminaison AWS DMS source.
Note
Le port 1433 est le port par défaut pour Microsoft SQL Server. Mais les ports dynamiques qui changent chaque fois que SQL Server est démarré, et les numéros de port statiques spécifiques utilisés pour se connecter à SQL Server via un pare-feu sont également souvent utilisés. Vous souhaitez donc connaître le numéro de port réel de votre instance nommée de SQL Server lorsque vous créez le point de terminaison AWS DMS source.
Vous pouvez utiliser SSL pour chiffrer les connexions entre votre point de terminaison SQL Server et l'instance de réplication. Pour plus d'informations sur l'utilisation de SSL avec un point de terminaison SQL Server, consultez Utiliser le protocole SSL avec AWS Database Migration Service.
Vous pouvez utiliser le CDC pour effectuer une migration continue à partir d'une base de données SQL Server. Pour plus d'informations sur la configuration de votre base de données SQL Server source pour CDC, consultezCapture des modifications de données pour une réplication continue à partir de SQL Server.
Pour plus de détails sur l'utilisation des bases de données sources SQL Server et AWS DMS, consultez ce qui suit.
Rubriques
Limitations relatives à l'utilisation de SQL Server comme source pour AWS DMS
Utilisation de groupes de AlwaysOn disponibilité SQL Server autogérés
Paramètres des terminaux lors de l'utilisation de SQL Server comme source pour AWS DMS
Capture des modifications de données pour une réplication continue à partir de SQL Server
Limitations relatives à l'utilisation de SQL Server comme source pour AWS DMS
Les limites suivantes s'appliquent lors de l'utilisation d'une base de données SQL Server comme source pour AWS DMS :
-
La propriété d'identité d'une colonne n'est pas migrée vers une colonne de base de données cible.
-
Le point de terminaison SQL Server ne prend pas en charge l'utilisation de tables contenant des colonnes éparses.
-
L'authentification Windows n'est pas prise en charge.
-
Les modifications apportées aux champs calculés dans un serveur SQL Server ne sont pas répliquées.
-
Les tables temporelles ne sont pas prises en charge.
-
L'échange de partition SQL Server n'est pas pris en charge.
-
Lorsque vous utilisez les utilitaires WRITETEXT et UPDATETEXT, AWS DMS ne capture pas les événements appliqués à la base de données source.
-
Le modèle de langage de manipulation de données (DML) suivant n’est pas pris en charge.
SELECT * INTOnew_tableFROMexisting_table -
Lorsque vous utilisez SQL Server comme source, le chiffrement au niveau des colonnes n'est pas pris en charge.
-
AWS DMS ne prend pas en charge les audits au niveau du serveur sur SQL Server 2008 ou SQL Server 2008 R2 en tant que sources. Cela est dû à un problème connu avec SQL Server 2008 et 2008 R2. Par exemple, l'exécution de la commande suivante AWS DMS entraîne un échec.
USE [master] GO ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on) GO -
Les colonnes Geometry et Geography ne sont pas prises en charge en mode lob complet lorsque SQL Server est utilisé comme source. Utilisez plutôt le mode LOB limité ou définissez le paramètre de tâche
InlineLobMaxSizepour utiliser le mode LOB en ligne. -
Lorsque vous utilisez une base de données source Microsoft SQL Server dans une tâche de réplication, les définitions du diffuseur de publication de réplication SQL Server ne sont pas supprimées si vous supprimez la tâche. Un administrateur système Microsoft SQL Server doit supprimer ces définitions de Microsoft SQL Server.
-
La migration des données à partir de vues liées au schéma et non liées au schéma est prise en charge pour les tâches de chargement complet uniquement.
-
La modification de noms de tables à l'aide de sp_rename n'est pas prise en charge (par exemple,
sp_rename 'Sales.SalesRegion', 'SalesReg;) -
La modification de noms de colonnes à l'aide de sp_rename n'est pas prise en charge (par exemple,
sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';) AWS DMS ne prend pas en charge le traitement des modifications pour définir et désactiver les valeurs par défaut des colonnes (en utilisant la
ALTER COLUMN SET DEFAULTclause avec desALTER TABLEinstructions).-
AWS DMS ne prend pas en charge le traitement des modifications pour définir la nullabilité des colonnes (en utilisant la
ALTER COLUMN [SET|DROP] NOT NULLclause avec desALTER TABLEinstructions). -
Avec SQL Server 2012 et SQL Server 2014, lors de l’utilisation de la réplication DMS avec des groupes de disponibilité, la base de données de distribution ne peut pas être placée dans un groupe de disponibilité. SQL 2016 prend en charge le placement de la base de données de distribution dans un groupe de disponibilité, à l’exception des bases de données de distribution utilisées dans les topologies de fusion, de réplication bidirectionnelle ou de réplication d’égal à égal.
-
Pour les tables partitionnées, AWS DMS ne prend pas en charge des paramètres de compression de données différents pour chaque partition.
-
Lorsque vous insérez une valeur dans les types de données spatiales SQL Server (GEOGRAPHY et GEOMETRY), vous pouvez ignorer la propriété SRID (Spatial Reference System Identifier) ou spécifier un nombre différent. Lorsque vous répliquez des tables avec des types de données spatiales, remplacez AWS DMS le SRID par le SRID par défaut (0 pour GEOMETRY et 4326 pour GEOGRAPHY).
-
Si votre base de données n'est pas configurée pour MS-REPLICATION ou MS-CDC, vous pouvez toujours capturer des tables qui n'ont pas de clé primaire, mais seuls les événements INSERT/DELETE DML sont capturés. Les événements UPDATE et TRUNCATE TABLE sont ignorés.
-
Les index Columnstore ne sont pas pris en charge.
-
Memory-optimized les tables (utilisant In-Memory OLTP) ne sont pas prises en charge.
-
Lors de la réplication d’une table avec une clé primaire composée de plusieurs colonnes, la mise à jour des colonnes de clé primaire pendant le chargement complet n’est pas prise en charge.
-
La durabilité retardée n'est pas prise en charge.
-
Le paramètre de point de terminaison
readBackupOnly=true(attribut de connexion supplémentaire) ne fonctionne pas sur les instances source RDS for SQL Server en raison de la manière dont RDS effectue les sauvegardes. -
EXCLUSIVE_AUTOMATIC_TRUNCATIONne fonctionne pas sur les instances source Amazon RDS SQL Server, car les utilisateurs de RDS ne sont pas autorisés à exécuter la procédure stockée SQL Serversp_repldone. AWS DMS ne capture pas les commandes tronquées.
-
AWS DMS ne prend pas en charge la réplication à partir de bases de données lorsque la restauration accélérée de base de données (ADR) est activée.
-
AWS DMS ne prend pas en charge la capture d'instructions en langage de définition des données (DDL) et en langage de manipulation de données (DML) au cours d'une seule transaction.
-
AWS DMS ne prend pas en charge la réplication de packages d'applications au niveau des données (DACPAC).
-
Les instructions UPDATE qui impliquent des clés primaires ou des index uniques et qui mettent à jour plusieurs lignes de données peuvent provoquer des conflits lorsque vous appliquez les modifications à la base de données cible. Cela peut se produire, par exemple, lorsque la base de données cible applique des mises à jour sous forme d’instructions INSERT et DELETE au lieu d’une seule instruction UPDATE. Avec le mode d’application optimisé par lots, la table peut être ignorée. Avec le mode d’application transactionnel, l’opération UPDATE peut entraîner des violations de contrainte. Pour éviter ce problème, rechargez la table correspondante. Vous pouvez également rechercher les enregistrements problématiques dans la table de contrôle Application des exceptions (
dmslogs.awsdms_apply_exceptions) et les modifier manuellement dans la base de données cible. Pour de plus amples informations, veuillez consulter Paramètres de réglage du traitement des modifications. -
AWS DMS ne prend pas en charge la réplication de tables et de schémas, dont le nom inclut un caractère spécial de l'ensemble suivant.
\\ -- \n \" \b \r ' \t ; -
Le masquage des données n'est pas pris en charge. AWS DMS migre les données masquées sans les masquer.
-
AWS DMS réplique jusqu'à 32 767 tables avec des clés primaires et jusqu'à 1 000 colonnes pour chaque table. Cela est dû au fait que AWS DMS crée un article de réplication SQL Server pour chaque table répliquée, et les articles de réplication SQL Server présentent ces limites.
-
Lorsque vous utilisez la capture des données de modification (CDC), vous devez définir toutes les colonnes qui constituent un index unique en tant que
NOT NULL. Si cette exigence n’est pas remplie, l’erreur système SQL Server 22838 se produit. Vous risquez de perdre des événements si SQL Server archive à partir du journal de transactions actif vers le journal de sauvegarde, ou les tronque à partir du journal de transactions actif.
Les limitations suivantes s'appliquent lors de l'accès aux journaux de transactions de sauvegarde :
-
Les sauvegardes chiffrées ne sont pas prises en charge.
-
Les sauvegardes stockées sur une URL ou sur Windows Azure ne sont pas prises en charge.
-
AWS DMS ne prend pas en charge le traitement direct des sauvegardes du journal des transactions au niveau des fichiers à partir de dossiers partagés alternatifs.
Pour les sources Cloud SQL Server autres qu'Amazon RDS pour Microsoft SQL Server, AWS DMS prend en charge la réplication continue (CDC) avec le journal des transactions actif uniquement. Vous ne pouvez pas utiliser le journal de sauvegarde avec la CDC. Vous risquez de perdre des événements si SQL Server les archive depuis le journal de transactions actif vers le journal de sauvegarde, ou les tronque depuis le journal de transactions actif avant que DMS ne puisse le lire.
Pour les sources Amazon RDS pour Microsoft SQL Server, les versions AWS DMS 3.5.2 et antérieures prennent en charge la réplication continue (CDC) avec le journal des transactions actif uniquement, car le DMS ne peut pas accéder au journal de sauvegarde avec le CDC. Vous risquez de perdre des événements si RDS pour SQL Server les archive depuis le journal de transactions actif vers le journal de sauvegarde, ou les tronque depuis le journal de transactions actif avant que DMS ne puisse le lire. Cette limitation ne s'applique pas aux AWS DMS versions 3.5.3 et supérieures.
-
AWS DMS ne prend pas en charge CDC pour Amazon RDS Proxy for SQL Server en tant que source.
-
Si la source SQL Server devient indisponible pendant une tâche de chargement complet, la tâche AWS DMS peut être marquée comme terminée après plusieurs tentatives de reconnexion, même si la migration des données reste incomplète. Dans ce scénario, les tables cibles contiennent uniquement les enregistrements migrés avant la perte de connexion, ce qui peut créer des incohérences de données entre les systèmes source et cible. Pour garantir l'exhaustivité des données, vous devez soit redémarrer complètement la tâche de chargement complet, soit recharger les tables spécifiques touchées par l'interruption de connexion.
Autorisations pour les tâches SQL Server
Rubriques
Autorisations pour les tâches de chargement complet uniquement
Les autorisations suivantes sont requises pour effectuer des tâches de chargement complet uniquement. Notez qu’ AWS DMS ne crée pas l’identifiant de connexion dms_user. Pour plus d'informations sur la création d'un identifiant pour SQL Server, voir la rubrique
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;
Autorisations pour les tâches dont la réplication est en cours
Self-managed Les instances SQL Server peuvent être configurées pour une réplication continue à l'aide de DMS avec ou sans utilisation du sysadmin rôle. Pour les instances SQL Server, pour lesquelles vous ne pouvez pas attribuer le sysadmin rôle, assurez-vous que l'utilisateur DMS dispose des privilèges décrits comme suit.
Configuration des autorisations pour la réplication continue à partir d'une base de données SQL Server autogérée
Créez un nouveau compte SQL Server avec authentification par mot de passe à l'aide de SQL Server Management Studio (SSMS) ou comme décrit précédemment dansAutorisations pour les tâches de chargement complet uniquement, par exemple,
self_managed_user.Exécutez les
GRANTcommandes suivantes :GRANT VIEW SERVER STATE TOself_managed_user; USE msdb; GRANT SELECT ON msdb.dbo.backupset TOself_managed_user; GRANT SELECT ON msdb.dbo.backupmediafamily TOself_managed_user; GRANT SELECT ON msdb.dbo.backupfile TOself_managed_user; USE db_name; CREATE USERself_managed_userFOR LOGINself_managed_user; ALTER ROLE [db_owner] ADD MEMBERself_managed_user; GRANT VIEW DEFINITION toself_managed_user;Outre les autorisations précédentes, l'utilisateur a besoin de l'une des autorisations suivantes :
L'utilisateur doit être membre du rôle de serveur
sysadminfixeConfigurations et autorisations telles que décrites dans Configuration de la réplication continue sur une instance SQL Server dans un environnement de groupe de disponibilité : sans le rôle sysadmin ouConfiguration de la réplication continue sur une instance SQL Server autonome : sans le rôle sysadmin, en fonction de votre configuration source.
Configuration des autorisations pour la réplication continue à partir d'une base de données SQL Server dans le cloud
Une instance de serveur SQL hébergée dans le cloud est une instance exécutée sur Amazon RDS pour Microsoft SQL Server, une instance gérée Azure SQL ou toute autre instance SQL Server gérée dans le cloud prise en charge par DMS.
Créez un nouveau compte SQL Server avec authentification par mot de passe à l'aide de SQL Server Management Studio (SSMS) ou comme décrit précédemment dansAutorisations pour les tâches de chargement complet uniquement, par exemple,rds_user.
Exécutez les commandes GRANT suivantes.
GRANT VIEW SERVER STATE TO rds_user;
Pour les sources Amazon RDS pour Microsoft SQL Server, les versions 3.5.3 et supérieures de DMS prennent en charge la lecture à partir des sauvegardes du journal des transactions. Pour vous assurer que DMS est en mesure d'accéder aux sauvegardes des journaux, en plus de ce qui précède, accordez des privilèges master utilisateur ou les privilèges suivants sur une source RDS SQL Server :
USE msdb; 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; 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;
Pour les instances gérées Amazon Azure SQL, accordez les privilèges suivants :
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;
Conditions préalables pour l’utilisation de la réplication continue (CDC) à partir d’une source SQL Server
Vous pouvez utiliser la réplication continue (capture des données de modification ou CDC) pour une base de données SQL Server autogérée sur site ou sur Amazon EC2, ou une base de données de cloud telle que Amazon RDS ou une instance gérée par Microsoft Azure SQL.
Les conditions suivantes s'appliquent précisément lorsque la réplication continue est utilisée avec une base de données SQL Server comme source pour AWS DMS :
-
SQL Server doit être configuré pour des sauvegardes complètes et vous devez effectuer une sauvegarde avant de commencer la réplication des données.
-
Le modèle de récupération doit être défini sur Bulk logged ou Full.
-
La sauvegarde SQL Server sur plusieurs disques n'est pas prise en charge. Si la sauvegarde est définie pour écrire la sauvegarde de la base de données dans plusieurs fichiers sur différents disques, AWS DMS impossible de lire les données et la AWS DMS tâche échoue.
-
Pour les sources SQL Server autogérées, les définitions du diffuseur de publication de réplication SQL Server pour la source utilisée dans une tâche de CDC DMS ne sont pas supprimées lorsque vous supprimez la tâche. Un administrateur système SQL Server doit supprimer ces définitions de SQL Server pour les sources autogérées.
-
Pendant le CDC, AWS DMS doit rechercher les sauvegardes du journal des transactions SQL Server pour lire les modifications. AWS DMS ne prend pas en charge les sauvegardes du journal des transactions SQL Server créées à l'aide d'un logiciel de sauvegarde tiers qui n'est pas au format natif. Pour prendre en charge les sauvegardes du journal des transactions qui sont au format natif et qui ont été créées à l’aide d’un logiciel de sauvegarde tiers, ajoutez l’attribut de connexion
use3rdPartyBackupDevice=Yau point de terminaison source. -
Pour les sources SQL Server autogérées, sachez que SQL Server ne capture pas les modifications sur les tables nouvellement créées tant qu'elles n'ont pas été publiées. Lorsque des tables sont ajoutées à une source SQL Server, AWS DMS gère la création de la publication. Toutefois, ce processus peut prendre plusieurs minutes. Les opérations réalisées sur les tables nouvellement créées pendant ce délai ne sont pas capturées ni répliquées sur la cible.
-
AWS DMS la capture des données de modification nécessite l'activation de la journalisation complète des transactions dans SQL Server. Pour activer la journalisation complète des transactions dans SQL Server, activez MS-REPLICATION ou MODIFIEZ LA CAPTURE DES DONNÉES (CDC).
-
Les entrées tlog SQL Server ne seront pas marquées pour être réutilisées tant que la tâche de capture MS CDC n’aura pas traité ces modifications.
-
Les opérations CDC ne sont pas prises en charge sur les tables de mémoire optimisée. Cette limitation s’applique à SQL Server 2014 (lorsque la fonctionnalité a été introduite pour la première fois) et aux versions ultérieures.
AWS DMS la capture des données de modification nécessite une base de données de distribution par défaut sur Amazon EC2 ou On-Prem SQL Server comme source. Vous devez donc vous assurer d’avoir activé le distributeur lors de la configuration de la réplication MS pour les tables comportant des clés primaires.
Méthodes de compression prises en charge pour SQL Server
Notez ce qui suit concernant la prise en charge des méthodes de compression SQL Server dans AWS DMS :
AWS DMS prend en charge la Row/Page compression dans les versions 2008 et ultérieures de SQL Server.
AWS DMS ne prend pas en charge le format de stockage Vardecimal.
AWS DMS ne prend pas en charge les colonnes éparses et la compression de structures colonnaires.
Utilisation de groupes de AlwaysOn disponibilité SQL Server autogérés
Les groupes de disponibilité SQL Server Always On assurent la haute disponibilité et la reprise après sinistre comme alternative au niveau de l’entreprise à la mise en miroir de base de données.
Dans AWS DMS, vous pouvez migrer les modifications depuis un seul réplica de groupe de disponibilité principal ou secondaire.
Utilisation du réplica de groupe de disponibilité principal
Pour utiliser le groupe de disponibilité principal comme source dans AWS DMS, procédez comme suit :
Activez l’option de distribution pour toutes les instances de SQL Server dans vos réplicas de disponibilité. Pour de plus amples informations, veuillez consulter Configuration de la réplication continue sur une instance SQL Server autogérée.
Dans la AWS DMS console, ouvrez les paramètres de la base de données source SQL Server. Pour Nom du serveur, spécifiez le nom DNS (Domain Name Service) ou l’adresse IP qui a été configuré(e) pour l’écouteur du groupe de disponibilité.
Lorsque vous démarrez une AWS DMS tâche pour la première fois, son démarrage peut prendre plus de temps que d'habitude. Cette lenteur est due au fait que la création des articles de la table est dupliquée par le serveur du groupe de disponibilité.
Utilisation d’un réplica de groupe de disponibilité secondaire
Pour utiliser un groupe de disponibilité secondaire comme source dans AWS DMS, procédez comme suit :
-
Utilisez les mêmes informations d'identification pour vous connecter à des répliques individuelles que celles utilisées par l'utilisateur du terminal AWS DMS source.
-
Assurez-vous que votre instance de AWS DMS réplication peut résoudre les noms DNS de toutes les répliques existantes et s'y connecter. Vous pouvez utiliser la requête SQL suivante pour obtenir les noms DNS de tous vos réplicas.
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>'; Lorsque vous créez le point de terminaison source, spécifiez le nom DNS de l’écouteur du groupe de disponibilité pour le nom du serveur du point de terminaison ou pour l’adresse du serveur du secret de point de terminaison. Pour plus d’informations sur les écouteurs de groupe de disponibilité, consultez Qu’est-ce qu’un écouteur de groupe de disponibilité ?
dans la documentation de SQL Server. Vous pouvez utiliser un serveur DNS public ou un serveur DNS sur site pour résoudre l’écouteur du groupe de disponibilité, le réplica principal et les réplicas secondaires. Pour utiliser un serveur DNS sur site, configurez Amazon Route 53 Resolver. Pour de plus amples informations, veuillez consulter Utilisation de votre propre serveur de noms sur site.
Ajoutez les attributs de connexion supplémentaires suivants au point de terminaison source.
Attribut de connexion supplémentaire Value Remarques applicationIntentReadOnlySans ce paramètre ODBC, la tâche de réplication est routée vers le réplica du groupe de disponibilité principal. Pour plus d’informations, consultez Prise en charge des fonctionnalités de récupération d’urgence, haute disponibilité par SQL Server Native Client dans la documentation de SQL Server. multiSubnetFailoveryesPour plus d’informations, consultez Prise en charge des fonctionnalités de récupération d’urgence, haute disponibilité par SQL Server Native Client dans la documentation de SQL Server. alwaysOnSharedSynchedBackupIsEnabledfalsePour de plus amples informations, veuillez consulter Paramètres des terminaux lors de l'utilisation de SQL Server comme source pour AWS DMS. activateSafeguardfalsePour plus d'informations, consultez Limitations, ci-après. setUpMsCdcForTablesfalsePour plus d'informations, consultez Limitations, ci-après. Activez l’option de distribution sur tous les réplicas de votre groupe de disponibilité. Ajoutez tous les nœuds à la liste des distributeurs. Pour de plus amples informations, veuillez consulter Pour configurer la distribution.
Exécutez la requête suivante sur le réplica principal en lecture-écriture pour activer la publication de la base de données. Vous n’exécutez cette requête qu’une seule fois pour la base de données.
sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';
Limitations
Les limitations de l’utilisation d’un réplica de groupe de disponibilité secondaire sont les suivantes :
AWS DMS ne prend pas en charge Safeguard lors de l'utilisation d'une réplique de groupe de disponibilité en lecture seule comme source. Pour de plus amples informations, veuillez consulter Paramètres des terminaux lors de l'utilisation de SQL Server comme source pour AWS DMS.
AWS DMS ne prend pas en charge l'attribut de connexion
setUpMsCdcForTablessupplémentaire lors de l'utilisation d'une réplique de groupe de disponibilité en lecture seule comme source. Pour de plus amples informations, veuillez consulter Paramètres des terminaux lors de l'utilisation de SQL Server comme source pour AWS DMS.-
AWS DMS peut utiliser un réplica de groupe de disponibilité secondaire autogéré comme base de données source pour une réplication continue (Change Data Capture, ou CDC) à partir de la version 3.4.7. Les répliques en Multi-AZ lecture de Cloud SQL Server ne sont pas prises en charge. Si vous utilisez des versions précédentes de AWS DMS, assurez-vous d'utiliser le réplica du groupe de disponibilité principal comme base de données source pour le CDC.
Basculement vers d’autres nœuds
Si vous définissez l'attribut de connexion ApplicationIntent supplémentaire pour votre terminal surReadOnly, votre AWS DMS tâche se connecte au nœud en lecture seule ayant la priorité de routage en lecture seule la plus élevée. Il bascule ensuite vers les autres nœuds en lecture seule de votre groupe de disponibilité lorsque le nœud en lecture seule ayant la priorité la plus élevée n’est pas disponible. Si vous ne le définissez pasApplicationIntent, votre AWS DMS tâche se connecte uniquement au nœud principal (read/write) de votre groupe de disponibilité.
Paramètres des terminaux lors de l'utilisation de SQL Server comme source pour AWS DMS
Vous pouvez utiliser des paramètres de point de terminaison pour configurer la base de données source SQL Server comme si vous utilisiez des attributs de connexion supplémentaires. Vous spécifiez les paramètres lorsque vous créez le point de terminaison source à l'aide de la AWS DMS console ou en utilisant la create-endpoint commande du AWS CLI, avec la syntaxe --microsoft-sql-server-settings '{" JSON.EndpointSetting":
"value", ...}'
Les paramètres de point de terminaison que vous pouvez utiliser avec SQL Server en tant que source sont indiqués dans le tableau suivant.
| Nom | Description |
|---|---|
|
|
Cet attribut active ou désactive Safeguard. Pour en savoir plus sur Safeguard, consultez Valeur par défaut : Valeurs valides : { Exemple : |
AlwaysOnSharedSynchedBackupIsEnabled |
Cet attribut ajuste le comportement AWS DMS lors de la migration depuis une base de données source SQL Server hébergée dans le cadre d'un cluster de groupes de disponibilité Always On. AWS DMS a amélioré la prise en charge des bases de données sources SQL Server configurées pour s'exécuter dans un cluster Always On. Dans ce cas, AWS DMS tente de savoir si des sauvegardes de transactions sont effectuées à partir de nœuds du cluster Always On autres que le nœud sur lequel l’instance de base de données source est hébergée. Au démarrage de la tâche de migration, AWS DMS essaie de se connecter à chaque nœud du cluster, mais échoue s'il ne parvient à se connecter à aucun des nœuds. Si vous AWS DMS devez interroger tous les nœuds du cluster Always On pour les sauvegardes des transactions, définissez cet attribut sur Valeur par défaut : Valeurs valides : Exemple : |
|
Ce paramètre d’attribut du pilote ODBC oblige SQL Server à router votre tâche de réplication vers le nœud en lecture seule ayant la priorité la plus élevée. Sans ce paramètre, SQL Server route votre tâche de réplication vers le nœud en lecture-écriture principal. |
|
|
Utilisez cet attribut de connexion supplémentaire (ECA) pour définir le délai de connexion du point de terminaison pour l'instance SQL Server, en secondes. La valeur par défaut est de 10 secondes. Exemple ECA : |
|
|
Utilisez ce paramètre de point de terminaison lorsque vous configurez la réplication continue sur un serveur SQL Server autonome sans utilisateur sysadmin. Ce paramètre est pris en charge sur les AWS DMS versions 3.4.7 et supérieures. Pour en savoir plus sur la configuration de la réplication continue sur une instance SQL Server autonome, consultez Capture des modifications de données pour une réplication continue à partir de SQL Server. Valeur par défaut : Valeurs valides : Exemple : |
|
Utilisez cet attribut de connexion supplémentaire (ECA) pour définir le délai d’expiration de l’instruction client pour l’instance SQL Server, en secondes. La valeur par défaut est de 60 secondes. Exemple : |
|
Lorsqu’il est défini sur Valeur par défaut : Valeurs valides : Exemple : |
|
|
Force la recherche d’objets LOB sur le LOB en ligne. Valeur par défaut : Valeurs valides : Exemple : |
|
Cet attribut de pilote ODBC permet à DMS de se connecter au nouveau groupe de disponibilité principal en cas de basculement d’un groupe de disponibilité. Cet attribut a été conçu pour les situations où la connexion est rompue ou si l’adresse IP de l’écouteur est incorrecte. Dans ces situations, AWS DMS tente de se connecter à toutes les adresses IP associées à l'écouteur du groupe de disponibilité. |
|
L’utilisation de cet attribut nécessite des privilèges sysadmin. Lorsque cet attribut est défini sur Valeurs valides : Exemple : NoteCe paramètre ne fonctionne pas sur les instances source Amazon RDS SQL Server en raison de la manière dont RDS effectue les sauvegardes. |
|
|
Pour des performances optimales, AWS DMS essaie de capturer toutes les modifications non lues du journal des transactions actif (TLOG). Toutefois, il arrive parfois qu’en raison d’une troncation, le TLOG actif ne contienne pas toutes les modifications non lues. Dans ce cas, AWS DMS accède à la sauvegarde du journal pour capturer les modifications manquantes. Pour minimiser le besoin d'accéder à la sauvegarde du journal, AWS DMS évitez la troncature à l'aide de l'une des méthodes suivantes :
Valeur par défaut : Valeurs valides : { Exemple : |
|
Cet attribut est activé MS-CDC pour la base de données source et pour les tables du mappage des tâches qui ne sont pas MS-Replication activées. La définition de cette valeur pour Valeurs valides : { Exemple : |
|
|
Indique le mode utilisé pour extraire les données de CDC. Valeur par défaut : Valeurs valides : Exemple : |
|
Lorsque cet attribut est défini sur |
Types de données sources pour SQL Server
La migration de données qui utilise SQL Server comme source AWS DMS prend en charge la plupart des types de données SQL Server. Le tableau suivant indique les types de données source SQL Server qui sont pris en charge lors de l'utilisation AWS DMS et le mappage par défaut à partir AWS DMS des types de données.
Pour en savoir plus sur la façon d'afficher le type de données qui est mappé dans la cible, consultez la section concernant le point de terminaison cible que vous utilisez.
Pour plus d'informations sur AWS DMS les types de données, consultezTypes de données pour AWS Database Migration Service.
|
Types de données SQL Server |
AWS DMS types de données |
|---|---|
|
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 (SQL Server 2008 et versions ultérieures) |
DATETIME |
|
SMALLDATETIME |
DATETIME |
|
DATE |
DATE |
|
TIME |
TIME |
|
DATETIMEOFFSET |
WSTRING |
|
CHAR |
CHAÎNE |
|
VARCHAR |
CHAÎNE |
|
VARCHAR (max) |
CLOB TEXT Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation des types de données CLOB pour une tâche spécifique. Pour les tables SQL Server, AWS DMS met à jour les colonnes LOB de la cible, même pour les instructions UPDATE qui ne modifient pas la valeur de la colonne LOB dans SQL Server. Pendant le CDC, AWS DMS prend en charge les types de données CLOB uniquement dans les tableaux qui incluent une clé primaire. |
|
NCHAR |
WSTRING |
|
NVARCHAR (length) |
WSTRING |
|
NVARCHAR (max) |
NCLOB NTEXT Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation de SupportLobs pour une tâche spécifique. Pour plus d’informations sur l’activation de la prise en charge des objets LOB, consultez Configuration de la prise en charge LOB pour les bases de données sources dans un AWS DMS tâche. Pour les tables SQL Server, AWS DMS met à jour les colonnes LOB de la cible, même pour les instructions UPDATE qui ne modifient pas la valeur de la colonne LOB dans SQL Server. Pendant le CDC, AWS DMS prend en charge les types de données CLOB uniquement dans les tableaux qui incluent une clé primaire. |
|
BINAIRE |
BYTES |
|
VARBINARY |
BYTES |
|
VARBINARY (max) |
BLOB IMAGE Pour les tables SQL Server, AWS DMS met à jour les colonnes LOB de la cible, même pour les instructions UPDATE qui ne modifient pas la valeur de la colonne LOB dans SQL Server. Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation des types de données BLOB pour une tâche spécifique. AWS DMS prend en charge les types de données BLOB uniquement dans les tableaux qui incluent une clé primaire. |
|
TIMESTAMP |
BYTES |
|
UNIQUEIDENTIFIER |
CHAÎNE |
|
HIERARCHYID |
Utilisez HIERARCHYID lors de la réplication sur un point de terminaison cible SQL Server. Utilisez WSTRING (250) lors de la réplication sur tous les autres points de terminaison cibles. |
|
xml |
NCLOB Pour les tables SQL Server, AWS DMS met à jour les colonnes LOB de la cible, même pour les instructions UPDATE qui ne modifient pas la valeur de la colonne LOB dans SQL Server. Pour utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation des types de données NCLOB pour une tâche spécifique. Pendant le CDC, AWS DMS prend en charge les types de données NCLOB uniquement dans les tableaux qui incluent une clé primaire. |
|
GEOMETRY |
Utilisez GEOMETRY lors de la réplication de points de terminaison cibles qui prennent en charge ce type de données. Utilisez CLOB lors de la réplication de points de terminaison cibles qui ne prennent pas en charge ce type de données. |
|
GEOGRAPHY |
Utilisez GEOGRAPHY lors de la réplication de points de terminaison cibles qui prennent en charge ce type de données. Utilisez CLOB lors de la réplication de points de terminaison cibles qui ne prennent pas en charge ce type de données. |
AWS DMS ne prend pas en charge les tables qui incluent des champs contenant les types de données suivants.
-
CURSOR
-
SQL_VARIANT
-
TABLE
Note
User-defined les types de données sont pris en charge en fonction de leur type de base. Par exemple, un type de données défini par l'utilisateur basé sur DATETIME est traité en tant que type de données DATETIME.