Amazon RDS の PostgreSQL にデータをインポートする
Amazon RDS に移動させる既存の PostgreSQL デプロイがあるとします。タスクの複雑さは、データベースのサイズと転送するデータベースオブジェクトの種類に依存しています。例えば、データベースにギガバイトのオーダーのデータセット、さらにストアドプロシージャとトリガーが含まれているとします。このようなデータベースは、単純なデータベース (数メガバイトのテストデータを含むだけで、トリガーやストアドプロシージャを含まないもの) よりも複雑になります。
次の条件で、ネイティブ PostgreSQL データベース移行ツールを使用することをお勧めします。
- 
                
ターゲットデータベースエンジンと同じデータベースエンジンを持つデータベースから移行する、同機種移行である。
 - 
                
データベース全体を移行する。
 - 
                
ネイティブツールでは、最小のダウンタイムでシステムを移行することができます。
 
他の多くの場合、データベースの移行には、AWS Database Migration Service (AWS DMS) を使用することが最良のアプローチとなります。AWSDMS により、ダウンタイムなしでデータベースを移行できます。また、多くのデータベースエンジンでは、ターゲットデータベースへの切り替え準備ができるまで、進行中のレプリケーションを続行することができます。AWS DMS を使用することで、同じデータベースエンジン、または異なるデータベースエンジンへの移行が可能です。ソースデータベースとは別のデータベースエンジンへ移行する場合は、AWS Schema Conversion Tool (AWS SCT) を使用できます。AWS SCT を使用して、AWS DMS で移行されないスキーマオブジェクトを移行します。AWS DMS の詳細については、「AWS Database Migration Service とは」を参照してください。
DB パラメータグループを変更し、次のインポート専用の設定を含めます。DB インスタンスサイズの最も効率的な設定を見つけるために、パラメータ設定をテストする必要があります。さらに、インポートが完了したら、これらのパラメータを本番稼働用の値に戻す必要があります。
DB インスタンスの設定を次のように変更します。
- 
                
DB インスタンスのバックアップを無効にします (backup_retention を 0 に設定します)。
 - 
                
マルチ AZ を無効にする。
 
次の設定を含むように DB パラメータグループを変更します。これらの設定は、データのインポート時にのみ使用してください。DB インスタンスサイズの最も効率的な設定を見つけるために、パラメータ設定をテストする必要があります。さらに、インポートが完了したら、これらのパラメータを本番稼働用の値に戻す必要があります。
| Parameter | インポート時の推奨値 | 説明 | 
|---|---|---|
| 
                             
  | 
                        
                             524288、1048576、2097152、または 4194304 (KB 単位)。これらの設定は、512 MB、1 GB、2 GB、および 4 GB と同等です。  | 
                        
                             この設定の値は、ホストのサイズによって異なります。このパラメータは、CREATE INDEX ステートメントで使用され、各パラレルコマンドがこの量のメモリを使用できます。この設定値が大きすぎてメモリ不足が生じることのないように、最適な値を計算します。  | 
                    
| 
                             
  | 
                        
                             256 (バージョン 9.6 の場合)、4096 (バージョン 10 以降の場合)  | 
                        
                             自動チェックポイント中に WAL を拡張するための最大サイズ。このパラメータを増やすと、クラッシュ回復に必要な時間が長く可能性があります。PostgreSQL 9.6 以降では、このパラメータは  PostgreSQL バージョン 9.6 の場合、この値は 16 MB 単位です。それ以降のバージョンでは、値は 1 MB 単位です。例えば、バージョン 9.6 では、128 は、それぞれ 16 MB のサイズである 128 個のチャンクを意味します。バージョン 12.4 では、2048 は、それぞれ 1 MB のサイズである 2048 個のチャンクを意味します。  | 
                    
| 
                             
  | 
                        
                             1800  | 
                        
                             この値に設定すると、WAL ローテーションの頻度を低くすることができます。  | 
                    
| 
                             
  | 
                        
                             オフ  | 
                        
                             この設定を無効にすると、書き込みが速くなります。このパラメータをオフにすると、サーバークラッシュ時にデータが損失するリスクが高まる可能性があります (FSYNC はオフにしないでください)。  | 
                    
| 
                             
  | 
                        
                             8192  | 
                        
                             この値は、8 KB 単位です。これも WAL の生成速度に貢献します。  | 
                    
| 
                             
  | 
                        
                             0  | 
                        
                             リソースが使用されないように、データのロード時に PostgreSQL の自動バキュームパラメータを無効にします。  | 
                    
これらの設定で、pg_dump -Fc (圧縮) または pg_restore -j (パラレル) コマンドを使用します。
注記
PostgreSQL コマンド pg_dumpall の実行には SUPER_USER 権限が必要ですが、この権限は DB インスタンスの作成時に付与されません。そのため、このコマンドをデータのインポートに使用することはできません。