Migrar um banco de dados do SQL Server para o Babelfish para Aurora PostgreSQL
É possível usar o Babelfish para Aurora PostgreSQL para migrar um banco de dados do SQL Server para um cluster de bancos de dados do Amazon Aurora PostgreSQL. Antes da migração, leia Utilizar o Babelfish com um único banco de dados ou vários bancos de dados.
Tópicos
Visão geral do processo de migração
O resumo a seguir lista as etapas necessárias para migrar com êxito sua aplicação SQL Server e fazê-la funcionar com o Babelfish. Para obter informações sobre as ferramentas que você pode usar para os processos de exportação e importação e para obter mais detalhes, consulte Ferramentas de importação/exportação para realizar a migração do SQL Server para o Babelfish. Para carregar os dados, recomendamos usar o AWS DMS com um cluster de banco de dados do Aurora PostgreSQL como o endpoint de destino.
-
Crie um cluster de banco de dados do Aurora PostgreSQL com o Babelfish ativado. Para saber como, consulte Criar um cluster de banco de dados do Babelfish para Aurora PostgreSQL.
Para importar os vários artefatos SQL exportados do banco de dados do SQL Server, conecte-se ao cluster do Babelfish usando uma ferramenta do SQL Server, como sqlcmd
. Para ter mais informações, consulte Utilizar um cliente SQL Server para se conectar ao seu cluster de banco de dados. -
No banco de dados do SQL Server que você deseja migrar, exporte a linguagem de definição de dados (DDL). A DDL é um código SQL que descreve objetos de banco de dados que contêm dados de usuários (como tabelas, índices e visualizações) e código de banco de dados escrito pelo usuário (como procedimentos armazenados, funções definidas pelo usuário e acionadores).
Para ter mais informações, consulte Usar o SQL Server Management Studio (SSMS) para migrar para o Babelfish.
-
Execute uma ferramenta de avaliação para avaliar o escopo de quaisquer alterações que talvez você precise fazer para que o Babelfish possa oferecer compatibilidade com a aplicação em execução no SQL Server de forma eficiente. Para ter mais informações, consulte Avaliar e lidar com diferenças entre o SQL Server e o Babelfish.
-
Analise as limitações do endpoint de destino do AWS DMS e atualize o script de DDL conforme necessário. Consulte mais informações em “Limitations to using a PostgreSQL target endpoint with Babelfish tables” em Using Babelfish for Aurora PostgreSQL as a target for AWS Database Migration Service.
-
No novo cluster de banco de dados do Babelfish, execute a DDL em seu banco de dados T-SQL especificado para criar apenas os esquemas, os tipos de dados definidos pelo usuário e as tabelas com suas restrições de chave primária.
-
Use o AWS DMS para migrar seus dados do SQL Server para as tabelas do Babelfish. Para replicação contínua usando o SQL Server Change Data Capture ou o SQL Replication, use o Aurora PostgreSQL em vez do Babelfish como endpoint. Para fazer isso, consulte Using Babelfish for Aurora PostgreSQL as a target for AWS Database Migration Service.
-
Quando o carregamento de dados for concluído, crie todos os objetos T-SQL restantes que são compatíveis com a aplicação em seu cluster do Babelfish.
-
Reconfigure sua aplicação cliente para se conectar ao endpoint do Babelfish em vez do banco de dados SQL Server. Para ter mais informações, consulte Conectar-se a um cluster de banco de dados do Babelfish.
-
Modifique sua aplicação se necessário e teste novamente. Para ter mais informações, consulte Diferenças entre o Babelfish para Aurora PostgreSQL e o SQL Server.
Você ainda precisa avaliar suas consultas SQL do lado do cliente. Os esquemas gerados a partir da instância do SQL Server convertem somente o código SQL do lado do servidor. Recomendamos que você execute as seguintes etapas:
-
Capture consultas do lado do cliente usando o SQL Server Profiler com o modelo predefinido TSQL_Replay. Esse modelo captura informações de instrução T-SQL que podem ser reproduzidas para ajuste e teste iterativos. Você pode iniciar o profiler no SQL Server Management Studio, no menu Tools (Ferramentas). Selecione SQL Server Profiler para abrir o profiler e escolher o modelo TSQL_replay.
Para usar para a migração do Babelfish, inicie um rastreamento e execute a aplicação usando seus testes funcionais. O profiler captura as instruções T-SQL. Ao terminar o teste, interrompa o rastreamento. Salve o resultado em um arquivo XML com suas consultas do lado do cliente (File (Arquivo) > Save as (Salvar como) > Trace XML File for Replay (Rastrear arquivo XML para repetição)).
Para obter mais informações, consulte SQL Server Profiler
na documentação da Microsoft. Para obter mais informações sobre o modelo TSQL_Replay, consulte Modelos do SQL Server Profiler . -
Para aplicações com consultas SQL complexas no lado do cliente, recomendamos que você use o Babelfish Compass para analisar a compatibilidade delas com o Babelfish. Se a análise indicar que as instruções SQL no lado do cliente contêm recursos SQL incompatíveis, revise os aspectos SQL na aplicação cliente e faça modificações, se necessário.
-
Você também pode capturar as consultas SQL como eventos estendidos (formato .xel). Para isso, use o SSMS XEvent Profiler. Depois de gerar o arquivo .xel, extraia as instruções SQL em arquivos .xml que o Compass poderá processar. Para obter mais informações, consulte Use the SSMS XEvent Profler
(Usar o SSMS XEvent Profler) na documentação da Microsoft.
Quando estiver satisfeito com todos os testes, análises e quaisquer modificações necessárias para a aplicação migrada, você poderá começar a usar o banco de dados do Babelfish para produção. Para fazer isso, interrompa o banco de dados original e redirecione aplicações cliente ativas para utilizar a porta do TDS do Babelfish.
nota
Agora o AWS DMS permite a replicação de dados do Babelfish. Consulte mais informações em AWS DMS now supports Babelfish for Aurora PostgreSQL as a source
Avaliar e lidar com diferenças entre o SQL Server e o Babelfish
Para obter melhores resultados, recomendamos que você avalie a DDL/DML gerada e o código de consulta do cliente antes de realmente migrar sua aplicação de banco de dados SQL Server para o Babelfish. Dependendo da versão do Babelfish e dos recursos específicos do SQL Server implementados pela aplicação, talvez seja necessário refatorar sua aplicação ou usar alternativas para funcionalidades que ainda não são totalmente compatíveis com o Babelfish.
-
Para avaliar o código de sua aplicação SQL Server, use o Babelfish Compass na DDL gerada para determinar quanto código T-SQL é compatível com o Babelfish. Identifique o código T-SQL que talvez precise de modificações antes de ser executado no Babelfish. Para obter mais informações sobre essa ferramenta, consulte Ferramenta Babelfish Compass
no GitHub. nota
O Babelfish Compass é uma ferramenta de software livre. Relate quaisquer problemas com o Babelfish Compass pelo GitHub e não pelo AWS Support.
Você pode usar o Generate Script Wizard com o SQL Server Management Studio (SSMS) para gerar o arquivo SQL que é avaliado pelo Babelfish Compass ou a AWS Schema Conversion Tool CLI. Recomendamos as etapas a seguir para agilizar a avaliação.
-
Na página Choose Objects (Escolher objetos), selecione Script entire database and all database objects (Criar script para todo o banco de dados e todos os objetos do banco de dados).
-
Em Set Scripting Options (Definir opções de script), selecione Save as script file (Salvar como arquivo de script) como um Single script file (Único arquivo de script).
-
Selecione Advanced (Avançado) para alterar as opções de script padrão para identificar recursos que normalmente são definidos como falsos para uma avaliação completa:
-
Rastreamento de alterações de script como True
-
Índices de texto de script completo como True
-
O script se torna verdadeiro
-
O script faz login em True
-
Proprietário do script para True
-
Permissões em nível de objeto de script como True
-
Agrupamentos de scripts como True
-
-
Execute as etapas restantes no assistente para gerar o arquivo.
Ferramentas de importação/exportação para realizar a migração do SQL Server para o Babelfish
Recomendamos usar o AWS DMS como ferramenta principal para realizar a migração do SQL Server para o Babelfish. No entanto, o Babelfish é compatível com várias outras formas de migrar dados usando as ferramentas do SQL Server que incluem as seguintes.
-
SQL Server Integration Services (SSIS) para todas as versões do Babelfish. Para obter mais informações, consulte Migrate from SQL Server to Aurora PostgreSQL using SSIS and Babelfish
(Migrar do SQL Server para o Aurora PostgreSQL usando SSIS e Babelfish). -
Use o SSMS Import/Export Wizard para as versões 2.1.0 e posteriores do Babelfish. Essa ferramenta está disponível por meio do SSMS, mas também está disponível como uma ferramenta autônoma. Para obter mais informações, consulte Welcome to SQL Server Import and Export Wizard
(Bem-vindo ao assistente de importação e exportação do SQL Server) na documentação da Microsoft. -
O utilitário Microsoft bcp permite copiar dados de uma instância do Microsoft SQL Server em um arquivo de dados no formato especificado. Para obter mais informações, consulte bcp Utility
na documentação da Microsoft. O Babelfish agora é compatível com a migração de dados usando o cliente BCP, e o utilitário bcp agora é compatível com o sinalizador -E
(para colunas de identidade) e o sinalizador -b (para inserções em lote). Algumas opções do bcp não são compatíveis, por exemplo,-C
,-T
,-G
,-K
,-R
,-V
e-h
.
Usar o SQL Server Management Studio (SSMS) para migrar para o Babelfish
Recomendamos gerar arquivos separados para cada um dos tipos de objeto específicos. Você pode usar primeiro o Generate Scripts Wizard no SSMS para cada conjunto de instruções DDL e depois modificar os objetos como um grupo para corrigir quaisquer problemas encontrados durante a avaliação.
Execute estas etapas para migrar os dados usando o AWS DMS ou outros métodos de migração de dados. Execute primeiro esses tipos de script de criação para uma abordagem melhor e mais rápida de carregar os dados nas tabelas do Babelfish no Aurora PostgreSQL.
-
Execute instruções
CREATE SCHEMA
. -
Execute instruções
CREATE TYPE
para criar tipos de dados definidos pelo usuário. -
Execute instruções
CREATE TABLE
básicas com as chaves primárias ou restrições exclusivas.
Execute o carregamento de dados usando a ferramenta de importação/exportação recomendada. Execute os scripts modificados para as etapas a seguir para adicionar os objetos restantes do banco de dados. Você precisa das instruções create table para executar esses scripts para as restrições, acionadores e índices. Depois que os scripts forem gerados, exclua as instruções create table.
-
Execute instruções
ALTER TABLE
para as restrições de verificação, restrições de chave externa e restrições padrão. -
Execute instruções
CREATE TRIGGER
. -
Execute instruções
CREATE INDEX
. -
Execute instruções
CREATE VIEW
. -
Execute instruções
CREATE STORED PROCEDURE
.
Como gerar scripts para cada tipo de objeto
Use as etapas a seguir para criar instruções básicas de criação de tabela usando o Generate Scripts Wizard no SSMS. Siga estas etapas para gerar scripts para os diferentes tipos de objeto.
-
Conecte-se à sua instância do SQL Server existente.
-
Abra o menu de contexto (clique com o botão direito do mouse) para um nome de banco de dados.
-
Selecione Tasks (Tarefas) e, depois, Generate Scripts... (Gerar scripts...).
-
No painel Choose Objects (Escolher objetos), escolha Select specific database objects (Selecionar objetos de banco de dados específicos). Escolha Tables (Tabelas), selecione todas as tabelas. Escolha Próximo para continuar.
-
Na página Set Scripting Options (Definir opções de script), escolha Advanced (Avançado) para abrir as configurações de Options (Opções). Para gerar as instruções create table básicas, altere os seguintes valores padrão:
-
O script assume como padrão False.
-
Propriedades estendidas de script como False. O Babelfish não é compatível com propriedades estendidas.
-
Restrições de conferência de script como False. Chaves externas de script como False.
-
-
Escolha OK.
-
Na página Set Scripting Options (Definir opções de script), selecione Save as script file (Salvar como arquivo de script) e Single script file (Único arquivo de script). Insira seu File name (Nome de arquivo).
-
Selecione Next (Próximo) para visualizar a página Summary wizard (Assistente de resumo).
-
Selecione Next (Próximo) para iniciar a geração do script.
É possível continuar gerando scripts para os outros tipos de objetos no assistente. Em vez de selecionar Finish (Concluir) depois que o arquivo for salvo, selecione o botão Previous (Anterior) três vezes para voltar à página Choose Objects (Selecionar objetos). Depois, repita as etapas no assistente para gerar scripts para os outros tipos de objeto.