Migrar a base de dados MariaDB para o Azure Database for MariaDB através da funcionalidade de captura e restauro

Importante

O Banco de Dados do Azure para MariaDB está no caminho da aposentadoria. É altamente recomendável migrar para o Banco de Dados do Azure para MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para MariaDB?.

Este artigo explica duas maneiras comuns de fazer backup e restaurar bancos de dados em seu banco de dados do Azure para MariaDB:

  • Despeje e restaure usando uma ferramenta de linha de comando (usando mysqldump).
  • Despeje e restaure usando phpMyAdmin.

Pré-requisitos

Antes de começar a migrar o banco de dados, faça o seguinte:

Utilizar ferramentas comuns

Use utilitários e ferramentas comuns, como MySQL Workbench ou mysqldump, para conectar e restaurar dados remotamente em seu banco de dados do Azure para MariaDB. Use essas ferramentas em sua máquina cliente com uma conexão com a Internet para se conectar ao banco de dados do Azure para MariaDB. Use uma conexão criptografada SSL como uma prática recomendada de segurança. Para obter mais informações, consulte Configurar a conectividade SSL no Banco de Dados do Azure para MariaDB. Você não precisa mover os arquivos de despejo para nenhum local de nuvem especial ao migrar dados para seu banco de dados do Azure para MariaDB.

Usos comuns para despejo e restauração

Você pode usar utilitários MySQL, como mysqldump e mysqlpump, para despejar e carregar bancos de dados em um banco de dados do Azure para o servidor MariaDB em vários cenários comuns.

  • Use despejos de banco de dados ao migrar um banco de dados inteiro. Essa recomendação é válida quando você estiver movendo uma grande quantidade de dados ou quando quiser minimizar a interrupção do serviço para sites ou aplicativos ativos.

  • Certifique-se de que todas as tabelas no banco de dados usam o mecanismo de armazenamento InnoDB quando você estiver carregando dados em seu banco de dados do Azure para MariaDB. O Banco de Dados do Azure para MariaDB dá suporte apenas ao mecanismo de armazenamento InnoDB e nenhum outro mecanismo de armazenamento. Se suas tabelas estiverem configuradas com outros mecanismos de armazenamento, converta-as no formato de mecanismo InnoDB antes de migrá-las para seu banco de dados do Azure para MariaDB.

    Por exemplo, se você tiver um aplicativo WordPress ou um aplicativo Web que use tabelas MyISAM, primeiro converta essas tabelas migrando-as para o formato InnoDB antes de restaurá-las para seu banco de dados do Azure para MariaDB. Use a cláusula ENGINE=InnoDB para definir o mecanismo a ser usado para criar uma nova tabela e, em seguida, transfira os dados para a tabela compatível antes de restaurá-la.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    
  • Para evitar problemas de compatibilidade ao despejar bancos de dados, certifique-se de estar usando a mesma versão do MariaDB nos sistemas de origem e destino. Por exemplo, se o servidor MariaDB existente for a versão 10.2, você deverá migrar para o banco de dados do Azure para MariaDB configurado para executar a versão 10.2. O mysql_upgrade comando não funciona em um banco de dados do Azure para servidor MariaDB e não é suportado. Se você precisar atualizar entre as versões do MariaDB, primeiro despeje ou exporte seu banco de dados da versão anterior para uma versão posterior do MariaDB em seu próprio ambiente. Em seguida, você pode executar mysql_upgrade antes de tentar migrar para seu banco de dados do Azure para MariaDB.

Considerações de desempenho

Para otimizar o desempenho ao despejar bancos de dados grandes, tenha em mente as seguintes considerações:

  • Use a exclude-triggers opção em mysqldump. Exclua gatilhos de arquivos de despejo para evitar que os comandos de gatilho sejam acionados durante a restauração de dados.
  • Use a single-transaction opção para definir o modo de isolamento de transação como REPEATABLE READ e envie uma instrução START TRANSACTION SQL para o servidor antes de despejar dados. O despejo de muitas tabelas em uma única transação faz com que algum armazenamento extra seja consumido durante a restauração. A single-transaction opção e a lock-tables opção excluem-se mutuamente. Isso ocorre porque LOCK TABLES faz com que quaisquer transações pendentes sejam confirmadas implicitamente. Para despejar tabelas grandes, combine a opção com a single-transactionquick opção.
  • Use a extended-insert sintaxe de várias linhas que inclui várias listas VALUE. Essa abordagem resulta em um arquivo de despejo menor e acelera as inserções quando o arquivo é recarregado.
  • Use a order-by-primary opção em mysqldump quando estiver despejando bancos de dados, para que os dados sejam roteirizados na ordem da chave primária.
  • Use a disable-keys opção em mysqldump quando estiver despejando dados, para desativar restrições de chave estrangeira antes do carregamento. A desativação de verificações de chaves estrangeiras ajuda a melhorar o desempenho. Habilite as restrições e verifique os dados após a carga para garantir a integridade referencial.
  • Use tabelas particionadas quando apropriado.
  • Carregue dados em paralelo. Evite muito paralelismo, que pode fazer com que você atinja um limite de recursos, e monitore os recursos usando as métricas disponíveis no portal do Azure.
  • Use a opção em mysqlpump quando estiver despejando bancos de dados, para que a criação do índice aconteça depois que os defer-table-indexes dados da tabela forem carregados.
  • Copie os arquivos de backup para um repositório de blob do Azure e execute a restauração a partir daí. Essa abordagem deve ser muito mais rápida do que executar a restauração na Internet.

Criar um arquivo de backup

Para fazer backup de um banco de dados MariaDB existente no servidor local local ou em uma máquina virtual, execute o seguinte comando usando mysqldump:

mysqldump --opt -u <uname> -p<pass> <dbname> > <backupfile.sql>

Os parâmetros a fornecer são:

  • <uname>: Seu nome de usuário do banco de dados
  • <pass>: A senha do seu banco de dados (observe que não há espaço entre -p e a senha)
  • <dbname>: O nome do seu banco de dados
  • <backupfile.sql>: O nome do arquivo para o backup do banco de dados
  • <--opt>: A opção mysqldump

Por exemplo, para fazer backup de um banco de dados chamado testdb em seu servidor MariaDB com o nome de usuário testuser e sem senha para um arquivo testdb_backup.sql, use o seguinte comando. O comando faz backup do testdb banco de dados em um arquivo chamado testdb_backup.sql, que contém todas as instruções SQL necessárias para recriar o banco de dados.

mysqldump -u root -p testdb > testdb_backup.sql

Para selecionar tabelas específicas para backup em seu banco de dados, liste os nomes das tabelas, separados por espaços. Por exemplo, para fazer backup apenas das tabelas table1 e table2 do testdb, siga este exemplo:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Para fazer backup de mais de um banco de dados ao mesmo tempo, use a opção --database e liste os nomes dos bancos de dados, separados por espaços.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Criar um banco de dados no servidor de destino

Crie um banco de dados vazio no Banco de Dados do Azure de destino para o servidor MariaDB para o qual você deseja migrar os dados. Use uma ferramenta como o MySQL Workbench para criar o banco de dados. O banco de dados pode ter o mesmo nome que o banco de dados que contém os dados despejados ou você pode criar um banco de dados com um nome diferente.

Para se conectar, localize as informações de conexão no painel Visão geral do seu banco de dados do Azure para MariaDB.

Screenshot of the Overview pane for an Azure database for MariaDB server in the Azure portal.

No MySQL Workbench, adicione as informações de conexão.

Screenshot of the MySQL Connections pane in MySQL Workbench.

Restaure seu banco de dados MariaDB

Depois de criar o banco de dados de destino, você pode usar o comando mysql ou o MySQL Workbench para restaurar os dados no banco de dados recém-criado a partir do arquivo de dump.

mysql -h <hostname> -u <uname> -p<pass> <db_to_restore> < <backupfile.sql>

Neste exemplo, você restaura os dados no banco de dados recém-criado no Banco de Dados do Azure de destino para o servidor MariaDB.

mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Exporte seu banco de dados MariaDB usando o phpMyAdmin

Para exportar, você pode usar a ferramenta comum phpMyAdmin, que já pode estar instalada localmente em seu ambiente. Para exportar seu banco de dados MariaDB, faça o seguinte:

  1. Abra o phpMyAdmin.
  2. No painel esquerdo, selecione seu banco de dados e, em seguida, selecione o link Exportar . Uma nova página aparece para exibir o despejo do banco de dados.
  3. Na área Exportar, selecione o link Selecionar tudo para escolher as tabelas em seu banco de dados.
  4. Na área de opções SQL, selecione as opções apropriadas.
  5. Selecione a opção Salvar como arquivo e a opção de compactação correspondente e, em seguida, selecione Ir. No prompt, salve o arquivo localmente.

Importe seu banco de dados usando o phpMyAdmin

O processo de importação é semelhante ao processo de exportação. Efetue o seguinte procedimento:

  1. Abra o phpMyAdmin.
  2. Na página de configuração do phpMyAdmin, selecione Adicionar para adicionar seu Banco de Dados do Azure para o servidor MariaDB.
  3. Insira os detalhes da conexão e as informações de login.
  4. Crie um banco de dados com o nome apropriado e selecione-o no painel esquerdo. Para reescrever o banco de dados existente, selecione o nome do banco de dados, marque todas as caixas de seleção ao lado dos nomes das tabelas e selecione Soltar para excluir as tabelas existentes.
  5. Selecione o link SQL para mostrar a página onde você pode inserir comandos SQL ou carregar seu arquivo SQL .
  6. Selecione o botão Procurar para localizar o arquivo de banco de dados.
  7. Selecione o botão Ir para exportar o backup, executar os comandos SQL e recriar seu banco de dados.

Próximos passos