Utilizar um banco de dados Microsoft SQL Server como destino do AWS Database Migration Service - AWS Database Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Utilizar um banco de dados Microsoft SQL Server como destino do AWS Database Migration Service

É possível migrar dados para bancos de dados Microsoft SQL Server utilizando o AWS DMS. Com um banco de dados SQL Server como destino, é possível migrar dados de outro banco de dados SQL Server ou de um dos outros bancos de dados compatíveis.

Para obter informações sobre as versões do SQL Server que são compatíveis com o AWS DMS como destino, consulte Metas para AWS DMS.

O AWS DMS é compatível com as edições on-premises Enterprise, Standard, Workgroup e Developer do Amazon RDS.

Para obter mais detalhes sobre o trabalho com o AWS DMS e bancos de dados de destino SQL Server, consulte:

Limitações ao utilizar o SQL Server como destino do AWS Database Migration Service

As seguintes limitações se aplicam à utilização de um banco de dados SQL Server como destino do AWS DMS:

  • Ao criar manualmente uma tabela de destino do SQL Server com uma coluna calculada, a replicação de carga máxima não é compatível ao utilizar o utilitário de cópia em massa BCP. Para utilizar a replicação de carga máxima, desative o carregamento de BCP definindo o atributo de conexão adicional (ECA) 'useBCPFullLoad=false' no endpoint. Para obter informações sobre como configurar ECAs em endpoints, consulte Criar endpoints de origem e de destino. Para obter mais informações sobre como trabalhar com o BCP, consulte a documentação do Microsoft SQL Server.

  • Ao replicar tabelas com tipos de dados espaciais do SQL Server (GEOMETRY e GEOGRAPHY), o AWS DMS substitui qualquer identificador de referência espacial (SRID) que você tenha pelo SRID padrão. O SRID padrão é 0 para GEOMETRY e 4326 para GEOGRAPHY.

  • Tabelas temporais não são compatíveis. A migração de tabelas temporais pode funcionar com uma tarefa somente replicação no modo de aplicação transacional se essas tabelas forem criadas manualmente no destino.

  • Atualmente, os tipos de dados boolean em uma origem do PostgreSQL são migrados para um destino do SQL Server como o tipo de dados bit com valores inconsistentes.

    Como alternativa, faça o seguinte:

    • Crie previamente a tabela com um tipo de dados VARCHAR(1) para a coluna (ou deixe o AWS DMS criar a tabela). Depois, deixe o processamento downstream tratar um "F" como Falso e um "T" como Verdadeiro.

    • Para evitar a necessidade de alterar o processamento downstream, adicione uma regra de transformação à tarefa para alterar os valores “F” para “0" e os valores “T” para 1 e armazená-los como o tipo de dados de bits do servidor SQL.

  • O AWS DMS não é compatível com o processamento de alterações para definir a nulidade da coluna (utilizando a cláusula ALTER COLUMN [SET|DROP] NOT NULL com instruções ALTER TABLE).

  • A Autenticação do Windows não é compatível.

Requisitos de segurança ao utilizar o SQL Server como destino do AWS Database Migration Service

Veja a seguir a descrição dos requisitos de segurança para utilizar o AWS DMS com um destino do Microsoft SQL Server:

  • A conta do usuário do AWS DMS deve ter pelo menos o perfil do usuário db_owner no banco de dados SQL Server ao qual você está se conectando.

  • Um administrador de sistema do SQL Server deve fornecer essa permissão a todas as contas de usuário do AWS DMS.

Configurações de endpoint ao utilizar o SQL Server como destino do AWS DMS

É possível utilizar as configurações de endpoint para configurar o banco de dados de destino do SQL Server de forma semelhante à utilização de atributos de conexão adicional. Você especifica as configurações ao criar o endpoint de destino utilizando o console do AWS DMS ou o comando create-endpoint na AWS CLI, com a sintaxe --microsoft-sql-server-settings '{"EndpointSetting": "value", ...}' do JSON.

A tabela a seguir mostra as configurações de endpoint que é possível utilizar com o SQL Server como destino.

Nome Descrição

ControlTablesFileGroup

Especifique um grupo de arquivos para as tabelas internas do AWS DMS. Quando a tarefa de replicação é iniciada, todas as tabelas internas de controle do AWS DMS (awsdms_ apply_exception, awsdms_apply, awsdms_changes) são criadas no grupo de arquivos especificado.

Valor padrão: n/d

Valores válidos: string

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

O exemplo a seguir apresenta instruções para criar um grupo de arquivos.

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

Utilize esse atributo de conexão adicional (ECA) para definir o tempo limite da instrução do cliente para a instância do SQL Server, em segundos. O valor padrão é de 60 segundos.

Exemplo: '{"ExecuteTimeout": 100}'

UseBCPFullLoad

Utilize esse atributo para transferir dados para operações de carga máxima utilizando BCP. Quando a tabela de destino contém uma coluna de identidade que não existe na tabela de origem, desative a opção Utilizar BCP ao carregar tabelas.

Valor padrão: verdadeiro

Valores válidos: verdadeiro/falso

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

Tipos de dados de destino do Microsoft SQL Server

A tabela a seguir mostra os tipos de dados de destino do Microsoft SQL Server compatíveis com o AWS DMS e o mapeamento padrão relativo aos tipos de dados do AWS DMS. Para obter mais informações sobre os tipos de dados do AWS DMS, consulte Tipos de dados do AWS Database Migration Service.

Tipo de dados do AWS DMS

Tipo de dados do SQL Server

BOOLEAN

TINYINT

BYTES

VARBINARY(tamanho)

DATA

No SQL Server 2008 e superior, utilize DATE.

Para versões anteriores, se a escala for menor ou igual a 3, use DATETIME. Em todos os demais casos, use VARCHAR (37).

TIME

No SQL Server 2008 e superior, utilize DATETIME2 (%d).

Para versões anteriores, se a escala for menor ou igual a 3, use DATETIME. Em todos os demais casos, use VARCHAR (37).

DATETIME

No SQL Server 2008 e superior, utilize DATETIME2 (escala).

Para versões anteriores, se a escala for menor ou igual a 3, use DATETIME. Em todos os demais casos, use VARCHAR (37).

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIC (p,s)

REAL4

REAL

REAL8

FLOAT

STRING

Se a coluna for de data ou hora, faça o seguinte:

  • No SQL Server 2008 e superior, utilize DATETIME2.

  • Para versões anteriores, se a escala for menor ou igual a 3, use DATETIME. Em todos os demais casos, use VARCHAR (37).

Se a coluna não é uma data ou hora, use VARCHAR (tamanho).

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INT

UINT8

BIGINT

WSTRING

NVARCHAR (tamanho)

BLOB

VARBINARY(máximo)

IMAGE

Para utilizar esse tipo de dados com o AWS DMS, ative a utilização de BLOBs em uma tarefa específica. O AWS DMS é compatível com os tipos de dados BLOB somente em tabelas que possuem uma chave primária.

CLOB

VARCHAR(máximo)

Para usar esse tipo de dados no AWS DMS, é necessário habilitar o uso de CLOBs em uma tarefa específica. Durante uma captura de dados de alteração (CDC), o AWS DMS é compatível com os tipos de dados CLOB somente em tabelas que incluem uma chave primária.

NCLOB

NVARCHAR(máximo)

Para usar esse tipo de dados no AWS DMS, é necessário habilitar o uso de NCLOBs em uma tarefa específica. Durante uma captura de dados de alteração (CDC), o AWS DMS oferece suporte aos tipos de dados NCLOB somente em tabelas que incluem uma chave primária.