Download PDF
Download page Amazon Auroraへのコントローラデータベースのマイグレーション.
Amazon Auroraへのコントローラデータベースのマイグレーション
既存の4.4.3または最新のオンプレミスのコントローラデータベースを、Aurora DBに移行することができます。コントローラは、AWS またはデータセンターにすでに存在する場合があります。
コントローラにはすでに MySQL データベースが含まれていますが、MySQL データベースを Aurora に移行することが推奨されます。これは、Aurora では複製が可能で、高可用性と弾力性を実現できるためです。Amazon Relational Database Service(RDS)ツールでは、データベースのプロビジョニング、パッチ適用、バックアップ、復元、エラー検出、修復を行うことができます。また、Aurora DB では保存データの暗号化が可能で、同一クラスタにある自動バックアップ、スナップショット、レプリカをすべて暗号化します。
コントローラがまだ AWS にない場合は、コントローラの移行に従って移行します。移行完了後は、AWSの1つまたは2つのEC2インスタンス(既存のコントローラが高可用性(HA)かどうかで変わります)でコントローラが実行されており、このインスタンスでMySQLデータベースがホストされています。
データベースを起動および停止するコマンドは、Aurora DBでは機能しません。
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 でコントローラを実行するには、cluster
パラメータグループと db
パラメータグループの設定の一部を調整する必要があることに注意してください。詳細については、「AWSへのコントローラのデプロイ」を参照してください。
MySQLをAuroraデータベースに移行するには、次の手順に従います。
liquibase-stored
プロシージャなしで移行されたコントローラをアップグレードまたは移動しようとすると、アップグレードが失敗します。これらのストアドプロシージャを、AWSで手動でもう一度作成する必要があります。
ステップ1:空のAuroraデータベースのプロビジョニング
最初に、「AWSへのコントローラのデプロイ」の説明に従って、任意のインスタンスタイプとその他のカスタム設定を使用し、Aurora の新しいインスタンスを起動する必要があります。データベースインスタンスが、ポート 3388 を使用して作成されていることを確認してください。
ステップ2:mysqldumpを使用したMySQLからのエクスポート
mysqldump
を使用する前に、まずコントローラのアプリケーションサーバが停止していることを確認してください。アプリサーバの実行中に mysqldump
を実行しようとすると、コントローラのパフォーマンスと安定性が著しく低下します。
mysqldump
を使用するには、mysqldump
実行ファイルを実行し、ルートユーザ名、パスワード、出力ファイルを渡します。
次のコマンドを実行して、実行ファイルのディレクトリに移動します。
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>
XMLファイル
<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]"/>
Linux ユーザーの場合、Enterprise Console GUIまたは 以下のコマンドでコントローラーを起動します。
platform-admin.sh start-controller-appserver
Windows ユーザーの場合、Enterprise Console UI または Windows サービスでコントローラーを起動します。コントローラが正常に実行されていることを確認します。ローカル MySQL データベースは、シャットダウンしている必要があります。また、移行されたデータは Aurora に表示されます。これは、コントローラ UI から確認することができます。
コントローラ データベース ルート ユーザ パスワードのリセット
コントローラ データベース ルート ユーザ パスワードをリセットするには、次の手順を実行します。
- 管理者として RDS インスタンスにログインします。
./mysql -u admin -h <rds-aurora-endpoint> -P 3388 -p
- MySQL を使用して、以下のコマンドを実行します。
- コントローラデータベースを指定するには、次のように入力します。
use mysql;
- MySQL の権限テーブルをリロードするには、次のように入力します。
FLUSH PRIVILEGES;
- MySQL のバージョンを確認するには、
select version();
と入力します。 - MySQL バージョン 5.5 を使用している場合、root ユーザの新しいパスワードを設定するには、
update mysql.user set password=password('<new-password-here>') where user like 'root%';
と入力します。 - MySQL バージョン 5.7 を使用している場合、root ユーザの新しいパスワードを設定するには、
update mysql.user set authentication_string=password('<new-password-here>') where user like 'root%';
と入力します。 - MySQL の権限テーブルをリロードするには、次のように入力します。
FLUSH PRIVILEGES;
- MySQL を終了するには、次のように入力します。
quit
- コントローラデータベースを指定するには、次のように入力します。
コントローラ データベース ルート ユーザ パスワードの変更
デフォルトでは、Splunk AppDynamics デプロイで使用される Aurora データベースのコントローラユーザーのパスワードは controller
です。
コントローラ データベース ルート ユーザ パスワードを変更するには、次の手順を実行します。
- root として RDS インスタンスにログインします。
./mysql -u root -h <rds-aurora-endpoint> -P 3388 -p
- MySQL を使用して、以下のコマンドを実行します。
- コントローラデータベースを指定するには、
use mysql;
と入力します。 - MySQL の権限テーブルをリロードするには、次のように入力します。
FLUSH PRIVILEGES;
- MySQL のバージョンを確認するには、
select version();
と入力します。 - MySQL バージョン 5.5 を使用している場合、root ユーザの新しいパスワードを設定するには、
update mysql.user set password=password('<new-password-here>') where user like 'controller%';
と入力します。 - MySQL バージョン 5.7 を使用している場合、root ユーザの新しいパスワードを設定するには、
update mysql.user set authentication_string=password('<new-password-here>') where user like 'controller%';
と入力します。 - MySQL の権限テーブルをリロードするには、次のように入力します。
FLUSH PRIVILEGES;
- MySQL を終了するには、
quit
と入力します。
- コントローラデータベースを指定するには、
controller-db-password
エイリアスを、Glassfish の新しいコントローラ DB パスワードで更新します。cd <controller_home>/appserver/glassfish/bin ./asadmin update-password-alias controller-db-password
CODEコントローラ AppServer を再起動して、変更を有効にします。
cd <controller_home>/bin ./controller.sh stop-appserver ./controller.sh start-appserver
CODEasadmin で変更を確認します。
cd <controller_home>/appserver/glassfish/bin ./asadmin ping-connection-pool controller_mysql_pool
CODE