AuroraデータベースへのMySQLの移行(4.4.3または最新バージョン)

4.4.3または最新バージョンのコントローラデータベースとして機能するよう、Amazon Auroraを作成および構成することができます。このプロセスは、mysqldumpを使用してデータベースを移行するもので、MySQLバージョン5.7を実行するコントローラでは必須です。詳細については、「mysqldump を使用したコントローラのバックアップ」を参照してください。

注: 4.3.x以下から4.4.3にコントローラをアップグレードする場合、MySQL 5.5が使用されるため、コントローラのMySQLバージョンを把握しておく必要があります。詳細については、

バンドルされるMySQLデータベースのバージョン

を参照し、MySQL バージョンを確認して必要に応じてアップグレードする方法を確認してください。

AWS でコントローラを実行するには、さらに情報を得るために一部のクラスター DB が AWS にコントローラをデプロイする必要があることに注意してください。

MySQLをAuroraデータベースに移行するには、次の手順に従います。

注: liquibase-stored プロシージャなしで移行されたコントローラをアップグレードまたは移動しようとすると、アップグレードが失敗します。これらのストアドプロシージャを、AWSで手動でもう一度作成する必要があります。
  1. ステップ1:空のAuroraデータベースのプロビジョニング

  2. ステップ2:mysqldumpを使用したMySQLからのエクスポート

  3. ステップ 3:mysqldump を使用した Cisco AppDynamics データベースからのストアドプロシージャのエクスポート

  4. ステップ 4:mysql を使用した Aurora へのインポート

  5. ステップ5:Auroraデータベースを使用するためのコントローラの構成

ステップ1:空のAuroraデータベースのプロビジョニング

最初に、「AWS へのコントローラのデプロイ」の説明に従って、任意のインスタンスタイプとその他のカスタム設定を使用し、Aurora の新しいインスタンスを起動する必要があります。データベースインスタンスが、ポート 3388 を使用して作成されていることを確認してください。

ステップ2:mysqldumpを使用したMySQLからのエクスポート

警告: mysqldump を使用する前に、コントローラのアプリケーションサーバーが停止していることを確認してください。アプリケーションサーバーの実行中に mysqldump を実行しようとすると、コントローラのパフォーマンスと安定性が著しく低下します。

mysqldump を使用するには、mysqldump 実行ファイルを実行し、root ユーザー名、パスワード、および出力ファイルを渡します。

  1. 次のコマンドを実行して、実行ファイルのディレクトリに移動します。

    cd <controller_home>/db/bin
  2. 次のコマンドを使用して、MySQLからデータベースをエクスポートします。

    ./mysqldump -u root --databases controller licensing mds_auth mds_configuration mds_entitysearch mds_infra_core mds_infra_server mds_license mds_metadata mds_metering mds_rbac mds_topology --single-transaction --compress --order-by-primary -p "<password>" > backup.sql
  3. 結果ファイルを Aurora にインポートするには、以下の行を、

    /*!50013 DEFINER=`controller`@`localhost` SQL SECURITY DEFINER */

    以下の行に置き換えます。

    /*!50013 DEFINER=`controller`@`%` SQL SECURITY DEFINER */

ステップ 3:mysqldump を使用した Splunk AppDynamics データベースからのストアドプロシージャのエクスポート

次のコマンドを実行し、ストアドプロシージャを Splunk AppDynamics データベースからエクスポートします。

./mysqldump -u root -p --protocol=TCP -h 127.0.0.1 -P <controller_mysql_port> --no-create-db --skip-add-drop-table --no-create-info --skip-disable-keys mysql proc --result-file=/staging/path/for/mysql.proc.sql

このコマンドでは、--result-file オプションを使用して、ストアドプロシージャが /staging/path/for/mysql.proc.sql にダンプされます。

ステップ 4:mysql を使用した Aurora へのインポート

  1. 次のコマンドを実行して、実行ファイルのディレクトリに移動します。

    cd <controller_home>/db/bin
  2. 新しいAuroraインスタンスに接続します。

    ./mysql -u root -p"<password>" -h <hostname>.<aws-region>.rds.amazonaws.com -P 3388 --protocol=TCP
  3. 次に、コントローラユーザーを作成して、権限を付与します。

    CREATE USER 'controller'@'%' IDENTIFIED BY 'controller';
    GRANT USAGE ON *.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `controller`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `licensing`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_auth`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_configuration`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_entitysearch`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_infra_core`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_infra_server`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_license`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_metadata`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_metering`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_rbac`.* TO 'controller'@'%';
    GRANT ALL PRIVILEGES ON `mds_topology`.* TO 'controller'@'%';
    FLUSH PRIVILEGES;
    注:

    Auroraデータベースは、権限のないソースからのアクセスを防ぐため、セキュリティグループによって保護されています。

  4. データベースバックアップをインポートします。

    ./mysql -u controller -P 3388 -H <hostname>.<aws-region>.rds.amazonaws.com -p "controller" --protocol=TCP < backup.sql
  5. ストアドプロシージャをインポートします。

    警告: インポートは、管理者またはルートユーザが行う必要があります。
    ./mysql -u admin -P 3388 -H <hostname>.<aws-region>.rds.amazonaws.com -p "controller" --protocol=TCP < /staging/path/for/mysql.proc.sql

ステップ5:Auroraデータベースを使用するためのコントローラの構成

  1. コントローラで、jetty/etc/webapp-common.xml ファイルに Aurora DB パラメータを設定します。

    <Call name="setProperty">
    <Arg>database.url</Arg>
    <Arg>jdbc:mysql://[aurora-db].[aws-region].rds.amazonaws.com:3388/controller?nullNamePatternMatchesAll=true&allowLoadLocalInfile=true&cachePrepStmts=true&prepStmtCacheSize=25&dumpQueriesOnException=true&rewriteBatchedStatements=true&useSSL=false&maxAllowedPacket=104857600</Arg>
    </Call>
    <Call name="setProperty">
    <Arg>database.servername</Arg>
    <Arg>[aurora-db].[aws-region].rds.amazonaws.com</Arg>
    </Call>
    <Call name="setProperty">
    <Arg>database.port</Arg>
    <Arg>[aurora-db-port]</Arg>
    </Call>
  2. ファイル <controller_home>/bin/controller_maintenance.xml で、プロパティ db-host を Aurora データベースの値に設定します。

    <property name="db-host" value="<aurora-db>.<aws-region>.rds.amazonaws.com"/>
    <property name="db-port" value="[aurora-db-port]"/>
  3. ファイル <controller_home>/bin/setup.xml で、プロパティ db-host を Aurora データベースの値に設定します。

    <property name="db-host"value="<aurora-db>.<aws-region>.rds.amazonaws.com"/>
    <property name="db-port" value="[aurora-db-port]"/>
  4. コントローラサービスがインストールされた状態で、ルートでコントローラを起動します。

    platform-admin.sh start-controller-appserver
  5. コントローラが正常に実行されていることを確認します。ローカル MySQL データベースは、シャットダウンしている必要があります。また、移行されたデータは Aurora に表示されます。これは、コントローラ UI から確認することができます。