AuroraデータベースへのMySQLの移行(4.4.3または最新バージョン)
4.4.3または最新バージョンのコントローラデータベースとして機能するよう、Amazon Auroraを作成および構成することができます。このプロセスは、mysqldumpを使用してデータベースを移行するもので、MySQLバージョン5.7を実行するコントローラでは必須です。詳細については、「mysqldump を使用したコントローラのバックアップ」を参照してください。
AWS でコントローラを実行するには、さらに情報を得るために一部のクラスター DB が AWS にコントローラをデプロイする必要があることに注意してください。
MySQLをAuroraデータベースに移行するには、次の手順に従います。
liquibase-stored プロシージャなしで移行されたコントローラをアップグレードまたは移動しようとすると、アップグレードが失敗します。これらのストアドプロシージャを、AWSで手動でもう一度作成する必要があります。ステップ1:空のAuroraデータベースのプロビジョニング
最初に、「AWS へのコントローラのデプロイ」の説明に従って、任意のインスタンスタイプとその他のカスタム設定を使用し、Aurora の新しいインスタンスを起動する必要があります。データベースインスタンスが、ポート 3388 を使用して作成されていることを確認してください。
ステップ2:mysqldumpを使用したMySQLからのエクスポート
mysqldump を使用する前に、コントローラのアプリケーションサーバーが停止していることを確認してください。アプリケーションサーバーの実行中に mysqldump を実行しようとすると、コントローラのパフォーマンスと安定性が著しく低下します。mysqldump を使用するには、mysqldump 実行ファイルを実行し、root ユーザー名、パスワード、および出力ファイルを渡します。
-
次のコマンドを実行して、実行ファイルのディレクトリに移動します。
cd <controller_home>/db/bin
-
次のコマンドを使用して、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
-
結果ファイルを 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 へのインポート
-
次のコマンドを実行して、実行ファイルのディレクトリに移動します。
cd <controller_home>/db/bin
-
新しいAuroraインスタンスに接続します。
./mysql -u root -p"<password>" -h <hostname>.<aws-region>.rds.amazonaws.com -P 3388 --protocol=TCP
-
次に、コントローラユーザーを作成して、権限を付与します。
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データベースは、権限のないソースからのアクセスを防ぐため、セキュリティグループによって保護されています。
-
データベースバックアップをインポートします。
./mysql -u controller -P 3388 -H <hostname>.<aws-region>.rds.amazonaws.com -p "controller" --protocol=TCP < backup.sql
-
ストアドプロシージャをインポートします。
警告: インポートは、管理者またはルートユーザが行う必要があります。./mysql -u admin -P 3388 -H <hostname>.<aws-region>.rds.amazonaws.com -p "controller" --protocol=TCP < /staging/path/for/mysql.proc.sql
ステップ5:Auroraデータベースを使用するためのコントローラの構成
-
コントローラで、
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> -
ファイル
<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]"/>
-
ファイル <
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]"/>
-
コントローラサービスがインストールされた状態で、ルートでコントローラを起動します。
platform-admin.sh start-controller-appserver
-
コントローラが正常に実行されていることを確認します。ローカル MySQL データベースは、シャットダウンしている必要があります。また、移行されたデータは Aurora に表示されます。これは、コントローラ UI から確認することができます。