Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Restore an ApsaraDB RDS for MySQL snapshot backup file to a self-managed database

Última atualização: Oct 09, 2026

Use o recurso Download Backup para converter um backup de snapshot de uma instância baseada em disco do ApsaraDB RDS for MySQL em um arquivo CSV ou SQL. Em seguida, restaure esse arquivo em um banco de dados MySQL autogerenciado em uma máquina local ou em uma instância ECS.

Pré-requisitos

  • A instância do ApsaraDB RDS for MySQL deve atender aos seguintes requisitos:

    • Versão do banco de dados: 8.0 ou 5.7 (há suporte para instâncias Serverless)

    • Tipo de armazenamento: ESSD ou disco de desempenho premium

    • Status: em execução

    Nota
    • Visualize essas informações na página Basic Information da instância.

    • O recurso de download avançado não é compatível com instâncias que usam discos de desempenho premium e têm o recurso de arquivamento de dados ativado. As tarefas de download dessas instâncias falham.

  • Desative o TDE na instância do ApsaraDB RDS for MySQL. Se a instância contiver tabelas criptografadas, o processo de restauração falhará. É necessário descriptografar as tabelas antes.

  • Ative o parâmetro local_infile no seu banco de dados MySQL autogerenciado.

    Nota
    • Para verificar o status do parâmetro local_infile (ON indica que está ativado), execute o comando: SHOW GLOBAL VARIABLES LIKE 'local_infile';

    • Para ativar o parâmetro local_infile, execute o seguinte comando: SET GLOBAL local_infile=1;

Limitações

As limitações a seguir se aplicam aos tipos de dados na restauração de um conjunto de backups baixado para um banco de dados MySQL autogerenciado.

  • Tipos de campos binários não suportados: BIT, BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB e LONGBLOB.

    Nota
    • Se um conjunto de backups contiver esses tipos de dados, eles serão armazenados em formato hexadecimal. Durante a importação, o MySQL os trata como strings. Use manualmente a função UNHEX() no comando load data local infile para convertê-los de volta ao formato binário.

    • Como alternativa, para dados BLOB, use o mysqldump para fazer backup e restaurar os dados no seu banco de dados MySQL local.

      Faça backup dos dados: mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <self-managed_database_name> --skip-triggers --skip-lock-tables > /tmp/<self-managed_database_name>.sql

      Restaure os dados: mysql -h 127.0.0.1 -u username -p database_name < backup_file.sql

  • Tipos de dados espaciais não suportados: GEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON e GEOMETRYCOLLECTION.

Antes de começar

  • Manutenção do script: O script restore_from_downloads.py fornecido neste tópico é apenas para referência e não é mais mantido. Use-o com cuidado e verifique sua compatibilidade com o seu ambiente.

  • Consistência da versão do banco de dados: Certifique-se de que a versão principal do seu banco de dados MySQL autogerenciado corresponda à da instância do ApsaraDB RDS for MySQL. Incompatibilidades de versão podem causar falhas na restauração devido a recursos incompatíveis.

  • Conflitos de nomenclatura: Certifique-se de que o banco de dados autogerenciado de destino não tenha conflitos de nomenclatura com os bancos de dados ou tabelas do conjunto de backups. Conflitos de nomenclatura causarão falhas na restauração.

  • Interrupção da tarefa: Interromper a tarefa de restauração pode resultar em dados incompletos ou falha na restauração. Não interrompa o processo depois de iniciá-lo.

  • Tratamento de caracteres especiais: Se um caminho de arquivo, conta de banco de dados ou senha contiver caracteres especiais, como &, # ou um space, coloque o valor entre aspas duplas (""). Caso contrário, o comando falhará. Por exemplo:

    # If a file path contains special characters, such as &, enclose the path in double quotation marks.
    python ./restore_from_downloads.py "/path/to/data&test" 127.0.0.1 3306 root zhtpasswordtest
    
    # If a password contains special characters, such as # or @, enclose the password in double quotation marks.
    python ./restore_from_downloads.py /data 127.0.0.1 3306 root "#Test@20250821"

Procedimento

Este exemplo demonstra como restaurar um arquivo SQL de uma instância baseada em disco do ApsaraDB RDS for MySQL para um banco de dados MySQL autogerenciado. O banco de dados autogerenciado neste exemplo é executado em uma instância ECS com Alibaba Cloud Linux 3.2104 LTS 64-bit. Adapte os comandos para o seu ambiente.

  1. Baixe e descompacte o arquivo de backup

    1. Acesse o console do RDS e use o recurso Download Backup para converter o arquivo de backup da sua instância baseada em disco do ApsaraDB RDS for MySQL em um arquivo CSV ou SQL. Em seguida, baixe o arquivo para a sua máquina local ou instância ECS.

    2. Descompacte o arquivo de backup baixado em sua máquina local ou instância ECS.

      • Se o arquivo de backup estiver no formato .tar.gz, execute o comando:

        tar -izxvf <compressed_file_name>.tar.gz -C <destination_directory>
        # Example: Decompress the backup.tar.gz file to the /home/mysql/data directory. The file name and directory in the command are for reference only.
        tar -izxvf backup.tar.gz -C /home/mysql/data
      • Se o arquivo de backup estiver no formato .tar.zst, execute o seguinte comando:

        zstd -d -c <compressed_file_name>.tar.zst | tar -xvf - -C <destination_directory>
        # Example: Decompress the backup.zst file to the /home/mysql/data directory. The file name and directory in the command are for reference only.
        zstd -d -c backup.tar.zst | tar -xvf - -C /home/mysql/data
    3. (Opcional) Execute o comando abaixo para verificar se o arquivo de backup foi descompactado no local especificado (/home/mysql/data):

      ls -al /home/mysql/data
  2. Prepare o script de restauração

    1. Prepare um script de restauração.

      Baixe o arquivo de script Python do MySQL para a sua máquina local ou para uma instância ECS.

      Importante

      Este script é fornecido apenas para referência. Modifique o script para adequá-lo ao seu ambiente. Use o script com cuidado.

    2. Execute o comando a seguir para conceder permissão de execução ao script:

      chmod +x ./<script_name>.py
      # Example:
      chmod +x ./restore_from_downloads.py
  3. Execute o comando de restauração

    Importante

    Se aparecer uma mensagem de erro como Command 'python' not found, o Python não está instalado ou o comando python não está no PATH do sistema. Nesse caso, verifique a versão do Python instalada e use o comando correto para executar o script. Por exemplo, se você tiver o Python 3 instalado, execute o comando python3 ./restore_from_downloads.py /home/mysql/data/test1.sql 127.0.0.1 3306 zhtxxxxx "#txxxxx".

    python ./<script_name>.py <path_to_CSV_or_SQL_directory> <database_host> <database_port> <database_account> <database_password>
    # Example:
    python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********"
    [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

Referências