Todos os produtos
Search
Central de documentação

PolarDB:Restore to a self-managed MySQL database

Última atualização: Sep 17, 2026

PolarDB permite exportar um backup de snapshot de um cluster baseado em disco cloud como arquivo CSV ou SQL. Use esse arquivo para restaurar dados em um banco de dados MySQL auto-gerenciado.

Importante

O script de restauração em Python não recebe mais manutenção. Avalie-o antes de usá-lo.

Pré-requisitos

Requisitos do cluster PolarDB for MySQL

Importante

Para garantir uma restauração bem-sucedida, a versão do banco de dados auto-gerenciado deve corresponder à versão do cluster PolarDB for MySQL de origem.

O cluster deve atender aos seguintes requisitos:

  • Cluster: Este recurso está disponível apenas para a Cluster Edition de clusters Enterprise Edition.

  • Região: China (Chengdu), China (Guangzhou), China (Qingdao), China (Beijing), China (Shanghai), China (Zhangjiakou), China (Hangzhou), China (Shenzhen), China (Hong Kong), Malaysia (Kuala Lumpur), Indonesia (Jakarta), Japan (Tokyo), Singapore, US (Silicon Valley), US (Virginia) e Germany (Frankfurt).

    Nota

    Este recurso estará disponível em outras regiões em breve.

  • Outros:

    • O usuário RAM precisa ter permissões para baixar arquivos de backup. Para conceder permissões a um usuário RAM, consulte RAM user permissions.

    • Os dados de backup não estão criptografados. Não é possível baixar arquivos de backup de clusters PolarDB criptografados.

    • Apenas uma tarefa de download (em execução ou com falha) é permitida por cluster ou instância por vez.

Requisitos do banco de dados MySQL auto-gerenciado

Verifique se o parâmetro local_infile está ativado no banco de dados MySQL auto-gerenciado.

Nota
  • Visualize o status do parâmetro local_infile. O valor ON indica que o parâmetro está ativado: SHOW GLOBAL VARIABLES LIKE 'local_infile';

  • Ative o parâmetro local_infile: SET GLOBAL local_infile=1;

Limitações

As seguintes limitações se aplicam ao restaurar dados de um backup baixado para um banco de dados MySQL auto-gerenciado:

  • Os seguintes tipos de campo binário não são suportados: BIT, BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB e LONGBLOB.

    Nota

    Se um conjunto de backup contiver esses tipos de campo, eles serão armazenados em formato hexadecimal. Nesse caso, use manualmente a função UNHEX no comando load data local infile para converter os valores hexadeciais de volta ao formato binário original.

  • Os seguintes tipos de campo espacial não são suportados: GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON e GEOMETRYCOLLECTION.

Observações de uso

  • Use a mesma versão de banco de dados no cluster PolarDB for MySQL e no banco de dados MySQL auto-gerenciado. Recursos incompatíveis entre versões diferentes podem causar falha na restauração.

  • Antes de executar o comando de restauração, verifique se o banco de dados de destino não contém bancos de dados ou tabelas com os mesmos nomes dos presentes nos dados de backup. Isso evita conflitos e possível perda de informações. Remova previamente quaisquer bancos de dados ou tabelas conflitantes.

  • Interromper uma tarefa de restauração pode resultar em dados incompletos ou falha da tarefa.

Procedimento

Este exemplo demonstra a restauração de dados de um arquivo de backup SQL de um cluster PolarDB for MySQL para um banco de dados MySQL auto-gerenciado em uma instância ECS (CentOS 7.8 64 bits). Adapte os comandos para o seu ambiente específico.

  1. No console PolarDB, use o recurso Baixe arquivos de backup para converter o arquivo de backup do cluster para o formato CSV ou SQL. Em seguida, baixe o arquivo para sua máquina local ou para uma instância ECS.

  2. Descompacte o arquivo de backup.

    • Para arquivos .tar.gz:

      tar -izxvf <compressed_package_name>.tar.gz -C <destination_directory>

      Exemplo — descompacta backup.tar.gz em /home/mysql/data:

      tar -izxvf backup.tar.gz -C /home/mysql/data
    • Para arquivos .tar.zst:

      zstd -d -c <compressed_package_name>.tar.zst | tar -xvf - -C <destination_directory>

      Exemplo — descompacta backup.tar.zst em /home/mysql/data:

      zstd -d -c backup.tar.zst | tar -xvf - -C /home/mysql/data
  3. (Opcional) Verifique se o arquivo de backup foi descompactado no diretório especificado (/home/mysql/data).

    ls -al /home/mysql/data
  4. Baixe o script Python para sua máquina local ou instância ECS.

    Importante

    Este script serve apenas como referência e pode exigir modificações para o seu ambiente. Use-o com cautela.

  5. Torne o script restore_from_downloads.py executável com o seguinte comando:

    chmod +x ./restore_from_downloads.py
  6. Restaure os dados do arquivo CSV ou SQL para o banco de dados auto-gerenciado:

    python ./restore_from_downloads.py <path_to_csv_or_sql_directory> <database_endpoint> <database_port> <database_username> <database_password>

    Exemplo:

    python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********"
    Nota

    Se você fechar a janela do terminal, o script interromperá a execução. Para executar o script em segundo plano, execute o seguinte comando:

     nohup python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********" > app.log 2>&1 &

    Saída:

    [root@ixxx ~]# python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tesxxx"
    [INFO]: restore data from /home/mysql/data to 127.xxx:3306
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [INFO]: restore structure database: zhxxx ends
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [INFO]: restore structure table: zhxxx ends
    [INFO]: trying to exec: mysql -h127.xxx -P3306 -uroot -p#Tesxxx </home/mysql/data/zxxx
    mysql: [Warning] Using a password on the command line interface can be insecure.
    [INFO]: restore data [1/1] of table zhxxx.zhxxx
    Importante
    • Verifique se o banco de dados auto-gerenciado não contém um banco de dados com o mesmo nome de algum presente no backup. Caso contrário, a operação de restauração falhará.

    • Se o nome de usuário ou senha do banco de dados contiver caracteres especiais, como cerquilhas (#) ou espaços, coloque o valor entre aspas duplas ("") ao passá-lo como parâmetro de linha de comando. Por exemplo, se a senha do banco de dados for #1234, passe "#1234" na linha de comando.

    • Caso receba um erro como Command 'python' not found, significa que o Python não está instalado ou não está no PATH do sistema. Verifique a instalação do Python e o comando usado para executá-lo. Por exemplo, se o Python 3 estiver instalado, use python3 ./restore_from_downloads.py /home/mysql/data/test1.sql 127.0.0.1 3306 zhtxxxxx "#txxxxx".

    • Se a mensagem de aviso [Warning] Using a password on the command line interface can be insecure aparecer durante a execução do script Python, isso ocorre porque o script usa o comando mysql -h<database endpoint> -P<database port> -u<database username> -p<database password> -e<SQL>. Esse método é inseguro porque outros usuários no sistema podem visualizar a senha ao executar comandos como ps. Este aviso não afeta sua operação de recuperação. Após concluir a recuperação, faça login no banco de dados MySQL auto-gerenciado e altere a senha da conta.

    • Um erro como Access denied for user 'xxx'@'xxx' (using password: YES) indica nome de usuário ou senha incorretos para o banco de dados. Verifique se você inseriu as credenciais corretamente.