Mover dados para a Instância Gerenciada de SQL
Muitas migrações envolvem um período no qual o local e o banco de dados de nuvem devem ser mantidos sincronizados. Por exemplo, pode haver um horário em que os clientes façam alterações em ambos os bancos de dados.
Você migrou o banco de dados de produtos de varejo esportivos para a Instância Gerenciada de SQL do Azure O site já está usando o banco de dados de nuvem. Você está começando a reconfigurar os clientes para usar o novo banco de dados. Você decidiu fazer a transição de usuários para o novo sistema em lotes. Para cada equipe, você terá um tempo para resolver todos os problemas antes de migrar os próximos usuários. Essa abordagem permite a resolução de problemas sem interromper todos os usuários ao mesmo tempo. Em seguida, você reconfigurará o sistema de análise de dados para usar o novo banco de dados no Azure. Durante esse tempo, você quer 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 que apenas um subconjunto das tabelas seja transferido. Essa flexibilidade permite uma abordagem mais personalizada para a migração de dados.
Opções de conectividade com servidores locais
Geralmente, convém manter os dados em bancos de dados locais sincronizados com a Instância Gerenciada de 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 quando os clientes se conectam a ambos os bancos de dados.
Antes de escolher um método de sincronização de dados, é importante garantir que haja uma conectividade segura. Há três opções diferentes de conectividade disponíveis para estabelecer a comunicação entre computadores locais e os recursos no Azure.
- Ponto a Site. Uma conexão de gateway de VPN Ponto a Site (P2S) permite que você crie uma conexão segura para sua rede virtual a partir de um computador cliente individual.
- Site a Site. Um gateway de VPN Site a Site é usado para conectar todo um site local à rede do Azure.
- ExpressRoute. O Azure ExpressRoute permite criar conexões privadas entre os datacenters do Azure e a infraestrutura local ou em um ambiente de colocalização. As conexões de ExpressRoute não acessam a Internet pública e oferecem mais confiabilidade, velocidades mais rápidas, latências menores e maior segurança que as conexões típicas da Internet.
Ponto de extremidade público
O ponto de extremidade público para a Instância Gerenciada de SQL ajuda você a se conectar ao banco de dados da Internet sem usar uma VPN e é 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 motivos de segurança, a implementação permite a SoD (separação de tarefas) 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 a instância gerenciada são necessárias duas etapas. Para a SoD, você precisará de duas funções separadas, com as seguintes permissões de banco de dados e de rede, para concluir essas etapas:
- Um administrador de banco de dados que tenha permissões de controle de acesso baseado em função no escopo Microsoft.Sql/managedInstances/* deve executar um script do PowerShell a fim de habilitar o ponto de extremidade público para instância gerenciada.
- Um administrador de rede que tenha permissões de controle de acesso baseado 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 o roteamento assimétrico.
Escolher um método de sincronização
Você pode usar vários métodos para sincronizar dados de uma instância gerenciada do Banco de Dados SQL para um servidor local e vice-versa.
Backup e restauração nativos
Você pode restaurar um banco de dados na Instância Gerenciada de SQL do Azure de um arquivo de Armazenamento de Blobs 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 comando BACKUP DATABASE
com a opção COPY_ONLY
. Se o banco de dados for maior que 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 de SQL:
RESTORE DATABASE YourDatabase FROM URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak'
Arquivo BACPAC usando o SqlPackage
Um arquivo BACPAC é essencialmente uma versão compactada dos metadados e dos dados do banco de dados. Embora esse método de implantação seja compatível com o Banco de Dados SQL, a Instância Gerenciada de SQL não dá suporte à migração por meio do BACPAC no portal do Azure. Como alternativa, o utilitário SQLPackage deve ser usado com o arquivo BACPAC.
BCP (Programa de cópia em massa)
O utilitário BCP é uma ferramenta de linha de comando que exporta tabelas para arquivos de modo que você possa importá-las. Use essa abordagem para migrar de um único Banco de Dados SQL para a instância gerenciada do SQL e vice-versa.
ADF (Azure Data Factory)
O Azure Data Factory foi criado para a movimentação e orquestração de dados, com foco na ingestão. O ADF tem suporte de runtime de integração para executar pacotes do SSIS e suporte da Internet pública para a Instância Gerenciada de 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 é feito, todas as alterações subsequentes feitas nos dados ou no esquema no Publicador normalmente são entregues à Instância Gerenciada de SQL quase em tempo real à medida que ocorrem.
A Instância Gerenciada de SQL é flexível porque pode ser um publicador, distribuidor e assinante.
A replicação é uma das poucas tecnologias que permite replicar partes de uma tabela. Nós nos referimos a essas partes da tabela como artigos. Esses dados são enviados a um distribuidor, que é um fornecedor dos dados para qualquer número de assinantes.
Requisitos
- A conectividade usa 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 (TCP de saída) nas regras de segurança da sub-rede da instância gerenciada para acessar o compartilhamento de arquivos do Azure.
- Abra a porta 1433 (TCP de saída) se o publicador ou o distribuidor estiver em uma instância gerenciada e o assinante estiver no local.
Conectar os aplicativos à Instância Gerenciada de SQL
Uma Instância Gerenciada de SQL do Azure deve ser colocada dentro de uma sub-rede de rede virtual do Azure dedicada a instâncias gerenciadas. Essa implantação fornece um endereço IP privado seguro e a capacidade de se conectar a redes locais.
Os usuários e aplicativos cliente podem se conectar ao banco de dados de instância gerenciada por meio do portal do Azure, do PowerShell, da CLI do Azure e da API REST.
Todas as comunicações são criptografadas e assinadas usando certificados. Para verificar a confiabilidade das partes que se comunicam, as instâncias gerenciadas verificam constantemente esses certificados por meio de listas de certificados revogados. Se os certificados forem revogados, a Instância Gerenciada de SQL fechará as conexões para proteger os dados.