

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# での同種データ移行のソースとしての MySQL 互換データベースの使用 AWS DMS
<a name="dm-data-providers-source-mysql"></a>

 AWS DMSでの [同種データ移行](data-migrations.md) のソースとして、MySQL 互換のデータベース (MySQL または MariaDB) を使用できます。この場合、ソースデータプロバイダーは、オンプレミス、Amazon EC2、RDS for MySQL または MariaDB データベースにすることができます。

同種データ移行を実行するには、レプリケーションのすべてのソーステーブルとセカンダリオブジェクトに対する `SELECT` 権限を持つデータベースユーザーを使用する必要があります。変更データキャプチャ (CDC) タスクの場合、`REPLICATION CLIENT` (10.5.2 以降の MariaDBバージョンの場合は `BINLOG MONITOR`) と `REPLICATION SLAVE` 権限もユーザーに必要です。フルロードデータ移行の場合、この 2 つの権限は必要ありません。

次のスクリプトを使用して、MySQL データベースでの必要な権限を持つデータベースユーザーを作成します。移行するすべてのデータベースに対して`GRANT`クエリを実行します AWS。

```
CREATE USER '{{your_user}}'@'%' IDENTIFIED BY '{{your_password}}';

GRANT REPLICATION SLAVE, REPLICATION CLIENT  ON *.* TO '{{your_user}}'@'%';
GRANT SELECT, RELOAD, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON *.* TO '{{your_user}}'@'%';

GRANT BACKUP_ADMIN ON *.* TO '{{your_user}}'@'%';
```

上記の例の各 {{user input placeholder}} は独自の情報に置き換えます。ソース MySQL データベースのバージョンが 8.0 以前の場合、`GRANT BACKUP_ADMIN` コマンドはスキップできます。

次のスクリプトを使用して、MariaDB データベースでの必要な権限を持つデータベースユーザーを作成します。移行するすべてのデータベースに対して GRANT クエリを実行します AWS。

```
CREATE USER '{{your_user}}'@'%' IDENTIFIED BY '{{your_password}}';
GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION SLAVE, BINLOG MONITOR, SHOW VIEW ON  *.* TO 'your_user'@'%';
```

上記の例の各 {{user input placeholder}} は独自の情報に置き換えます。

次のセクションでは、セルフマネージド型の MySQL データベースと AWSが管理する MySQL データベースの設定の具体的な前提条件について説明します。

**Topics**
+ [同種データ移行のソースとしてのセルフマネージド型の MySQL 互換データベースの使用](#dm-data-providers-source-mysql-sm)
+ [での同種データ移行のソースとしての AWSマネージド MySQL 互換データベースの使用 AWS DMS](#dm-data-providers-source-mysql-aws)
+ [MySQL 互換データベースを同種データ移行のソースとして使用する場合の制限](#dm-data-providers-source-mysql-limitations)

## 同種データ移行のソースとしてのセルフマネージド型の MySQL 互換データベースの使用
<a name="dm-data-providers-source-mysql-sm"></a>

このセクションでは、オンプレミスまたは Amazon EC2 インスタンスでホストされる MySQL 互換データベースの設定方法について説明します。

ソースの MySQL データベースまたは MariaDB データベースのバージョンを確認します。で説明されているように、 がソース MySQL または MariaDB データベースバージョン AWS DMS をサポートしていることを確認します[DMS 同種データ移行のソース](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.HomogeneousDataMigrations)。

CDC を使用するには、バイナリログを有効にしてください。バイナリログを有効にするには、MySQL データベースまたは MariaDB データベースの `my.ini` (Windows) または `my.cnf` (UNIX) ファイルで次のパラメータを設定します。


| パラメータ | 値 | 
| --- | --- | 
| `server-id` | このパラメータは、1 以上の値に設定します。 | 
| `log-bin` | パスをバイナリログファイル (`log-bin=E:\MySql_Logs\BinLog`) に設定します。ファイル拡張子を含めないでください。 | 
| `binlog_format` | このパラメータは `ROW` に設定します。`binlog_format` が `STATEMENT` に設定されているときは場合によっては、ターゲットにデータレプリケーション時に矛盾が生じる可能性があるため、レプリケーション中にこの設定をお勧めします。データベースエンジンが自動的に `STATEMENT` ベースのログに切り替わるため、`binlog_format` が `MIXED` に設定されていると、ターゲットのデータの書き込みで同様の不整合が発生する。 | 
| `expire_logs_days` | このパラメータは、1 以上の値に設定します。ディスク容量の使いすぎを防ぐため、デフォルト値の 0 は使用しないことをお勧めします。 | 
| `binlog_checksum` | このパラメータは `NONE` に設定します。 | 
| `binlog_row_image` | このパラメータは `FULL` に設定します。 | 
| `log_slave_updates` | MySQL または MariaDB のレプリカをソースとして使用している場合、このパラメータは `TRUE` と設定する。 | 

## での同種データ移行のソースとしての AWSマネージド MySQL 互換データベースの使用 AWS DMS
<a name="dm-data-providers-source-mysql-aws"></a>

このセクションでは、Amazon RDS for MySQL データベースインスタンスと Amazon RDS for MariaDB データベースインスタンスを設定する方法について説明します。

で同種データ移行のソースとして AWSマネージド MySQL または MariaDB データベースを使用する場合は AWS DMS、CDC に次の前提条件があることを確認してください。
+ RDS for MySQL と RDS for MariaDB のバイナリログを有効にするには、インスタンスレベルで自動バックアップを有効にします。Aurora MySQL クラスターのバイナリログを有効にするには、パラメータグループで変数 `binlog_format` を変更します。Aurora MySQL クラスターの自動バックアップについては有効にする必要はありません。

  次に、`binlog_format` パラメータを `ROW` に設定します。

  自動バックアップの設定の詳細については、「**Amazon RDS ユーザーガイド」の「[自動バックアップの有効化](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.Enabling)」を参照してください。

  Amazon RDS for MySQL または MariaDB データベースのバイナリログ設定の詳細については、「**Amazon RDS ユーザーガイド」の「[バイナリログ形式の設定](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html)」を参照してください。

  Aurora MySQL クラスターのバイナリログ設定の詳細については、「[Amazon Aurora MySQL クラスターのバイナリログを有効にする方法](https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/)」をご参照ください。
+ バイナリログが使用可能であることを確認します AWS DMS。 AWSマネージド MySQL および MariaDB データベースはバイナリログをできるだけ早く消去するため、ログが利用可能なままになる時間を増やす必要があります。たとえば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。

  ```
  call mysql.rds_set_configuration('binlog retention hours', 24);
  ```
+ `binlog_row_image` パラメータを `Full` に設定します。
+ `binlog_checksum` パラメータを `NONE` に設定します。
+ Amazon RDS for MySQL または MariaDB レプリカをソースとして使用する場合は、リードレプリカでバックアップを有効にして、`log_slave_updates` パラメータが `TRUE` と設定されていることを確認します。

## MySQL 互換データベースを同種データ移行のソースとして使用する場合の制限
<a name="dm-data-providers-source-mysql-limitations"></a>

MySQL 互換データベースを同種データ移行のソースとして使用する場合、次の制限が適用されます。
+ シーケンスなどの MariaDB オブジェクトは、同種移行タスクではサポートされていません。
+ MariaDB から Amazon RDS for MySQL または Aurora MySQL への移行は、互換性のないオブジェクトの差異により失敗する可能性があります。
+ データソースへの接続に使用するユーザー名には以下の制限があります。
  + 2～64 文字を使用できます。
  + スペースは使用できません。
  + 文字として a～z、A～Z、0～9、アンダースコア (\_) を使用できます。
  + a～z または A～Z で始める必要があります。
+ データソースへの接続に使用するパスワードには以下の制限があります。
  + 1～128 文字を使用できます。
  + 一重引用符 (')、二重引用符 (")、セミコロン (;)、スペースのいずれも使用できません。
+ AWS DMS 同種データ移行では、ソースオブジェクトが暗号化されていても、ターゲット Amazon RDS インスタンスに暗号化されていない MySQL および MariaDB オブジェクトが作成されます。RDS for MySQL は、暗号化されたオブジェクトに必要な MySQL keyring\_aws AWS キーリングプラグインをサポートしていません。Amazon RDS ユーザーガイドの「[MySQL キーリングプラグインがサポートされていない](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html#MySQL.Concepts.Limits.KeyRing)」ドキュメントを参照してください。
+ AWS DMS は、ソースデータに含まれている場合でも、データレプリケーションにグローバルトランザクション識別子 (GTIDs) を使用しません。