MySQL DB スナップショットから MariaDB DB インスタンスへのデータ移行 - Amazon Relational Database Service

MySQL DB スナップショットから MariaDB DB インスタンスへのデータ移行

AWS Management Console、AWS CLI、または Amazon RDS API を使用して、RDS for MySQL DB スナップショットを MariaDB を実行している新しい DB インスタンスに移行できます。MySQL 5.6 か 5.7 を実行している Amazon RDS DB インスタンスから作成された DB スナップショットを使用する必要があります。RDS for MySQL DB スナップショットを作成する方法については、「シングル AZ DB インスタンスの DB スナップショットの作成」を参照してください。

スナップショットの移行は、スナップショットを取得した元の DB インスタンスには影響しません。元の DB インスタンスの代わりとしてトラフィックを転送する前に、新しい DB インスタンスをテストして検証できます。

MySQL から MariaDB に移行した後、MariaDB DB インスタンスは、デフォルトの DB パラメータグループやオプショングループに関連付けられます。DB スナップショットを復元した後、新しい DB インスタンスにカスタム DB パラメータグループを関連付けることができます。ただし、MariaDB パラメータグループには異なる設定可能なシステム可変があります。MySQL と MariaDB のシステム可変の違いについては、「MariaDB と MySQL のシステム可変の違い」を参照してください。DB パラメータグループの詳細については、「パラメータグループを使用する」 を参照してください。オプションのグループの詳細については、オプショングループを使用する を参照してください。

移行の実行

AWS Management Console、AWS CLI、または RDS API を使用して、RDS for MySQL DBスナップショットを新しいMariaDB DBインスタンスに移行できます。

MySQL DB スナップショットを MariaDB DB インスタンスに移行するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[Snapshots] を選択し、移行する MySQL DB スナップショットを選択します。

  3. アクション」で「スナップショットの移行」 を選択します。「Migrate Database」 ページが表示されます。

  4. [Migrate to DB Engine] で、[mariadb] を選択します。

    Amazon RDS は DB エンジンバージョンを自動的に選択します。DB エンジンバージョンを変更することはできません。

    
                        MySQL から MariaDB に移行する
  5. 残りのセクションで、DB インスタンス設定を指定します。各設定の詳細については、「DB インスタンスの設定」を参照してください。

  6. 移行 を選択します。

MySQL DB スナップショットから MariaDB DB インスタンスにデータを移行するには、以下のパラメータを指定して AWS CLI の restore-db-instance-from-db-snapshot コマンドを使用します。

  • --DB インスタンス識別子 - DB スナップショットから作成される DB インスタンスの名前。

  • --db-snapshot-identifier - リストア元の DB スナップショットの識別子。

  • --engine - 新しいインスタンスに使用するデータベースエンジン。

Linux、macOS、Unix の場合:

aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier newmariadbinstance \ --db-snapshot-identifier mysqlsnapshot \ --engine mariadb

Windows の場合:

aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier newmariadbinstance ^ --db-snapshot-identifier mysqlsnapshot ^ --engine mariadb

MySQL DB スナップショットから MariaDB DB インスタンスにデータを移行するには、Amazon RDS API オペレーション RestoreDBInstanceFromDBSnapshot を呼び出します。

MariaDB と MySQL の間の非互換性

MySQL と MariaDB の間の非互換性は以下のとおりです。

  • MySQL 8.0 で作成した DB スナップショットは MariaDB に移行できません。

  • ソース MySQL データベースで SHA256 パスワードハッシュを使用している場合、MariaDB データベースに接続する前に SHA256 でハッシュ化されたユーザーパスワードをリセットしてください。次のコードは、SHA256 でハッシュ化されたパスワードをリセットする方法を示しています。

    SET old_passwords = 0; UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('new_password') WHERE (User, Host) = ('master_user_name', %); FLUSH PRIVILEGES;
  • RDS マスターユーザーアカウントが SHA-256 パスワードハッシュを使用している場合、AWS Management Console、modify-db-instance AWS CLI コマンド、または ModifyDBInstance RDS API オペレーションを使用してパスワードをリセットしてください。DB インスタンスの変更については、「Amazon RDS DB インスタンスを変更する」を参照してください。

  • MariaDB では、Memcached プラグインはサポートされていません。ただし、Memcached プラグインで使用されるデータは InnoDB テーブルとして保存されます。MySQL DB スナップショットを移行した後、SQL を使用して Memcached プラグインで使用されるデータにアクセスできます。innodb_memcache データベースに関する詳細については、「InnoDB memcached Plugin Internals」を参照してください。