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 o Babelfish como destino do AWS Database Migration Service
É possível migrar dados de um banco de dados de origem Microsoft SQL Server para um destino Babelfish utilizando o AWS Database Migration Service.
O Babelfish for Aurora PostgreSQL amplia seu banco de dados Amazon Aurora, edição compatível com PostgreSQL, com a capacidade de aceitar conexões de banco de dados provenientes de clientes Microsoft SQL Server. Fazer isso permite que aplicações originalmente criadas para o SQL Server funcionem diretamente com o Aurora PostgreSQL, com poucas alterações de código em comparação com uma migração tradicional e sem alterar drivers de bancos de dados.
Para obter informações sobre as versões do Babelfish compatíveis com o AWS DMS como destino, consulte Metas para AWS DMS. As versões anteriores do Babelfish no Aurora PostgreSQL exigem um upgrade antes de utilizar o endpoint do Babelfish.
nota
O endpoint de destino do Aurora PostgreSQL é a forma preferida de migrar dados para o Babelfish. Para obter mais informações, consulte Utilizar o Babelfish para Aurora PostgreSQL como destino.
Para obter informações sobre como utilizar o Babelfish como um endpoint de banco de dados, consulte Babelfish para Aurora PostgreSQL no Guia do usuário do Amazon Aurora para Aurora
Pré-requisitos para a utilização do Babelfish como destino do AWS DMS
Crie as tabelas antes de migrar os dados para garantir que o AWS DMS utilize os tipos de dados e metadados de tabela corretos. Se você não criar as tabelas no destino antes de executar a migração, o AWS DMS poderá criar as tabelas com tipos de dados e permissões incorretos. Por exemplo, o AWS DMS cria uma coluna de timestamp como binária(8) em vez disso, e não fornece a funcionalidade de timestamp/rowversion esperada.
Como preparar e criar as tabelas antes da migração
-
Execute as instruções DDL de criação de tabela que incluam quaisquer restrições exclusivas, chaves primárias ou restrições padrão.
Não inclua restrições de chave estrangeira nem instruções DDL para objetos, como visualizações, procedimentos armazenados, perfis ou acionadores. É possível aplicá-las depois de migrar o banco de dados de origem.
-
Identifique quaisquer colunas de identidade, colunas computadas ou colunas contendo tipos de dados rowversion ou timestamp nas tabelas. Crie as regras de transformação necessárias para lidar com problemas conhecidos ao executar a tarefa de migração. Para obter mais informações, consulte, Regras de transformação e ações.
-
Identifique colunas com tipos de dados não compatíveis com o Babelfish. Altere as colunas afetadas na tabela de destino para utilizar os tipos de dados compatíveis ou crie uma regra de transformação que os remova durante a tarefa de migração. Para obter mais informações, consulte, Regras de transformação e ações.
A tabela a seguir lista os tipos de dados de origem não compatíveis com o Babelfish e o tipo de dados de destino recomendado correspondente a ser utilizado.
Tipo de dados de origem
Tipo de dados do Babelfish recomendado
HEIRARCHYID
NVARCHAR(250)
GEOMETRY
VARCHAR(MAX)
GEOGRAPHY
VARCHAR(MAX)
Como definir o nível de unidades de capacidade do Aurora (ACUs) para o banco de dados de origem do Aurora PostgreSQL Sem Servidor V2
É possível melhorar o desempenho da tarefa de migração do AWS DMS antes de executá-la definindo o valor mínimo de ACU.
-
Na janela Configurações da capacidade do Sem Servidor v2, defina as ACUs mínimas como
2
ou como um nível razoável para o cluster do banco de dados Aurora.Para obter mais informações sobre as unidades de capacidade do Aurora, consulte Escolher o intervalo de capacidade do Aurora Sem Servidor v2 para um cluster do Aurora no Guia do usuário do Amazon Aurora.
Depois de executar a tarefa de migração do AWS DMS, é possível redefinir o valor mínimo de ACUs como um nível razoável para o banco de dados de origem do Aurora PostgreSQL Sem Servidor V2.
Requisitos de segurança ao utilizar o Babelfish 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 Babelfish:
-
O nome de usuário do administrador (o usuário administrador) utilizado para criar o banco de dados.
-
Login e usuário do PSQL com permissões suficientes para SELECT, INSERT, UPDATE, DELETE e REFERENCES.
Permissões de usuário para utilizar o Babelfish como destino do AWS DMS
Importante
Para fins de segurança, a conta de usuário utilizada para a migração de dados deve ser um usuário registrado em qualquer banco de dados Babelfish que você utilize como destino.
O endpoint de destino do Babelfish requer permissões mínimas de usuário para executar uma migração do AWS DMS.
Como criar um login e um usuário do Transact-SQL (T-SQL) com poucos privilégios
-
Crie um login e uma senha a serem utilizados ao se conectar ao servidor.
CREATE LOGIN dms_user WITH PASSWORD =
'password'
; GO -
Crie o banco de dados virtual para o cluster do Babelfish.
CREATE DATABASE my_database; GO
-
Crie o usuário T-SQL para o banco de dados de destino.
USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
-
Para cada tabela no banco de dados Babelfish, permissões de GRANT para as tabelas.
GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;
Limitações da utilização do Babelfish como destino do AWS Database Migration Service
As seguintes limitações se aplicam à utilização de um banco de dados Babelfish como destino do AWS DMS:
-
Somente o modo de preparação de tabela “Não executar nenhuma ação” é compatível.
-
O tipo de dados ROWVERSION exige uma regra de mapeamento de tabela que remove o nome da coluna da tabela durante a tarefa de migração.
-
O tipo de dados sql_variant não é compatível.
-
O modo LOB completo é compatível. A utilização do SQL Server como um endpoint de origem exige a configuração
ForceFullLob=True
do Atributo de conexão do endpoint do SQL Server definida para que os LOBs sejam migrados para o endpoint de destino. -
As configurações da tarefa de replicação têm as seguintes limitações:
{ "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. }
-
Os tipos de dados TIME(7), DATETIME2(7) e DATETIMEOFFSET(7) no Babelfish limitam o valor de precisão da parte de segundos do tempo a seis dígitos. Considere utilizar um valor de precisão de seis para a tabela de destino ao utilizar esses tipos de dados. Nas versões 2.2.0 e superiores do Babelfish, ao utilizar TIME(7) e DATETIME2(7), o sétimo dígito de precisão é sempre zero.
-
No modo DO_NOTHING, o DMS verifica se a tabela já existe. Se a tabela não existir no esquema de destino, o DMS criará a tabela com base na definição da tabela de origem e mapeará todos os tipos de dados definidos pelo usuário para o tipo de dados base.
-
Uma tarefa de migração do AWS DMS para um destino Babelfish não é compatível com tabelas que tenham colunas que utilizam os tipos de dados ROWVERSION ou TIMESTAMP. É possível utilizar uma regra de mapeamento de tabela que remove o nome da coluna da tabela durante o processo de transferência. No exemplo de regra de transformação a seguir, uma tabela nomeada
Actor
na origem é transformada para remover todas as colunas que começam com os caracteresActor
da tabelacol
no destino.{ "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%" } }] }
-
Para tabelas com colunas de identidade ou computadas, em que as tabelas de destino utilizam nomes com maiúsculas e minúsculas, como Categorias, crie uma ação de regra de transformação que converta os nomes das tabelas em minúsculas para a tarefa do DMS. O exemplo a seguir mostra como criar a ação da regra de transformação, Colocar em letras minúsculas, utilizando o console do AWS DMS. Para obter mais informações, consulte Regras de transformação e ações.
-
Antes da versão 2.2.0 do Babelfish, o DMS limitava o número de colunas que você podia replicar para um endpoint de destino do Babelfish a vinte colunas. Com o Babelfish 2.2.0, o limite aumentou para cem colunas. Mas com as versões 2.4.0 e superiores do Babelfish, o número de colunas que é possível replicar aumenta novamente. É possível executar o exemplo de código a seguir no banco de dados SQL Server para determinar quais tabelas são muito longas.
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 ;
Tipos de dados de destino do Babelfish
A tabela a seguir mostra os tipos de dados de destino do Babelfish que são compatíveis ao utilizar o AWS DMS e o mapeamento padrão dos 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 Babelfish |
---|---|
BOOLEAN |
TINYINT |
BYTES |
VARBINARY(tamanho) |
DATE |
DATE |
TIME |
TIME |
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:
Se a coluna não for uma data ou hora, utilize VARCHAR (tamanho). |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INT |
UINT8 |
BIGINT |
WSTRING |
NVARCHAR(tamanho) |
BLOB |
VARBINARY(máximo) Para utilizar esse tipo de dados com o DMS, ative a utilização de BLOBs em uma tarefa específica. O DMS é compatível com os tipos de dados BLOB somente em tabelas que possuem uma chave primária. |
CLOB |
VARCHAR(máximo) Para utilizar esse tipo de dados com o DMS, ative a utilização de CLOBs em uma tarefa específica. |
NCLOB |
NVARCHAR(máximo) Para utilizar esse tipo de dados com o DMS, ative a utilização de NCLOBs em uma tarefa específica. Durante a CDC, o DMS é compatível com os tipos de dados NCLOB somente em tabelas que incluem uma chave primária. |