legacy-knowledge-base
公開されました Jul. 2, 2025

MySQL 5.5でLiferay 6.2を読み書き可能なデータベース分割でセットアップする場合

投稿者

Brian Larson

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text
この記事では、JNDI接続と読み取り/書き込みの分割構成で、MySQL 5.5にLiferay 6.2バンドルをセットアップする方法について説明します。

解像度

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&amp;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&amp;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を確認する。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base