このトピックでは、論理バックアップファイルを使用して、ApsaraDB RDS for PostgreSQLインスタンスから自己管理型PostgreSQLインスタンスにデータを移行する方法について説明します。
前提条件
PostgreSQLがコンピュータにインストールされています。 自己管理型PostgreSQLインスタンスは、RDSインスタンスと同じメジャーエンジンバージョンを実行します。
説明この例では、組み込みのPostgreSQLツールpg_dumpを使用してデータをバックアップします。 コンピューターにPostgreSQLをインストールすると、ツールが自動的にインストールされます。
自己管理型PostgreSQLインスタンスにデータベースが作成され、データベースにはデータが保存されません。
スーパーユーザーアカウントは、自己管理型PostgreSQLインスタンスに作成されます。
手順
コンピュータのCLIで、次のコマンドを実行してデータをバックアップします。
pg_dump -U <username> -h <hostname> -p <port> <databasename> -f <filename> -- exclude-table=public.ha_health_check次の表に、前のコマンドのパラメーターを示します。
パラメーター
説明
username
RDSインスタンスの特権アカウントのユーザー名。 特権アカウントの作成方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスでのアカウントの作成」をご参照ください。
hostname
RDSインスタンスが存在するホストの名前。
port
RDSインスタンスへの接続に使用されるポート番号。
databasename
バックアップするデータベースの名前。
filename
生成されたバックアップファイルに使用する名前。
-- exclude-table=public.ha_health_check
高可用性チェックをスキップすることを指定します。
例:
pg_dump -U testuser -h xxxx.pg.rds.aliyuncs.com -p 5432 testdb -f bkfile.sql -- exclude-table=public.ha_health_check次のコマンドを実行して、論理バックアップファイルから自己管理型PostgreSQLインスタンスにデータを復元します。
psql -U <username> -h <hostname> -d <databasename> -p <port> -f <filename.sql>次の表に、前のコマンドのパラメーターを示します。
パラメーター
説明
username
自己管理型PostgreSQLインスタンスのスーパーユーザーアカウントのユーザー名。
hostname
自己管理型PostgreSQLインスタンスが存在するホストの名前。 このパラメーターをlocalhostに設定します。
port
自己管理型PostgreSQLインスタンスへの接続に使用されるポート番号。
databasename
ターゲットテーブルの名前です。
filename
バックアップファイルの名前。
例:
psql -U testuser -h localhost -d testdb -p 5432 -f bkfile.sql
RDSインスタンスと自己管理型PostgreSQLインスタンスのパラメーター設定は異なります。 その結果、自己管理型PostgreSQLインスタンスにデータをインポートするときに、権限関連の警告やエラーが発生することがあります。 警告とエラーは無視できます。 例:
警告: 「xxxxx」の特権を取り消すことはできませんでした
エラー: ロール "xxxxx" は存在しません