Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Pode usar o Azure Database Migration Service através do portal Azure, para migrar bases de dados de uma instância local de SQL Server para Azure SQL Database (offline).
Neste tutorial, saiba como migrar o banco de dados de exemplo AdventureWorks2022 de uma instância local do SQL Server para o Banco de Dados SQL do Azure, usando o Serviço de Migração de Banco de Dados. Este tutorial usa o modo de migração offline, que considera um tempo de inatividade aceitável durante o processo de migração.
Neste tutorial, aprenderás como:
- Criar uma instância do Serviço de Migração de Banco de Dados do Azure
- Inicie a migração e monitore o progresso até a conclusão
Importante
Atualmente, as migrações online para destinos do Banco de Dados SQL do Azure não estão disponíveis com o Serviço de Migração de Banco de Dados do Azure. Numa migração de offline, o tempo de inatividade do aplicativo começa quando a migração é iniciada. Recomenda-se testar uma migração offline para determinar se o tempo de inatividade é aceitável.
Opções de migração
A secção seguinte descreve como utilizar o Azure Database Migration Service com o portal Azure.
Pré-requisitos
Antes de começar o tutorial:
Certifique-se de que você pode acessar o portal do Azure.
Verifique se o provedor de recursos Microsoft.DataMigration está registrado em sua assinatura.
Ter uma conta do Azure atribuída a uma das seguintes funções internas:
- Colaborador do Banco de Dados SQL do Azure de destino
- Função de leitor para o grupo de recursos do Azure que contém o Banco de Dados SQL do Azure de destino
- Função de Proprietário ou Colaborador para a assinatura do Azure (necessária se você criar uma nova instância do Serviço de Migração de Banco de Dados do Azure)
Como alternativa ao uso de uma dessas funções internas, você pode atribuir uma função personalizada.
Crie um Banco de Dados SQL do Azure de destino.
Verifique se o logon do SQL Server que se conecta à instância do SQL Server de origem é membro da função db_datareader e se o logon da instância do SQL Server de destino é membro da função db_owner .
Para migrar o Esquema de banco de dados da origem para o Banco de Dados SQL do Azure de destino usando o Serviço de Migração de Banco de Dados, a versão SHIR mínima com suporte necessária é 5.37 ou superior.
Para migração de esquema, as permissões mínimas no SQL Server de origem são db_owner para acessar o banco de dados e, no Banco de Dados SQL do Azure de destino, o usuário deve ser membro de todas as funções de nível de servidor na tabela a seguir:
| Funções | Descrição |
|---|---|
| ##MS_DatabaseManager## | Os membros da função de servidor fixa ##MS_DatabaseManager## podem criar e excluir bancos de dados. Um membro da função ##MS_DatabaseManager## que cria um banco de dados torna-se o proprietário desse banco de dados, o que permite que esse usuário se conecte a esse banco de dados como o usuário dbo. O utilizador dbo tem todas as permissões de base de dados na base de dados. Os membros da função ##MS_DatabaseManager## não têm necessariamente permissão para acessar bancos de dados que não possuem. É recomendável usar essa função de servidor sobre a função de nível de banco de dados dbmanager que existe no master banco de dados. |
| ##MS_DatabaseConnector## | Os membros da função de servidor fixa ##MS_DatabaseConnector## podem conectar-se a qualquer banco de dados sem precisar de uma conta de usuário no banco de dados para a conexão. |
| ##MS_DefinitionReader## | Os membros da função de servidor fixa ##MS_DefinitionReader## podem ler todas as vistas de catálogo cobertas por VIEW ANY DEFINITION em qualquer base de dados na qual o membro tenha uma conta de utilizador. |
| ##MS_LoginManager## | Os membros da função de servidor fixa ##MS_LoginManager## podem criar e eliminar logins. É recomendável usar essa função de servidor sobre a função de nível de banco de dados loginmanager que existe no master banco de dados. |
Preparar o Banco de Dados SQL do Azure de destino
Para criar o logon e o usuário no Banco de Dados SQL do Azure de destino, execute o seguinte script no master banco de dados:
CREATE LOGIN testuser WITH PASSWORD = '<password>';
ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [testuser];
GO
ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [testuser];
GO
ALTER SERVER ROLE ##MS_DatabaseManager## ADD MEMBER [testuser];
GO
ALTER SERVER ROLE ##MS_LoginManager## ADD MEMBER [testuser];
GO
CREATE USER testuser FOR LOGIN testuser;
EXECUTE sp_addRoleMember 'dbmanager', 'testuser';
EXECUTE sp_addRoleMember 'loginmanager', 'testuser';
Agora, você pode migrar o esquema e os dados do banco de dados usando o Serviço de Migração de Banco de Dados. Também pode usar outras ferramentas, como a extensão SQL Database Projects no Visual Studio Code, para migrar o esquema antes de selecionar a lista de tabelas a migrar.
Observação
Se não existirem tabelas no destino do Banco de Dados SQL do Azure ou se nenhuma tabela for selecionada antes de iniciar a migração, o botão Avançar não estará disponível para iniciar a migração. Se não existir nenhuma tabela no destino, você deverá selecionar a opção de migração de esquema para avançar.
Criar uma instância do Serviço de Migração de Banco de Dados
1º Passo: No portal do Azure, navegue até a página Serviço de Migração de Banco de Dados do Azure . Crie uma nova instância do Serviço de Migração de Banco de Dados do Azure ou reutilize uma instância existente criada anteriormente.
Usar uma instância existente do Serviço de Migração de Banco de Dados
Para usar uma instância existente do Serviço de Migração de Banco de Dados:
No portal do Azure, em Serviços de Migração de Banco de Dados do Azure, selecione uma instância existente do Serviço de Migração de Banco de Dados que você deseja usar, garantindo que ela esteja presente no Grupo de Recursos e na região corretos.
Criar uma nova instância do Serviço de Migração de Banco de Dados
Para criar uma nova instância do Serviço de Migração de Banco de Dados:
No portal do Azure, em Serviço de Migração de Banco de Dados do Azure, selecione Criar.
Em Selecionar cenário de migração e Serviço de Migração de Banco de Dados, selecione a entrada desejada como Tipo de servidor de origem e de destino, escolha Serviço de Migração de Banco de Dados e escolha Selecionar.
Na próxima tela Criar Serviço de Migração de Dados, selecione sua assinatura e grupo de recursos, selecione Local e insira o nome do Serviço de Migração de Banco de Dados. Selecione Avaliar + Criar. Isso cria o Serviço de Migração de Banco de Dados do Azure.
Se o tempo de execução de integração auto-hospedado (SHIR) for necessário, na página de visão geral do Serviço de Migração de Banco de Dados e em Configurações, selecione Tempo de execução de integração e conclua as seguintes etapas:
Selecione Configurar tempo de execução de integração e escolha o link Baixar e instalar o tempo de execução de integração para abrir o link de download em um navegador da Web. Baixe o tempo de execução da integração e instale-o em um computador que atenda aos pré-requisitos para se conectar à instância do SQL Server de origem. Para mais informações, consulte Runtime de integração auto-hospedada para migrações de bases de dados.
Quando a instalação estiver concluída, o Microsoft Integration Runtime Configuration Manager será aberto automaticamente para iniciar o processo de registro.
Na tabela Chave de autenticação , copie uma das chaves de autenticação fornecidas no assistente e cole-a no Microsoft Integration Runtime Configuration Manager.
Se a chave de autenticação for válida, um ícone de verificação verde será exibido no Integration Runtime Configuration Manager. Uma verificação verde indica que pode continuar a Registar.
Depois de registar o self-hosted Integration Runtime, feche o Microsoft Integration Runtime Configuration Manager. Pode levar vários minutos para refletir os detalhes do nó no Portal do Azure para o Serviço de Migração de Base de Dados, em Configurações de Tempo de Execução de Integração>.
Observação
Para obter mais informações sobre o tempo de execução de integração auto-hospedado, consulte Criar e configurar um tempo de execução de integração auto-hospedado.
Iniciar uma nova migração
Para iniciar uma nova migração, vá para o Serviço de Migração de Banco de Dados do Azure no portal do Azure e use +Criar para criar uma nova instância do Serviço de Migração de Banco de Dados ou selecione uma instância existente e vá para sua instância do Serviço de Migração de Banco de Dados do Azure.
No painel Visão geral da instância do Serviço de Migração de Banco de Dados do Azure, selecione Nova migração:
Em Selecionar novo cenário de migração , escolha sua origem, tipo de servidor de destino, modo de migração e escolha Selecionar.
No Assistente de Migração Offline do Banco de Dados SQL do Azure, siga estas etapas:
Na guia Detalhes da origem , insira os detalhes da instância do SQL Server de origem e selecione Avançar: Conectar-se ao SQL Server de origem:
Na guia Conectar ao SQL Server de origem , forneça detalhes da conexão e selecione Avançar: Selecione bancos de dados para migração:
Na guia Selecionar bancos de dados para migração , marque a caixa ao lado dos bancos de dados que você deseja migrar. Preencher a lista de bancos de dados pode levar algum tempo. Selecione Próximo: Conectar-se ao Banco de Dados SQL do Azure de destino.
Na guia Conectar ao Banco de Dados SQL do Azure de destino , forneça detalhes da conexão e selecione Avançar: Mapear bancos de dados de origem e destino:
Na guia Mapear bancos de dados de origem e de destino , mapeie os bancos de dados entre a origem e o destino.
(Opcional) Marque a caixa ao lado de Migrar esquema ausente para implantar objetos de esquema ausentes da origem para o destino do Banco de dados SQL do Azure para migrar os seguintes objetos de esquema com uma única caixa de seleção:
- Esquemas
- Tabelas (selecionado)
- Índices
- Visualizações
- Procedimentos armazenados (StoredProcedures)
- SINÔNIMOS
- Gatilhos DDL (DdlTriggers)
- Predefinições
- Catálogos de texto completo (FullTextCatalogs)
- Guias de plano (PlanGuides)
- Funções
- Regras
- Funções do aplicativo (ApplicationRoles)
- Agregações definidas pelo usuário (UserDefinedAggregates)
- Tipos de dados definidos pelo usuário (UserDefinedDataTypes)
- Funções definidas pelo usuário (UserDefinedFunctions)
- Tipos de tabela definidos pelo usuário (UserDefinedTableTypes)
- Tipos definidos pelo usuário (UserDefinedTypes)
- Utilizadores* (nem todos os tipos de utilizadores)
- XmlSchemaCollections
Observação
- Se você selecionar Migrar esquema ausente, o serviço de migração de banco de dados executará a migração de esquema antes que os dados sejam migrados.
- O DMS prossegue com a fase de migração de dados mesmo se a migração de esquema encontrar erros, a menos que haja problemas com objetos de tabela.
Em seguida, use Selecionar todas as tabelas para migrar todas as tabelas ou use a caixa de entrada de texto para filtrar a lista de tabelas e selecionar tabelas individuais para migrar. Em seguida, selecione Next: Database migration summary.
Na guia Resumo da migração do banco de dados , revise os detalhes e selecione Iniciar migração, que inicia a migração do banco de dados e o leva automaticamente de volta ao painel do Serviço de Migração de Banco de Dados.
Observação
Para uma migração offline, o tempo de inatividade do aplicativo começa quando a migração é iniciada.
Monitorar a migração do banco de dados
Para monitorar a migração do banco de dados, no painel Visão geral da instância do Serviço de Migração de Banco de Dados, selecione Monitorar migrações.
Na guia Migrações , você pode acompanhar as migrações em andamento, concluídas e com falha (se houver) ou pode exibir todas as migrações de banco de dados. Na barra de menus, selecione Atualizar para atualizar o status da migração.
O Serviço de Migração de Banco de Dados retorna o status de migração conhecido mais recente sempre que o status da migração é atualizado. A tabela a seguir descreve os status possíveis:
Situação Descrição Criação O serviço está iniciando a migração. Preparação para a cópia O serviço está desativando estatísticas automáticas, gatilhos e índices na tabela de destino. Copiando Os dados estão sendo copiados do banco de dados de origem para o banco de dados de destino. Cópia concluída A cópia dos dados foi concluída. O serviço está aguardando que outras tabelas terminem a cópia para que possa iniciar as etapas finais de retorno das tabelas ao esquema original. Reconstruindo índices O serviço está a reconstituir índices nas tabelas de destino. Bem-sucedido Todos os dados são copiados e os índices são reconstruídos. Em Nome da fonte, selecione um nome de banco de dados para abrir a exibição de tabela.. Nesta exibição detalhada, você vê o status atual da migração, o número de tabelas que estão atualmente nesse status e um status detalhado de cada tabela:
Quando todos os dados da tabela são migrados para o destino do Banco de Dados SQL do Azure, o Serviço de Migração de Banco de Dados atualiza o status da migração de Em andamento para Com êxito.
Observação
O Serviço de Migração de Banco de Dados otimiza a migração ignorando tabelas sem dados (0 linhas). As tabelas que não têm dados não aparecem na lista, mesmo que você tenha selecionado as tabelas quando criou a migração.
Você concluiu a migração para o Banco de Dados SQL do Azure. Passe por uma série de tarefas pós-migração para garantir que tudo funcione de forma suave e eficiente.
Limitações
A migração offline do Banco de Dados SQL do Azure utiliza pipelines do Azure Data Factory (ADF) para movimentação de dados e, portanto, respeita as limitações do ADF. Um ADF correspondente é criado quando um serviço de migração de banco de dados também é criado. Assim, aplicam-se limites de fábrica por serviço.
- A máquina onde o SHIR está instalado atua como o cálculo para a migração. Certifique-se de que esta máquina pode lidar com a carga de CPU e memória da cópia de dados. Para saber mais, consulte Criar e configurar um tempo de execução de integração auto-hospedado.
- Limite de 100.000 tabelas por banco de dados.
- 10.000 migrações simultâneas de banco de dados por serviço.
- A velocidade de migração depende muito da SKU do Banco de Dados SQL do Azure de destino e do host do Integration Runtime auto-hospedado.
- A migração do Azure SQL Database não é bem escalável com o número de tabelas, devido à sobrecarga do ADF no início das atividades. Se um banco de dados tiver milhares de tabelas, o processo de inicialização de cada tabela pode levar alguns segundos, mesmo que elas sejam compostas por uma linha com 1 bit de dados.
- Atualmente, não há suporte para migração de nomes de tabela do Banco de Dados SQL do Azure com caracteres de byte duplo. A mitigação consiste em renomear tabelas antes da migração; eles podem ser alterados de volta aos seus nomes originais após a migração bem-sucedida.
- Tabelas com colunas de blob grandes podem falhar na migração devido ao tempo limite de execução.
- No momento, não há suporte para nomes de bancos de dados com o SQL Server reservado.
- Atualmente, não há suporte para nomes de banco de dados que incluam ponto-e-vírgula.
- As colunas computadas não são migradas.
- As colunas no banco de dados de origem que têm restrições padrão e contêm
NULLvalores são migradas com seus valores padrão definidos no banco de dados SQL do Azure de destino, em vez de reter os NULLs.