ApsaraDB RDS for PostgreSQLのバックアップダウンロード機能を使用して、クラウドディスクをCSVファイルまたはSQLファイルとして使用するApsaraDB RDS for PostgreSQLインスタンスのスナップショットバックアップファイルをエクスポートできます。 次に、CSVファイルまたはSQLファイルを使用して、RDSインスタンスのデータを自己管理型PostgreSQLインスタンスに復元できます。
手順
このセクションでは、SQLファイルを使用して、クラウドディスクを使用するRDSインスタンスのデータを、64ビットCentOS 7.8を実行するElastic Compute Service (ECS) インスタンス上の自己管理型PostgreSQLインスタンスに復元する方法について説明します。 他のオペレーティングシステムを使用する場合は、対応するコマンドを使用する必要があります。
ApsaraDB RDSコンソールにログインし、クラウドディスクを使用するRDSインスタンスのバックアップファイルをCSVファイルまたはSQLファイルに変換してから、コンピューターまたはECSインスタンスにダウンロードします。 詳細については、「バックアップファイルのダウンロード」をご参照ください。
次のコマンドを実行して、ダウンロードしたパッケージを解凍します。
tar -zxvf <パッケージの名前> .tar.gz -C <パッケージから取得したファイルを格納するディレクトリ>
この例では、
backup.tar.gz
という名前のパッケージが/home/ecs-test-user
ディレクトリに解凍されます。 パッケージ名とディレクトリ名を実際の名前に置き換えることができます。tar -zxvf backup.tar.gz -C /home/ecs-test-user
オプションです。 バックアップファイルが /home/ecs-test-userディレクトリに解凍されているかどうかを確認します。
ls -al /home/ecs-test-user
PostgreSQL PythonスクリプトをコンピューターまたはECSインスタンスにダウンロードします。
次のコマンドを実行して、
restore_from_downloads.py
ファイルに必要な権限を付与します。chmod + x。/restore_from_downloads.py
次のコマンドを実行して、CSVファイルまたはSQLファイルを使用してRDSインスタンスのデータを自己管理型PostgreSQLインスタンスに復元します。
python3 restore_from_downloads.py <CSVファイルまたはSQLファイルのディレクトリ> <データベースホスト> <データベースポート> <アカウントのユーザー名> <アカウントのパスワード>
例:
python3 restore_from_downloads.py /home/ecs-test-user 127.0.0.1 5432 postgres "#Tes ********"
重要自己管理型PostgreSQLインスタンスに、データをインポートするデータベースと同じ名前のデータベースが含まれている場合、インポートは失敗します。
使用するアカウントのユーザー名またはパスワードに、数字記号 (#) やスペースなどの特殊文字が含まれている場合は、ユーザー名またはパスワードを二重引用符 ("") で囲む必要があります。 たとえば、パスワードが
#1234
の場合、上記のコマンドで"#1234"
と入力する必要があります。Python 3.xがインストールされていない場合、データの復元中にエラーが発生する可能性があります。
python3 -- version
コマンドを実行して、Pythonのバージョンを確認できます。
参考資料
テーブルのデータなど、少量のデータを復元する場合は、論理バックアップファイルを使用できます。 詳細については、「pg_restoreを使用して論理バックアップファイルからデータを復元する」をご参照ください。
Alibaba Cloudが提供する移行サービスを使用して、RDSインスタンスから自己管理型PostgreSQLインスタンスにデータを移行することもできます。 詳細については、「PostgreSQLデータベースからのデータの移行」をご参照ください。
データ復元方法の詳細については、「データ復元方法の概要」をご参照ください。