Mover dados para a instância gerenciada do SQL

Concluído

Muitas migrações envolvem um período em que o banco de dados local e em nuvem deve ser mantido sincronizado. Por exemplo, pode haver um momento em que os clientes façam alterações em ambos os bancos de dados.

Você migrou o banco de dados de produtos de varejo esportivo para a Instância Gerenciada SQL do Azure. O site já está usando o banco de dados em nuvem. Você está começando a reconfigurar os clientes para usar o novo banco de dados. Você decidiu fazer a transição dos usuários para o novo sistema em lotes. Para cada equipe, você terá tempo para resolver quaisquer problemas antes de migrar os próximos usuários. Essa abordagem permite a solução de problemas sem interromper todos os usuários de uma só vez. Em seguida, você reconfigurará o sistema de análise de dados para usar o novo banco de dados no Azure. Durante esse período, você deseja garantir que os bancos de dados locais e na nuvem sejam sincronizados a cada hora.

Você explorará vários métodos para implementar a sincronização de dados. Esses métodos também podem ser empregados para migrar dados seletivamente, caso você exija apenas um subconjunto das tabelas a serem transferidas. Esta flexibilidade permite uma abordagem mais adaptada à migração de dados.

Opções de conectividade com servidores locais

Muitas vezes, você deseja manter os dados em bancos de dados locais sincronizados com a Instância Gerenciada SQL do Azure. Talvez você queira preparar a migração de aplicativos cliente para o novo banco de dados, por exemplo, o que significa que há um período em que os clientes se conectam a ambos os bancos de dados.

Antes de escolher um método de sincronização de dados, é importante garantir que você tenha conectividade segura. Há três opções de conectividade diferentes disponíveis para estabelecer a comunicação entre computadores locais e recursos no Azure.

  • Ponto a Ponto. Uma ligação de gateway de VPN Ponto a Site (P2S) permite-lhe criar uma ligação segura à sua rede virtual a partir de um computador cliente individual.
  • Site a Site. Um gateway VPN Site a Site é usado para conectar um site local inteiro à rede do Azure.
  • Rota Expressa. O Azure ExpressRoute permite que você crie conexões privadas entre datacenters do Azure e infraestrutura local ou infraestrutura em um ambiente de colocation. As conexões ExpressRoute não passam pela Internet pública e oferecem mais confiabilidade, velocidades mais rápidas, latências mais baixas e maior segurança do que as conexões de internet típicas.

Ponto final público

O ponto de extremidade público para Instância Gerenciada SQL ajuda você a se conectar ao banco de dados pela Internet sem usar uma VPN e foi projetado apenas para comunicação de dados. O ponto de extremidade público para dados pode coexistir simultaneamente com o ponto de extremidade privado. Por razões de segurança, a implementação permite a Separação de Funções (SoD) entre um administrador de banco de dados e um administrador de rede ao habilitar o ponto de extremidade público.

Para habilitar o ponto de extremidade público para instância gerenciada, duas etapas são necessárias. Para SoD, você precisará de duas funções separadas, com as seguintes permissões de banco de dados e rede, para concluir estas etapas:

  1. Um administrador de banco de dados que tenha permissões de controle de acesso baseadas em função no escopo Microsoft.Sql/managedInstances/* deve executar um script do PowerShell para habilitar o ponto de extremidade público para instância gerenciada.
  2. Um administrador de rede que tenha permissões de controle de acesso baseadas em função no escopo Microsoft.Network/* deve abrir a porta 3342 usada pelo ponto de extremidade público no NSG (grupo de segurança de rede) e fornecer uma rota UDR para evitar roteamento assimétrico.

Diagram showing how public endpoint works for Azure SQL Managed Instance.

Escolha um método de sincronização

Você pode usar muitos métodos para sincronizar dados de uma instância gerenciada do Banco de dados SQL para um servidor local e vice-versa.

Cópia de segurança e restauro nativos

Você pode restaurar um banco de dados na Instância Gerenciada SQL do Azure a partir de um arquivo de Armazenamento de Blob do Azure usando a Assinatura de Acesso Compartilhado (SAS).

Isso envolve a criação de uma credencial com acesso ao Armazenamento de Blobs do Azure e, em seguida, o uso do BACKUP DATABASE comando com a COPY_ONLY opção. Se o banco de dados tiver mais de 200 GB, você poderá usar um backup distribuído fornecendo vários locais de URL.

BACKUP DATABASE YourDatabase TO URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak' WITH COPY_ONLY

Para restaurar o banco de dados na Instância Gerenciada SQL:

RESTORE DATABASE YourDatabase FROM URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak'

Arquivo BACPAC usando SqlPackage

Um arquivo BACPAC é essencialmente uma versão compactada dos metadados e dados do seu banco de dados. Embora esse método de implantação seja compatível com o Banco de Dados SQL, a Instância Gerenciada do SQL não oferece suporte à migração via BACPAC no portal do Azure. Como alternativa, o utilitário SQLPackage deve ser usado com o arquivo BACPAC.

Programa de cópia em massa (BCP)

O utilitário BCP é uma ferramenta de linha de comando que exporta tabelas para arquivos para que você possa importá-las. Use essa abordagem para migrar de um único Banco de Dados SQL para a Instância Gerenciada SQL e vice-versa.

Azure Data Factory (ADF)

O Azure Data Factory foi criado para movimentação e orquestração de dados, com foco na ingestão. O ADF tem o suporte de tempo de execução de integração para executar pacotes SSIS e o suporte público da Internet para Instância Gerenciada SQL.

Replicação transacional

A replicação transacional é uma maneira de mover dados entre servidores de banco de dados conectados continuamente.

O processo começa com um instantâneo dos objetos e dados do banco de dados de publicação. Depois que o instantâneo inicial é tirado, quaisquer alterações subsequentes nos dados ou no esquema no Publisher normalmente são entregues à Instância Gerenciada SQL do Azure quase em tempo real à medida que ocorrem.

A Instância Gerenciada SQL é flexível porque pode ser um editor, distribuidor e assinante.

A replicação é uma das poucas tecnologias que permite replicar partes de uma tabela. Referimo-nos a estas partes da tabela como artigos. Estes dados são então enviados para um distribuidor, que é um fornecedor dos dados para qualquer número de assinantes.

Requisitos

  • A conectividade utiliza a Autenticação SQL entre os participantes da replicação.
  • Um compartilhamento da Conta de Armazenamento do Azure para o diretório de trabalho usado pela replicação.
  • Abra a porta 445 (saída TCP) nas regras de segurança da sub-rede da instância gerenciada para acessar o compartilhamento de arquivos do Azure.
  • Abra a porta 1433 (saída TCP) se o editor ou distribuidor estiver em uma instância gerenciada e o assinante estiver local.

Conectando aplicativos a uma instância gerenciada pelo SQL

Uma instância gerenciada pelo SQL deve ser colocada dentro de uma sub-rede de rede virtual do Azure dedicada a instâncias gerenciadas. Essa implantação oferece um endereço IP privado seguro e a capacidade de se conectar a redes locais.

Diagram showing how connectivity takes place in Azure SQL Managed Instance.

Os usuários e aplicativos cliente podem se conectar ao banco de dados de instância gerenciado por meio do portal do Azure, PowerShell, CLI do Azure e API REST.

Todas as comunicações são encriptadas e assinadas com certificados. Para verificar a fiabilidade dos intervenientes na comunicação, as instâncias geridas verificam constantemente estes certificados através de listas de revogação de certificados. Se os certificados forem revogados, a instância gerenciada do SQL fechará as conexões para proteger os dados.