Amazon RDS DB インスタンスにデータをインポートする方法を教えてください。

所要時間3分
0

既存のデータベースから Amazon Relational Database Service (Amazon RDS) インスタンスに、最小限のダウンタイムでデータをインポートしたいと考えています。

簡単な説明

既存のデータベースからデータを Amazon RDS DB インスタンスにインポートするには、以下の手順を実行します。

  1. ソースデータベースからデータをエクスポートする
  2. エクスポートしたデータをアップロードする
  3. アップロードしたデータを Amazon RDS DB インスタンスにインポートする

**注:**データインポートプロセスでは、さまざまな長さでのサーバーのダウンタイムが必要となります。ダウンタイムの長さは、インポートするソースデータベースのサイズに応じて異なります。ダウンタイムの長さは、送信先の DB インスタンスが使用するデータベースエンジンの種類によっても影響を受けます。

解決策

Amazon RDS DB インスタンスにデータをインポートするには、次のステップを実行します。

ソースデータベースからデータをエクスポートする

既存のデータベースのコピーを作成するには、データベースのソースエンジンに基づいて次の手順を実行します。

Amazon RDS for MySQL

既存の MySQL データベースのコピーを作成するには、mysqldumpmysql などの MySQL ツールを使用します。詳細については、MySQL ウェブサイトの「mysqldump — A Database Backup Program」 と「mysql — The MySQL Command-Line Client」を参照してください。

レプリケーションを使用してソース MySQL データベースから Amazon RDS にデータをインポートすることもできます。詳細については、MySQL ウェブサイトの「レプリケーション」を参照してください。

Amazon RDS for PostgreSQL

既存の PostgreSQL データベースのコピーを作成するには、pg_dumppsqlcopy コマンドなどの PostgreSQL ツールを使用します。詳細については、PostgreSQL ウェブサイトの pg_dumppsqlcopy を参照してください。

Amazon RDS for Oracle

既存の Oracle データベースから Amazon RDS にデータをエクスポートするには、Oracle SQL DeveloperOracle 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 クラスターにデータをエクスポートするには、mysqldumpmydumper などのネイティブツールを使用します。Aurora MySQL 互換のバイナリログのレプリケーションを使用すると、ダウンタイムを短縮できます。

DB インスタンスのスナップショットまたは Aurora リードレプリカを使用して、MySQL データを Aurora MySQL DB クラスターに移行することもできます。

**注:**すべての移行オプションにおいて、必ずどのソーステーブルも、動的な行フォーマットを使用して InnoDB ストレージエンジンに変換されるようにしてください。これにより、移行の速度が速くなります。詳細については、「Amazon Aurora へのデータベースの移行」を参照してください。

エクスポートしたデータをアップロードする

Amazon RDS for MySQL

エクスポートしたデータをアップロードするには、Amazon Elastic Compute Cloud (Amazon EC2) または Amazon S3 にアップロードします。

Amazon RDS for PostgreSQL

エクスポートしたデータをアップロードするには、Amazon EC2 または Amazon S3 にアップロードします。

Amazon RDS for Oracle

エクスポートしたデータを Amazon RDS for Oracle DB インスタンスにアップロードするには、Amazon S3 またはデータベースリンクのいずれかで Oracle Data Pump を使用します。

詳細については、「Oracle Data Pump の概要」を参照してください。

Amazon RDS for SQL Server

SQL Server データベースからエクスポートされたデータを Amazon S3 にアップロードするには、「ネイティブバックアップと復元の設定」を参照してください。

アップロードしたデータを Amazon RDS DB インスタンスにインポートする

Amazon RDS for MySQL

MySQL データベースからアップロードされたデータをインポートするには、mysqldumpmysqlreplication などのツールを使用します。MySQL バージョン 5.7.9 以降を使用している場合は、データを外部の Amazon RDS DB インスタンスにレプリケートしたり、外部の Amazon RDS DB インスタンスからレプリケートしたりできます。マルチスレッド移行については、「mydumper と myloader を使用したマルチスレッド移行」を参照してください。

詳細については、「ダウンタイムを削減して、 Amazon RDS MariaDB または MySQL データベースへのデータのインポート」を参照してください。

Amazon RDS for MariaDB

MariaDB データベースからアップロードされたデータをインポートするには、MariaDB ウェブサイトの mysqldumpmysqlreplication などのツールを使用します。大規模なデータベースを移行する場合は、mydumpermyloader を使用してマルチスレッドのダンプとインポートを実行します。マルチスレッド移行については、「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 データのインポートとエクスポートオペレーションのすべてに適用されます。

**注:**本番インスタンスのバックアップをオフにしないことがベストプラクティスです。バックアップをオフにすると、ポイントインタイムリカバリ機能が無効になり、DB インスタンスの以前に自動化されたスナップショットが削除され、削除されたスナップショットのリカバリができなくなります。

  • マルチアベイラビリティーゾーン (AZ) データロードの書き込み操作によるオーバーヘッドを減らすには、マルチ AZ 機能をオフにします。

**注:**すべての本稼働 Amazon RDS DB インスタンスにマルチ AZ 機能を使用することがベストプラクティスです。データのロードが完了したらすぐにマルチ AZ 機能がオンになっていることを確認してください。

**ソースデータベースデータインポートガイドライン **

AWS Database Migration Service (AWS DMS) を使用することで、オンプレミス環境から AWS にデータをインポートできます。DMS はダウンタイムを最小限に抑えながら、同種のデータベース間の移行も、異なるデータベース間の移行もサポートします。AWS DMS には以下の移行タイプがあります。

詳細については、「データベース移行のステップバイステップチュートリアル」を参照してください。

関連情報

Best practices for Amazon RDS

レプリケーションを使用した MySQL DB インスタンスからのデータのエクスポート