Utilisation d'une base de données Microsoft SQL Server comme cible pour AWS Database Migration Service - AWS Service de Migration de Base de Données

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 cible pour AWS Database Migration Service

Vous pouvez migrer les données vers les bases de données Microsoft SQL Server à l'aide de AWS DMS. Avec une base de données SQL Server comme cible, vous pouvez migrer les données à partir d'une autre base de données SQL Server, ou d'une des autres bases de données prises en charge.

Pour en savoir plus sur les versions de SQL Server qui sont prises en charge par AWS DMS en tant que cible, consultez Objectifs pour AWS DMS.

AWS DMS prend en charge les éditions sur site ainsi que les versions Enterprise, Standard, Workgroup, Developer et Web d’Amazon RDS.

Pour plus de détails sur l'utilisation de AWS DMS et des bases de données cibles SQL Server, consultez les ressources suivantes.

Limitations sur l'utilisation de SQL Server comme cible pour AWS Database Migration Service

Les limitations suivantes s'appliquent lors de l'utilisation d'une base de données SQL Server comme cible pour AWS DMS :

  • Lorsque vous créez manuellement une table SQL Server cible avec une colonne calculée, la réplication de chargement complet n'est pas prise en charge lors de l'utilisation de l'utilitaire de copie groupée BCP. Pour utiliser la réplication à chargement complet, désactivez le chargement BCP en définissant l'attribut de connexion supplémentaire (ECA) 'useBCPFullLoad=false' sur le point de terminaison. Pour en savoir plus sur la définition d'ECA sur les points de terminaison, consultez Création de points de terminaison source et cible. Pour en savoir plus sur l'utilisation avec BCP, consultez la documentation Microsoft SQL Server.

  • Lors de la réplication de tables avec des types de données spatiales SQL Server (GEOMETRY et GEOGRAPHY), AWS DMS remplace tous les identifiants de référence spatiale (SRID) que vous pouvez avoir insérés par le SRID par défaut. Le SRID par défaut est 0 pour GEOMETRY et 4326 pour GEOGRAPHY.

  • Les tables temporelles ne sont pas prises en charge. La migration de tables temporelles peut fonctionner avec une tâche de réplication seule en mode d'application transactionnelle si ces tables sont créées manuellement sur la cible.

  • Actuellement, les types de données boolean dans une source PostgreSQL sont migrés vers une cible SQLServer en tant que type de données bit avec des valeurs incohérentes.

    Pour contourner ce problème, procédez comme suit :

    • Pré-créez la table au préalable avec un type de données VARCHAR(1) pour la colonne (ou laissez AWS DMS créer la table). Ensuite, faites en sorte que le traitement en aval traite un « F » comme Faux et un « T » comme Vrai.

    • Pour éviter d'avoir à modifier le traitement en aval, ajoutez une règle de transformation à la tâche pour remplacer les valeurs « F » par « 0 » et les valeurs « T » par 1, puis stockez-les en tant que type de données binaire SQL Server.

  • AWS DMS ne prend pas en charge le traitement des modifications pour définir la possibilité de valeur NULL des colonnes (à l'aide de la clause ALTER COLUMN [SET|DROP] NOT NULL avec les instructions ALTER TABLE).

  • L'authentification Windows n'est pas prise en charge.

Exigences de sécurité lors de l'utilisation de SQL Server comme cible pour AWS Database Migration Service

La section suivante décrit les exigences de sécurité pour l'utilisation de AWS DMS avec une cible de Microsoft SQL Server :

  • Le compte utilisateur AWS DMS doit avoir au moins le rôle utilisateur db_owner sur la base de données SQL Server à laquelle vous êtes connecté.

  • Un administrateur système SQL Server doit fournir cette autorisation à tous les comptes utilisateur AWS DMS.

Paramètres de point de terminaison lors de l'utilisation de SQL Server en tant que cible pour AWS DMS

Vous pouvez utiliser des paramètres de point de terminaison pour configurer la base de données cible 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 cible à l'aide de la console AWS DMS ou à l'aide de la commande create-endpoint dans AWS CLI, avec la syntaxe JSON --microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'.

Les paramètres de point de terminaison que vous pouvez utiliser avec SQL Server en tant que cible sont indiqués dans le tableau suivant.

Nom Description

ControlTablesFileGroup

Spécifier un groupe de fichiers pour les tables internes de AWS DMS. Lorsque la tâche de réplication commence, toutes les tables de contrôle AWS DMS internes (awsdms_ apply_exception, awsdms_apply, awsdms_changes) sont créées dans le groupe de fichiers spécifié.

Valeur par défaut : s/o

Valeurs valides : string

Exemple : --microsoft-sql-server-settings '{"ControlTablesFileGroup": "filegroup1"}'

Voici un exemple d'une commande pour créer un groupe de fichiers.

ALTER DATABASE replicate ADD FILEGROUP Test1FG1; GO ALTER DATABASE replicate ADD FILE (        NAME = test1dat5,        FILENAME = 'C:\temp\DATA\t1dat5.ndf',        SIZE = 5MB,        MAXSIZE = 100MB,        FILEGROWTH = 5MB    )    TO FILEGROUP Test1FG1;    GO

ExecuteTimeout

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 : '{"ExecuteTimeout": 100}'

UseBCPFullLoad

Utilisez cet attribut pour transférer les données pour les opérations de chargement complet à l'aide de BCP. Lorsque la table cible contient une colonne d'identité qui n'existe pas dans la table source, vous devez désactiver l'option Utiliser BCP pour charger la table.

Valeur par défaut : true

Valeurs valides : true/false

Exemple : --microsoft-sql-server-settings '{"UseBCPFullLoad": false}'

Types de données cibles pour Microsoft SQL Server

Le tableau suivant présente les types de données cibles Microsoft SQL Server qui sont pris en charge lorsque vous utilisez AWS DMS et le mapping par défaut des types de données AWS DMS. Pour de plus amples informations sur les types de données AWS DMS, veuillez consulter Types de données pour AWS Database Migration Service.

Type de données AWS DMS

Type de données SQL Server

BOOLEAN

TINYINT

BYTES

VARBINARY(Length)

DATE

Pour SQL Server 2008 et versions ultérieures, utilisez DATE.

Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisez DATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

TIME

Pour SQL Server 2008 et versions ultérieures, utilisez DATETIME2 (%d).

Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisez DATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

DATETIME

Pour SQL Server 2008 et versions ultérieures, utilisez DATETIME2 (scale).

Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisez DATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIC (p,s)

REAL4

REAL

REAL8

FLOAT

CHAÎNE

Si la colonne est une colonne de date ou d'heure, effectuez les opérations suivantes :

  • Pour SQL Server 2008 et versions ultérieures, utilisez DATETIME2.

  • Pour les versions antérieures, si l'échelle est 3 ou inférieure utilisez DATETIME. Dans tous les autres cas, utilisez VARCHAR (37).

Si la colonne n'est pas une colonne de date ou d'heure, utilisez VARCHAR (length).

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INT

UINT8

BIGINT

WSTRING

NVARCHAR (length)

BLOB

VARBINARY(max)

IMAGE

Pour pouvoir utiliser ce type de données avec AWS DMS, vous devez activer l'utilisation des BLOB pour une tâche spécifique. AWS DMS prend en charge les types de données BLOB uniquement dans les tables qui contiennent une clé primaire.

CLOB

VARCHAR(max)

Pour pouvoir 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. Au cours de la capture des données modifiées (CDC), AWS DMS prend en charge les types de données CLOB uniquement dans les tables qui comprennent une clé primaire.

NCLOB

NVARCHAR(max)

Pour pouvoir 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. Au cours de la capture des données modifiées (CDC), AWS DMS prend en charge les types de données NCLOB uniquement dans les tables qui contiennent une clé primaire.