Compartilhar via


Como configurar a replicação de saída de dados do Banco de Dados do Azure para MySQL - Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor flexível

Este artigo descreve como configurar a replicação de saída de dados no Banco de Dados do Azure para servidor flexível MySQL configurando os servidores de origem e de réplica. Este artigo pressupõe que você tenha alguma experiência anterior com servidores e bancos de dados MySQL.

Para replicação de saída de dados, a origem é sempre o servidor flexível do Banco de Dados do Azure para MySQL. A réplica poderá ser qualquer servidor MySQL externo em outros provedores de nuvem, locais ou máquinas virtuais. Examine as limitações e os requisitos da Replicação de saída de dados antes de executar as etapas deste artigo.

Observação

Este artigo faz referência ao termo escravo, um termo que a Microsoft não usa mais. Quando o termo for removido do software, também o removeremos deste artigo.

Crie uma instância de servidor flexível do Banco de Dados do Azure para MySQL para usar como origem.

  1. Crie uma nova instância do Banco de Dados do Azure para o servidor flexível MySQL (por exemplo, sourceserver.mysql.database.Azure.com). Consulte Criar um Banco de Dados do Azure para instância de servidor flexível do MySQL usando o portal do Azure para criação de servidor. Este servidor é o servidor de "origem" para a Replicação de saída de dados.

  2. Crie contas de usuário duplicadas e privilégios correspondentes.

    1. Contas de usuário não são replicadas do servidor de origem para o servidor de réplica. Suponha que você planeje fornecer aos usuários o acesso ao servidor de réplica. Nesse caso, você deve criar manualmente todas as contas e privilégios correspondentes nesta instância de servidor flexível do Banco de Dados do Azure para MySQL recém-criada.

Configurar o servidor MySQL de origem

As etapas a seguir preparam e configuram a instância do servidor flexível do Banco de Dados do Azure para MySQL atuando como origem.

  1. Requisitos de rede

    Verifique se as configurações de rede estão estabelecidas para que o servidor de origem e de réplica possam se comunicar sem interrupções.
    Se o servidor de origem estiver em acesso público, verifique se as regras de firewall permitem o endereço IP do servidor de réplica. Se o servidor de réplica estiver hospedado no Azure, selecione a opção de permitir o acesso público dos serviços do Azure na página de rede no portal do Azure. Se o servidor de origem estiver em acesso privado, verifique se o servidor de réplica pode se conectar à origem por meio de emparelhamento Vnet ou de uma conexão de gateway de VPN VNet a VNet.

    Observação

    Para obter mais informações - Visão geral da rede - Banco de Dados do Azure para servidor flexível MySQL.

  2. Ativar log binário

    Execute o seguinte comando para verificar se o registro em log binário foi habilitado na origem:

    SHOW VARIABLES LIKE 'log_bin';
    

    Se a variável log_bin for retornada com o valor 'ON', o log binário será ativado no servidor.

  3. Criar uma nova função de replicação e configurar a permissão

    Crie uma conta de usuário no servidor de origem configurado com privilégios de replicação. Isso pode ser feito por meio de comandos SQL ou de uma ferramenta como o Workbench do MySQL. Leve em conta se você planeja replicar com SSL, pois isso precisa ser especificado na criação do usuário. Confira a documentação do MySQL para entender como adicionar contas de usuário ao seu servidor de origem.

    Nos comandos a seguir, a nova função de replicação poderá acessar a origem de qualquer computador, não apenas daquele que hospeda a própria origem. Isso é feito especificando "syncuser@'%'" no comando create user. Consulte a documentação do MySQL para saber mais sobre a configuração de nomes de conta.

    Há algumas ferramentas que podem ser utilizadas para definir os nomes de conta. Selecione aquela que seja mais adequada ao seu ambiente.

Replicação com SSL

Para exigir SSL em todas as conexões de usuário, use o seguinte comando para criar um usuário:

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;

Replicação sem SSL

Se o SSL não for exigido para todas as conexões, use o seguinte comando para criar um usuário:

CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword';
GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';

Despeje e restaure o servidor de origem.

Ignore esta seção se for um servidor de origem recém-criado sem dados existentes para migrar para a réplica. Neste ponto, é possível desbloquear as tabelas:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Siga as etapas abaixo se o servidor de origem tiver dados existentes para migrar para a réplica.

  1. Determine quais bancos de dados e tabelas você deseja replicar no servidor flexível do Banco de Dados do Azure para MySQL e execute o despejo do servidor de origem. Você pode usar o mysqldump para despejar os bancos de dados do servidor primário. Para obter mais detalhes, visite Dump & Restore. Não é necessário despejar as bibliotecas normal e de teste do MySQL.

  2. Defina o servidor de origem para o modo de leitura/gravação.

Depois de despejar o banco de dados, altere a instância de servidor flexível do Banco de Dados do Azure para MySQL de origem para o modo de leitura/gravação.

SET GLOBAL read_only = OFF;
UNLOCK TABLES;
  1. Restaure arquivo de despejo no novo servidor. Restaure o arquivo de despejo para o servidor criado no Banco de Dados do Azure para servidor flexível MySQL. Consulte Dump & Restore para restaurar um arquivo de despejo em uma instância de servidor flexível do Banco de Dados do Azure para MySQL. Se o arquivo de despejo é grande, carregue-o em uma máquina virtual do Azure na mesma região do servidor de réplica. Restaure-o para a instância do servidor flexível do Banco de Dados do Azure para MySQL a partir da máquina virtual.

Observação

Se você deseja evitar configurar o banco de dados como somente leitura ao despejar e restaurar, poderá usar mydumper/myloader.

Configure o servidor de réplica para iniciar a Replicação de saída de dados.

  1. Filtragem

    Suponha que a replicação de saída de dados esteja sendo configurada entre o servidor flexível do Banco de Dados do Azure para MySQL e um MySQL externo em outros provedores de nuvem ou locais. Nesse caso, você deverá usar o filtro de replicação para filtrar as tabelas personalizadas do Azure no servidor de réplica. Isso pode ser feito definindo Replicate_Wild_Ignore_Table = "mysql.__%" para filtrar as tabelas internas do MySQL do Banco de Dados do Azure para MySQL. Consulte MySQL :: Manual de referência do MySQL 5.7 :: 13.4.2.2 Instrução CHANGE REPLICATION FILTER para obter mais detalhes sobre como modificar este parâmetro do servidor.

  2. Defina o servidor de réplica conectando-o e abrindo o shell do MySQL no servidor de réplica. No prompt, execute a seguinte operação, que definirá várias configurações de replicação do MySQL ao mesmo tempo:

    CHANGE THE REPLICATION SOURCE TO
    SOURCE_HOST='<master_host>',
    SOURCE_USER='<master_user>',
    SOURCE_PASSWORD='<master_password>',
    SOURCE_LOG_FILE='<master_log_file>',
    SOURCE_LOG_POS=<master_log_pos>
    
    • master_host: nome do host do servidor de origem (exemplo – 'source.mysql.database.Azure.com')
    • master_user: nome de usuário para o servidor de origem (exemplo – 'syncuser'@'%')
    • master_password: a senha para o servidor de origem
    • master_log_file: nome do arquivo de log binário da execução show master status
    • master_log_pos: posição do log binário da execução show master status

    Observação

    Para usar o SSL para a conexão, inclua o atributo SOURCE_SSL=1 no comando. Para obter mais informações sobre como usar o SSL em um contexto de replicação, visite: https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html

  3. Ative o servidor de réplica usando o seguinte comando.

    START REPLICA;
    

    Nesse ponto, a instância de réplica começará a replicar todas as alterações feitas no banco de dados do servidor de origem. Você poderá testar essa operação criando uma tabela de exemplo no banco de dados de origem e verificando se foi replicada com êxito.

  4. Verifique o status da replicação.

    Chame o comando show slave status\G no servidor de réplica para exibir o status de replicação.

     show slave status;
    

    Se o estado de Slave_IO_Running e Slave_SQL_Running for yes e o valor de Seconds_Behind_Master for 0, significa que a replicação está funcionando corretamente. O valor de Seconds_Behind_Master indica se há atraso da réplica. A réplica estará processando atualizações se o valor não for 0.

    Se o servidor de réplica estiver hospedado em uma VM do Azure, defina Permitir acesso aos serviços do Azure como ATIVO na origem para permitir que os servidores de origem e de réplica estabeleçam comunicação. É possível alterar essa configuração nas opções de segurança de conexão. Para obter mais informações, visite Gerenciar regras de firewall usando o portal.

    Se você usou mydumper/myloader para despejar o banco de dados, poderá obter o master_log_file e master_log_pos do arquivo /backup/metadata.

Próxima etapa