Amazon RDS DB インスタンスにデータをインポートする方法を教えてください。
既存のデータベースから Amazon Relational Database Service (Amazon RDS) インスタンスに、最小限のダウンタイムでデータをインポートしたいと考えています。
簡単な説明
既存のデータベースからデータを Amazon RDS DB インスタンスにインポートするには、以下の手順を実行します。
- ソースデータベースからデータをエクスポートする
- エクスポートしたデータをアップロードする
- アップロードしたデータを Amazon RDS DB インスタンスにインポートする
**注:**データインポートプロセスでは、さまざまな長さでのサーバーのダウンタイムが必要となります。ダウンタイムの長さは、インポートするソースデータベースのサイズに応じて異なります。ダウンタイムの長さは、送信先の DB インスタンスが使用するデータベースエンジンの種類によっても影響を受けます。
解決策
Amazon RDS DB インスタンスにデータをインポートするには、次のステップを実行します。
ソースデータベースからデータをエクスポートする
既存のデータベースのコピーを作成するには、データベースのソースエンジンに基づいて次の手順を実行します。
Amazon RDS for MySQL
既存の MySQL データベースのコピーを作成するには、mysqldump や mysql などの MySQL ツールを使用します。詳細については、MySQL ウェブサイトの「mysqldump — A Database Backup Program」 と「mysql — The MySQL Command-Line Client」を参照してください。
レプリケーションを使用してソース MySQL データベースから Amazon RDS にデータをインポートすることもできます。詳細については、MySQL ウェブサイトの「レプリケーション」を参照してください。
Amazon RDS for PostgreSQL
既存の PostgreSQL データベースのコピーを作成するには、pg_dump、psql、copy コマンドなどの PostgreSQL ツールを使用します。詳細については、PostgreSQL ウェブサイトの pg_dump、psql、copy を参照してください。
Amazon RDS for Oracle
既存の Oracle データベースから Amazon RDS にデータをエクスポートするには、Oracle SQL Developer や Oracle Datapump などの Oracle ツールを使用します。
小規模なデータベースの場合は、Oracle ウェブサイトの「Oracle SQL Developer を使用したデータベースコピー」を参照してください。
大規模なデータベースの場合は、データベースリンクを使用してデータポンプのエクスポートを実行し、インスタンスに定義されているディレクトリにインポートします。エクスポートパラメーターを指定する場合は、データベースリンクが必要となります。詳細については、Oracle ウェブサイトの「Database Links」、「Data Pump Export」、「Data Pump Import」、「Specifying Export Parameters」を参照してください。
Amazon RDS for SQL Server
SQL Server データベースをエクスポートするには、Microsoft SQL Server データベースのネイティブバックアップとリストアを使用します。この方法では、.bak ファイルを使用します。
データベースをバックアップし、そのバックアップを Amazon Simple Storage Service (Amazon S3) に保存してから、そのバックアップを Amazon RDS に復元することもできます。
Amazon Aurora MySQL
外部 MySQL データベースから Amazon Aurora MySQL DB クラスターにデータをエクスポートするには、mysqldump や mydumper などのネイティブツールを使用します。Aurora MySQL 互換のバイナリログのレプリケーションを使用すると、ダウンタイムを短縮できます。
DB インスタンスのスナップショットまたは Aurora リードレプリカを使用して、MySQL データを Aurora MySQL DB クラスターに移行することもできます。
**注:**すべての移行オプションにおいて、必ずどのソーステーブルも、動的な行フォーマットを使用して InnoDB ストレージエンジンに変換されるようにしてください。これにより、移行の速度が速くなります。詳細については、「Amazon Aurora へのデータベースの移行」を参照してください。
エクスポートしたデータをアップロードする
Amazon RDS for MySQL
エクスポートしたデータをアップロードするには、Amazon Elastic Compute Cloud (Amazon EC2) または Amazon S3 にアップロードします。
- Amazon EC2 については、「Amazon EC2 インスタンスを作成し、圧縮されたデータベースをコピーする」を参照してください。
- Amazon S3 については、「MySQL DB インスタンスへのバックアップの復元」を参照してください。
Amazon RDS for PostgreSQL
エクスポートしたデータをアップロードするには、Amazon EC2 または Amazon S3 にアップロードします。
- Amazon EC2 については、「Amazon EC2 インスタンスから PostgreSQL データベースをインポートする」を参照してください。
- Amazon S3 については、「Amazon S3 から RDS for PostgreSQL DB インスタンスへのデータのインポート」を参照してください。
Amazon RDS for Oracle
エクスポートしたデータを Amazon RDS for Oracle DB インスタンスにアップロードするには、Amazon S3 またはデータベースリンクのいずれかで Oracle Data Pump を使用します。
- Amazon S3 で Oracle Data Pump を使用するには、「Oracle Data Pump と Amazon S3 バケットによるデータのインポート」を参照してください。
- データベースリンクで Oracle Data Pump を使用するには、「Oracle Data Pump とデータベースリンクによるデータのインポート」を参照してください。
詳細については、「Oracle Data Pump の概要」を参照してください。
Amazon RDS for SQL Server
SQL Server データベースからエクスポートされたデータを Amazon S3 にアップロードするには、「ネイティブバックアップと復元の設定」を参照してください。
アップロードしたデータを Amazon RDS DB インスタンスにインポートする
Amazon RDS for MySQL
MySQL データベースからアップロードされたデータをインポートするには、mysqldump、mysql、replication などのツールを使用します。MySQL バージョン 5.7.9 以降を使用している場合は、データを外部の Amazon RDS DB インスタンスにレプリケートしたり、外部の Amazon RDS DB インスタンスからレプリケートしたりできます。マルチスレッド移行については、「mydumper と myloader を使用したマルチスレッド移行」を参照してください。
詳細については、「ダウンタイムを削減して、 Amazon RDS MariaDB または MySQL データベースへのデータのインポート」を参照してください。
Amazon RDS for MariaDB
MariaDB データベースからアップロードされたデータをインポートするには、MariaDB ウェブサイトの mysqldump、mysql、replication などのツールを使用します。大規模なデータベースを移行する場合は、mydumper と myloader を使用してマルチスレッドのダンプとインポートを実行します。マルチスレッド移行については、「mydumper と myloader を使用したマルチスレッド移行」を参照してください。
詳細については、「ダウンタイムを削減して、 Amazon RDS MariaDB または MySQL データベースへのデータのインポート」を参照してください。
Amazon RDS for PostgreSQL
アップロードしたデータを PostgreSQL データベースからインポートするには、psql を使用して DB インスタンスにデータベースを作成し、データをロードします。詳細については、「psql を使用して DB インスタンスにデータベースを作成し、データをロードする」を参照してください。
Amazon S3 バケットからアップロードされたデータをインポートするには、aws_s3 エクステンションの table_import\ _from_s3 関数を使用します。詳細については、「Amazon S3 から RDS for PostgreSQL DB インスタンスへのデータのインポート」を参照してください。
Amazon RDS for Oracle
アップロードされたデータを Oracle データベースからインポートするには、Oracle Data Pump と impdp コマンドラインクライアントを使用します。Oracle Data Pump の詳細については、「Oracle Data Pump の概要」を参照してください。impdp コマンドの詳細については、Oracle ウェブサイトの「Oracle Data Pump のインポート開始 」を参照してください。
Amazon RDS for SQL Server
Amazon S3 から SQL Server データベースからアップロードされたデータをインポートするには、rds_restore_database プロシージャを使用します。詳細については、「データベースの復元」を参照してください。
データインポートガイドライン
**一般的なデータインポートのガイドライン **
以下のガイドラインは、Amazon RDS データのインポートとエクスポートオペレーションのすべてに適用されます。
- 圧縮および複数のスレッドを使用して、データを並列でロードおよびアンロードします。大量のデータを並列でロードする場合は、データロードプロセスの際にクライアントマシンに十分なリソースがあることを確認してください。
- Amazon RDS DB インスタンスのバックアップ保持期間をゼロに設定すると、自動バックアップが無効になり、大量のデータロードのパフォーマンスが向上します。この変更を適用するには、Amazon RDS DB インスタンスを再起動してください。データのロードが完了したら、自動バックアップを有効にします。データロードの重要な段階で DB スナップショットを作成することをお勧めします。これにより、必要に応じてスナップショットからインスタンスを復元できます。
**注:**本番インスタンスのバックアップをオフにしないことがベストプラクティスです。バックアップをオフにすると、ポイントインタイムリカバリ機能が無効になり、DB インスタンスの以前に自動化されたスナップショットが削除され、削除されたスナップショットのリカバリができなくなります。
- マルチアベイラビリティーゾーン (AZ) データロードの書き込み操作によるオーバーヘッドを減らすには、マルチ AZ 機能をオフにします。
**注:**すべての本稼働 Amazon RDS DB インスタンスにマルチ AZ 機能を使用することがベストプラクティスです。データのロードが完了したらすぐにマルチ AZ 機能がオンになっていることを確認してください。
**ソースデータベースデータインポートガイドライン **
AWS Database Migration Service (AWS DMS) を使用することで、オンプレミス環境から AWS にデータをインポートできます。DMS はダウンタイムを最小限に抑えながら、同種のデータベース間の移行も、異なるデータベース間の移行もサポートします。AWS DMS には以下の移行タイプがあります。
- 既存データを移行する (フルロード)
- 進行中のレプリケーションまたは変更データキャプチャ (CDC)
- 既存のデータを移行し、進行中の変更をレプリケート (フルロードと CDC)
詳細については、「データベース移行のステップバイステップチュートリアル」を参照してください。
関連情報
関連するコンテンツ
- 質問済み 5ヶ月前lg...
- 質問済み 6年前lg...
- 質問済み 6年前lg...
- 質問済み 3年前lg...
- AWS公式更新しました 10ヶ月前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前