解像度
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を確認する。