すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:スナップショットバックアップファイルを使用して ApsaraDB RDS for MySQL インスタンスのデータを自己管理 MySQL インスタンスに復元する

最終更新日:Sep 17, 2025

ApsaraDB RDS for MySQL のバックアップダウンロード機能を使用して、クラウドディスクを使用する ApsaraDB RDS for MySQL インスタンスのスナップショットバックアップファイルを CSV ファイルまたは SQL ファイルとしてエクスポートできます。その後、CSV ファイルまたは SQL ファイルを使用して、RDS インスタンスのデータを自己管理 MySQL インスタンスに復元できます。

前提条件

  • ApsaraDB RDS for MySQL インスタンスは、次の要件を満たしています。

    • データベースバージョン: 8.0 または 5.7 (サーバーレスインスタンスがサポートされています)

    • ストレージタイプ: ESSD または高性能ディスク

    • ステータス: 実行中

    説明
    • この情報は、インスタンスの [基本情報] ページで表示できます。

    • 高性能ディスクを使用し、データアーカイブ機能が有効になっているインスタンスでは、高度なダウンロード機能はサポートされていません。これらのインスタンスのダウンロードタスクは失敗します。

  • RDS インスタンスでは TDE (透過的データ暗号化) が無効になっています。インスタンス内のテーブルが TDE を使用して暗号化されている場合、復元中にエラーが発生します。この場合、復元前に暗号化されたテーブルを復号化する必要があります。詳細については、「TDE (透過的データ暗号化) を有効にする」をご参照ください。

  • 自己管理 MySQL インスタンスでは、local_infile パラメーターが ON に設定されています。

    説明
    • local_infile パラメーターが ON に設定されているかどうかを確認するには、次の文を実行してその値を表示します: SHOW GLOBAL VARIABLES LIKE 'local_infile';

    • 次の文を実行して local_infile を設定できます: SET GLOBAL local_infile=1;

制限事項

ダウンロードした CSV ファイルまたは SQL ファイルを使用して自己管理 MySQL インスタンスにデータを復元する場合、次の制限事項に注意してください。

  • 次のデータの型のフィールドはサポートされていません: BITBINARYVARBINARYTINYBLOBBLOBMEDIUMBLOB、および LONGBLOB

    説明
    • ダウンロードした CSV ファイルまたは SQL ファイルに前述のデータの型のフィールドが含まれている場合、フィールドは 16 進数表現で格納されます。CSV ファイルまたは SQL ファイルを自己管理 MySQL インスタンスにインポートすると、バイナリフィールドは文字列として処理されます。この場合、LOAD DATA LOCAL INFILE コマンドで UNHEX 関数を呼び出して、フィールドを 16 進数表現から生のバイナリ文字列に変換する必要があります。

    • mysqldump を使用して BLOB 型のデータをバックアップし、自己管理 MySQL データベースにデータを復元できます。

      データのバックアップに使用するコマンド: mysqldump -h 127.0.0.1 -u user -p --opt --default-character-set=utf8 --hex-blob <Name of the self-managed database> --skip-triggers --skip-lock-tables > /tmp/<Name of the self-managed database>.sql

      データの復元に使用するコマンド: mysql -h 127.0.0.1 -u Username -p Database name < Backup file name.sql

  • 次の空間データの型のフィールドはサポートされていません: GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGON、および GEOMETRYCOLLECTION

使用上の注意

  • スクリプト: この Topic で使用される restore_from_downloads.py スクリプトは参照用です。このスクリプトを使用する前に、互換性検証を実行してください。

  • データベースエンジンバージョンの一貫性: RDS インスタンスと自己管理 MySQL インスタンスには、同じデータベースエンジンバージョンを使用することを推奨します。データベースエンジンのバージョンが異なると、互換性の問題が発生し、復元が失敗する可能性があります。

  • データベースまたはテーブル名の重複排除: 復元コマンドを実行する前に、自己管理 MySQL インスタンス内のデータベースまたはテーブルの名前が、RDS インスタンス内のデータベースまたはテーブルの名前と異なることを確認してください。そうしないと、復元は失敗します。

  • タスクの中断: 復元タスクを中断すると、完全なデータが復元されないか、復元タスクが失敗する可能性があります。注意して進めてください。

  • 特殊文字: この Topic で提供されるコマンドのファイルパス、データベースアカウント、またはパスワードに、アンパサンド (&)、番号記号 (#)、またはスペースなどの特殊文字が含まれている場合は、二重引用符 ("") で囲んでください。例:

    # ファイルパスにアンパサンド (&) が含まれている場合は、二重引用符 ("") で囲みます。
    python ./restore_from_downloads.py "/path/to/data&test" 127.0.0.1 3306 root zhtpasswordtest
    
    # パスワードに番号記号とアットマーク (@) が含まれている場合は、二重引用符 ("") で囲みます。
    python ./restore_from_downloads.py /data 127.0.0.1 3306 root "#Test@20250821"

手順

このセクションでは、SQL ファイルを使用して、クラウドディスクを使用する RDS インスタンスのデータを、64 ビット Alibaba Cloud Linux 3.2104 LTS を実行している Elastic Compute Service (ECS) インスタンス上の自己管理 MySQL インスタンスに復元する方法について説明します。他のオペレーティングシステムを使用する場合は、対応するコマンドを使用する必要があります。

  1. バックアップファイルのダウンロードと解凍

    1. ApsaraDB RDS コンソールにログインし、クラウドディスクを使用する RDS インスタンスのバックアップファイルを CSV ファイルまたは SQL ファイルに変換し、バックアップダウンロード機能を使用して、ファイルをコンピューターまたは ECS インスタンスにダウンロードします。

    2. ダウンロードしたファイルを解凍します:

      • ダウンロードしたファイルが .tar.gz フォーマットの場合、次のコマンドを実行します:

        tar -izxvf <Downloaded file name>.tar.gz -C <Directory that you want to decompress the file>
        
        # 次のサンプルコマンドは、backup.tar.gz ファイルを次のパスに解凍します: /home/mysql/data。ファイル名とディレクトリを実際の値に置き換えてください。
        tar -izxvf backup.tar.gz -C /home/mysql/data
      • ダウンロードしたファイルが .tar.zst フォーマットの場合、次のコマンドを実行します:

        zstd -d -c <Downloaded file name>.tar.zst | tar -xvf - -C <Directory that you want to decompress the file>
        
        # 次のサンプルコマンドは、backup.zst ファイルを次のパスに解凍します: /home/mysql/data。ファイル名とディレクトリを実際の値に置き換えてください。
        zstd -d -c backup.tar.zst | tar -xvf - -C /home/mysql/data
    3. 任意。バックアップファイルが /home/mysql/data ディレクトリに解凍されているかどうかを確認します。

      ls -al /home/mysql/data
  2. 復元スクリプトの準備

    1. MySQL Python スクリプトをコンピューターまたは ECS インスタンスにダウンロードします。

      重要

      このスクリプトは参照用です。要件に基づいてスクリプトを修正してください。

    2. 次のコマンドを実行して、restore_from_downloads.py ファイルに必要な権限を付与します:

      chmod +x ./<Script name>.py
      
      # サンプルコマンド
      chmod +x ./restore_from_downloads.py
  3. RDS インスタンスのデータを自己管理 MySQL インスタンスに復元する

    python ./<Script name>.py <Path of the CSV or SQL file> <Database host> <Database port> <Username of the account> <Password of the account>
    
    # サンプルコマンド
    python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********"

    出力:

    image.png

    重要

    Command 'python' not found エラーメッセージが表示された場合、Python がインストールされていないか、Python スクリプトを実行するために使用されるコマンドが検索パスにありません。この場合、システムにインストールされている Python のバージョンと、Python スクリプトを実行するために使用されるコマンドを確認する必要があります。たとえば、Python 3 がインストールされている場合は、python3 ./restore_from_downloads.py /home/mysql/data/test1.sql 127.0.0.1 3306 zhtxxxxx "#txxxxx" コマンドを実行できます。

関連ドキュメント