決議
1. 新鮮なバンドルを解凍します。
2. これらのプロパティを portal-ext.properties に配置してください(新しいデータベースを使用してください)。
jdbc.default.jndi.name=jdbcLiferayWritePool jdbc.read.jndi.name=jdbcLiferayReadPool jdbc.write.jndi.name=jdbcLiferayWritePool counter.jdbc.prefix=jdbc.write.
spring.configs=\ META-INF/base-spring.xml,\ \ META-INF/hibernate-spring.xml,\ META-INF/infrastructure-spring.xml,\ META-INF/management-spring.xml,\ \ META-INF/util-spring.xml,\ \ META-INF/jpa-spring.xml,\ \ META-INF/executor-spring.xml,\ \ META-INF/audit-spring.xml,\ META-INF/cluster-spring.xml,\ META-INF/editor-spring.xml,\ META-INF/jcr-spring.xml,\ META-INF/ldap-spring.xml,\ META-INF/messaging-core-spring.xml,\ META-INF/messaging-misc-spring.xml,\ META-INF/mobile-device-spring.xml,\ META-INF/notifications-spring.xml,\ META-INF/poller-spring.xml,\ META-INF/rules-spring.xml,\ META-INF/scheduler-spring.xml,\ META-INF/search-spring.xml,\ META-INF/workflow-spring.xml,\ \ META-INF/counter-spring.xml,\ META-INF/mail-spring.xml,\ META-INF/portal-spring.xml,\ META-INF/portlet-container-spring.xml,\ META-INF/staging-spring.xml,\ META-INF/virtual-layouts-spring.xml,\ \ META-INF/monitoring-spring.xml,\ \ META-INF/dynamic-data-source-spring.xml,\ #META-INF/shard-data-source-spring.xml,\ #META-INF/memcached-spring.xml,\ \
3. このリソース設定をROOT.xmlに追加します。
<Resource name="jdbcLiferayReadPool" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://[IP of VM with Slave DB]:3306/[DB name]?useUnicode=true&characterEncoding=UTF-8" username="root" password="liferay" maxActive="20" /> <Resource name="jdbcLiferayWritePool" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/[DB name]?useUnicode=true&characterEncoding=UTF-8" username="root" password="liferay" maxActive="20" />
4. MySQL 5.5 をインストールした別の VM を実行します。 これは、スレーブデータベースサーバを実行します。
5. マスターデータベースサーバーの my.ini "mysqld" セクションに以下の設定が含まれていることを確認してください。 マスタサーバはバイナリログを利用してスレーブにレプリケーション情報を送信します。 server-idは1から4294967295までの任意の整数を指定することができます。
log-bin=mysql-bin
binlog_format=row
server-id=1
6. スレーブDBサーバのmy.ini mysqldセクションでレプリケーションスレーブのserver-id番号を設定します。 マスターズとは別のものであることを確認してください。
server-id=2
7. マスターDBサーバとスレーブDBサーバを再起動して、my.iniの設定変更を拾うようにします。
8. バイナリログ上のマスターの現在位置を取得する必要があります。 その前に、マスターのテーブルへの書き込みを停止する必要があります。 マスタDBサーバ上で以下のコマンドを実行します。
mysql> FLUSH TABLES WITH READ LOCK;
と表示され、この端末は開いたままにしておきます。
9. 別のコマンドプロンプトを開き、マスター上で実行します。
mysql > SHOW MASTER STATUS;
後で参照できるように、ファイル名と位置番号を記録します。
10. これでマスターのテーブルの読み取りロックを解除できます。 マスターランで
mysql> UNLOCK TABLES;
11. スレーブレプリケーションサーバーをマスターに向ける必要があります。 その前に、スレーブDBのmysqlターミナルで次のように実行します。
mysql> stop slave;
12. このステートメントをスレーブ・データベース上で実行して、マスター・サーバにポイントします。 実際のホスト名、ユーザー名、パスワードなどを挿入する必要があります。
mysql> CHANGE MASTER TO -> MASTER_HOST='master_host_name', -> MASTER_USER='replication_user_name', -> MASTER_PASSWORD='replication_password', -> MASTER_LOG_FILE='recorded_log_file_name', -> MASTER_LOG_POS='recorded_log_position';
13. スレーブのmysqlターミナルで実行します。
mysql> start slave;
スレーブの状態は "show slave statusG "で確認できます。 Slave_IO_Running と Slave_SQL_Running が両方とも yes であることを確認し、ログの位置が "show master status" に記載されているものと同じであることを確認してください。
14. ローカル マシンのマスター DB サーバーで、ROOT.xml で指定したデータベースを作成します。 スレーブサーバーでレプリケートされているか確認してください。
15. Liferayを起動し、アプリサーバのログに「ルートコンテキスト用のプラグインパッケージを読み込んでいます」と表示された後、スレーブDBの一般的なクエリログを確認します。