Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar o Serviço de Migração de Banco de Dados do Azure por meio do portal do Azure para migrar bancos de dados de uma instância local do SQL Server para o Banco de Dados SQL do Azure (offline).
Neste tutorial, saiba como migrar o banco de dados de exemplo de uma instância local do SQL Server para o Banco de Dados SQL do Azure usando o AdventureWorks2022 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, você aprenderá como:
- Criar uma instância do Serviço de Migração de Banco de Dados do Azure
- Iniciar a migração e monitorar 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. Na migração offline, o tempo de inatividade do aplicativo começa quando a migração é iniciada. É recomendável testar uma migração offline para determinar se o tempo de inatividade é aceitável.
Opções de migração
A seção a seguir descreve como usar o Serviço de Migração de Banco de Dados do Azure com o portal do Azure.
Pré-requisitos
Antes de começar o tutorial:
Verifique se você pode acessar o portal do Azure.
Verifique se o provedor de recursos Microsoft.DataMigration está registrado em sua assinatura.
Tenha 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 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 é um membro da função db_datareader e se o logon da instância do SQL Server de destino é um 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 mínima do SHIR com suporte necessária é 5.37 ou superior.
Para a 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## | 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 usuário dbo tem todas as permissões no banco 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 em vez da função de nível do banco de dados dbmanager que existe no banco de dados master. |
| ##MS_DatabaseConnector## | Os membros da função de servidor fixa ##MS_DatabaseConnector## podem se conectar a qualquer banco de dados sem exigir que uma conta de usuário no banco de dados para conectar-se. |
| ##MS_DefinitionReader## | Os membros da função de servidor fixa ##MS_DefinitionReader## podem ler todas as exibições de catálogo cobertas por VIEW ANY DEFINITION qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. |
| ##MS_LoginManager## | Os membros da função de servidor fixa ##MS_LoginManager## podem criar e excluir logons. É recomendável usar essa função de servidor em vez da função de nível de banco de dados loginmanager que existe no banco de dados master. |
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 de banco de dados e os dados usando o Serviço de Migração de Banco de Dados. Você também pode usar outras ferramentas, como a extensão Projetos do Banco de Dados SQL no Visual Studio Code, para migrar o esquema antes de selecionar a lista de tabelas a serem migradas.
Observação
Se não houver 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 nenhuma tabela existir 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
Etapa 1: no portal do Azure, navegue até a página do 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 os 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 a ser usada, garantindo que ela esteja presente no Grupo de Recursos e na região corretos.
Criar uma instância do Serviço de Migração de Banco de Dados
Para criar uma 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 o tipo de servidor de Origem e de Destino, selecione o Serviço de Migração de Banco de Dados e Selecionar.
Na próxima tela Criar Serviço de Migração de Dados, selecione sua assinatura e grupo de recursos, selecione Locale insira o nome do Serviço de Migração de Banco de Dados. Selecione Examinar + criar. Isso cria o Serviço de Migração de Banco de Dados do Azure.
Se o SHIR (runtime de integração auto-hospedada) for requerido, na página de visão geral do Serviço de Migração de Banco de Dados e em Configurações, selecione Runtime de Integração e conclua as etapas a seguir:
Selecione Configurar o runtime de integração e escolha o link Baixar e instalar o runtime de integração, para abrir o link de download em um navegador da Web. Baixe o runtime de integração e instale-o em um computador que atenda aos pré-requisitos para se conectar à instância do SQL Server de origem. Para obter mais informações, consulte o runtime de integração auto-hospedada para migrações de banco de dados.
Quando a instalação for concluída, o Microsoft Integration Runtime Configuration Manager será aberto automaticamente para dar início ao processo de registro.
Na tabela de chaves 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 aparecerá no Integration Runtime Configuration Manager. Uma verificação verde indica que você pode continuar a Registrar.
Depois de registrar o runtime de integração auto-hospedada, feche o Microsoft Integration Runtime Configuration Manager. Pode levar vários minutos para que os detalhes do Nodo sejam refletidos no portal do Azure para o Serviço de Migração de Banco de Dados, em Configurações > Integration runtime.
Observação
Para obter mais informações sobre o runtime de integração auto-hospedada, consulte Criar e configurar um runtime de integração auto-hospedada.
Iniciar uma nova migração
Para iniciar uma nova migração, acesse 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 a 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 detalhes para a 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 Avançar: 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 de destino:
Na guia Mapa de 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 (selecionadas)
- Índices
- Visões
- Procedimentos armazenados (StoredProcedures)
- Sinônimos
- Gatilhos DDL (DdlTriggers)
- Configurações padrão
- Catálogos de texto completo (FullTextCatalogs)
- Guias de plano (PlanGuides)
- Funções
- Regras
- Funções de 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)
- Usuários* (nem todos os tipos de usuário)
- Coleções de Esquema XML (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 Avançar: resumo da migração do banco de dados.
Na guia Resumo da migração de banco de dados, examine os detalhes e selecione Iniciar migração, que inicia a migração de 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 de 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, acompanhe as migrações que estão em andamento, que foram concluídas e que falharam (se houver) ou exiba 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 seguinte tabela descreve os possíveis status:
Situação Descrição criando O serviço está iniciando a migração. Preparando para cópia O serviço está desabilitando estatísticas automáticas, gatilhos e índices na tabela de destino. Copiando Os dados estão sendo copiados do banco de dados de origem no banco de dados de destino. Cópia concluída A cópia de dados foi concluída. O serviço está aguardando outras tabelas para concluir a cópia a fim de iniciar as etapas finais para retornar as tabelas ao esquema original. Como recriar índices O serviço está reconstruindo índices em tabelas de destino. Êxito Todos os dados são copiados e os índices são recriados. No nome da fonte, selecione um nome de banco de dados para abrir a visão da tabela. Nesta exibição detalhada, você verá 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 forem migrados para o destino do Banco de Dados SQL do Azure, o Serviço de Migração de Banco de Dados atualizará o status da migração de Em andamento para Bem-sucedido.
Observação
O Serviço de Migração de Banco de Dados otimiza a migração ignorando tabelas sem dados (0 linha). Tabelas que não têm dados não aparecem na lista, mesmo se você selecionou 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 ADF (Azure Data Factory) para movimentação de dados e, portanto, segue as limitações do ADF. Um ADF correspondente é criado quando um serviço de migração de banco de dados também é criado. Portanto, os limites de fábrica se aplicam por serviço.
- O computador em que o SHIR está instalado atua como o processamento para migração. Verifique se esse computador pode lidar com a carga de CPU e memória da cópia de dados. Para saber mais, examine Criar e configurar um runtime de integração auto-hospedada.
- 100.000 tabelas por limite de banco de dados.
- 10.000 migrações simultâneas de banco de dados por serviço.
- A velocidade de migração depende muito do SKU do Banco de Dados SQL do Azure alvo e do host de runtime de integração auto-hospedado.
- A migração do banco de dados SQL do Azure não se escala bem com um grande número de tabelas devido à sobrecarga causada pelo ADF ao iniciar 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 aos nomes de tabela do Banco de Dados SQL do Azure com caracteres de byte duplo. A mitigação é renomear tabelas antes da migração. Elas podem ser alteradas de volta para seus nomes originais após a migração bem-sucedida.
- Tabelas com colunas grandes de blobs podem falhar ao migrar devido a timeout.
- Atualmente, não há suporte aos nomes de banco de dados com SQL Server reservados.
- Atualmente, não há suporte aos nomes de banco de dados que incluem 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.