解像度
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セクションに、レプリケーションスレーブのサーバーID番号を設定する。 マスターと異なることを確認する:
server-id=2
7. マスターDBサーバーとスレーブDBサーバーを再起動し、my.iniの設定変更が反映されるようにします。
8. あとは、バイナリログでマスターの現在位置をつかむ。 その前に、マスターのテーブルへの書き込みを停止する必要があります。 マスターDBサーバーで、以下のコマンドを実行します。
mysql> FLUSH TABLES WITH READ LOCK;
で、この端子を開けておく。
9. 別のコマンドプロンプトを開き、マスター上で実行する
mysql > SHOW MASTER STATUS;
後で参照できるように、ファイル名とポジション番号を記録しておきます。
10. これで、Masterのテーブルの読み取りロックを解除することができました。 オンマスターラン
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を起動し、アプリサーバーのログに「Reading plugin package for root context」が表示された後、スレーブDBのgeneral query logを確認する。