Documentation

データベースアップグレードツールのリファレンス

ここでは、Liferayのアップグレードツールの概要について説明します。

[LIFERAY_HOME]/tools/portal-tools-db-upgrade-clientフォルダ(Windowsではdb_upgrade.bat)にあるdb_upgrade.shスクリプトを使用して、アップグレードツールを起動します。

データベースアップグレードツールの使用

次のコマンドは、アップグレードツールの使用状況を出力します。

db_upgrade.sh --help

次に、アップグレードツールのすべてのコマンドラインオプションを示します。

--helpまたは**-h**:ツールのヘルプメッセージを出力します。

--jvm-opts or -j + [arg]:アップグレードプロセスのJVMオプションを設定します。

--log-file or -l + [arg]:ツールのログファイル名を指定します。デフォルト名はupgrade.logです。

--shell または -s:アップグレード作業終了後、Gogoシェルに自動的に接続します。

ログ出力

-lオプションは、ツールのログファイル名を指定します。

db_upgrade.sh -l "output.log"

推奨されるJVMオプション

必ずファイルエンコーディングをUTF-8に、標準時をGMTに設定してください。 データベースアップグレードツールはDXPデータベース上で動作するため、DXPアプリケーションサーバーで使用するものと同じJVMオプションを使用してアップグレードツールを構成する必要もあります。 国と言語のJVMオプションを使用した場合は、それらをアップグレードツールに指定してください。

また、アップグレードツール用の初期メモリ(-Xmx value)も割り当てます。 少なくとも2GBを使用してください。 DXPデータベースに10GBを超えるデータがある場合は、初期メモリを増やしてください。

3.2 GBのデータベースと15 GBのドキュメントライブラリを使用したテストシナリオでは、次のJavaプロセス設定が最適でした。

  • Xmx 8 GBのRAM

  • ファイルエンコーディングUTF-8

  • ユーザーの標準時GMT

これらの設定に対応するdb_upgrade.shコマンドは次のとおりです。

db_upgrade.sh -j "-Xmx8000m -Dfile.encoding=UTF-8 -Duser.timezone=GMT"

アップグレードツールの設定

コアのアップグレードには設定が必要です。 最も簡単な方法は、アップグレードツールを使用して構成ファイルをオンザフライで作成することです。 次に、アップグレードツールのコマンドラインインターフェースとの対話の例を示します。

Please enter your application server (tomcat):
tomcat

Please enter your application server directory (../../tomcat-9.0.17):

Please enter your extra library directories (../../tomcat-9.0.17/bin):

Please enter your global library directory (../../tomcat-9.0.17/lib):

Please enter your portal directory (../../tomcat-9.0.17/webapps/ROOT):

[ db2 mariadb mysql oracle postgresql sqlserver sybase ]
Please enter your database (mysql):
mariadb

Please enter your database host (localhost):

(etc.)

注釈

省略された値は、括弧内に表示されているデフォルトを使用します。

手動設定

また、アップグレードツールを事前設定して、ツールが生成するよりも多くの値を設定することもできます。 [LIFERAY_HOME]/tools/portal-tools-db-upgrade-client/にある次のファイルを使用して、コアアップグレードを手動で設定します。

  • app-server.properties:サーバーの場所とライブラリを指定します。

  • portal-upgrade-database.properties:データベース接続を設定します。

  • portal-upgrade-ext.properties:アップグレードに必要な残りのポータルプロパティを設定します。 現在のDXPサーバーを複製するには、現在のポータルプロパティ(データベースプロパティを除く)をこのファイルにコピーします。 現在のプロパティを使用する前に、必ず現在のDXPバージョンに合わせて更新してください

app-server.propertiesの設定

DXPのアプリケーションサーバーを設定するには、次の情報を指定します。

プロパティ名

意味

メモ

dir

アプリケーションサーバーフォルダの絶対パス。

extra.lib.dirs

クラスパスに追加するバイナリまたはリソースを含む追加のディレクトリのカンマ区切りリスト。

dirに関連するパスを使用します。

global.lib.dir

アプリケーションサーバーのグローバルライブラリディレクトリ。

dirに関連するパスを使用します。

portal.dir

アプリケーションサーバーでポータルがインストールされているディレクトリ。

dirに関連するパスを使用します。

server.detector.server.id

サポートされているアプリケーションサーバーのID。

サポートされているID:jbossjonasresintomcatweblogicwebspherewildfly

相対パスはUnixスタイルの形式(フォワードスラッシュ)を使用し、 /で始まる必要があります。 たとえば、次のプロパティはWindows用です。

dir=D:\liferay-dxp\tomcat-9.0.17
extra.lib.dirs=/bin
global.lib.dir=/lib
portal.dir=/webapps/ROOT
server.detector.server.id=tomcat

別の例として、次のプロパティはLinux用です。

dir=/home/user/liferay
extra.lib.dirs=/liferay-portal-master/tomcat-9.0.10/bin
global.lib.dir=/liferay-portal-master/tomcat-9.0.10/lib
portal.dir=/liferay-portal-master/tomcat-9.0.10/webapps/ROOT
server.detector.server.id=tomcat

portal-upgrade-database.propertiesの構成

次の情報を指定して、アップグレードするデータベースを構成します。 これらのプロパティは、portal-ext.propertiesファイルで使用するJDBCポータルプロパティに対応することに注意してください。

  • jdbc.default.driverClassName

  • jdbc.default.url

  • jdbc.default.username

  • jdbc.default.password

これらの値のリファレンスについては、最新のポータルプロパティリファレンスを参照してください。

portal-upgrade-ext.propertiesの構成

バックアップから、portal-ext.propertiesファイルプロパティなどのすべてのポータルプロパティを追加します。 次のプロパティは、アップグレードを設定するために特に重要です。

  • liferay.homeLIFERAY_HOMEフォルダ

  • dl.store.impl:ドキュメントをドキュメントライブラリストアに保持するための実装。 このプロパティは、*FileSystemStore 実装を使用している場合にのみ必須です。 portal-ext.propertiesでこのプロパティを更新した場合は、ここに新しい値をコピーします。 それ以外の場合は、次のいずれかの方法でプロパティを設定します。

    dl.store.impl=com.liferay.portal.store.file.system.FileSystemStore
    dl.store.impl=com.liferay.portal.store.db.DBStore
    dl.store.impl=com.liferay.portal.store.file.system.AdvancedFileSystemStore
    dl.store.impl=com.liferay.portal.store.s3.S3Store
    
  • hibernate.jdbc.batch_size:パフォーマンスを向上させるために使用されるJDBCバッチサイズ(デフォルトでは_250_に設定)。 このプロパティを使用するとアップグレードのパフォーマンスが向上しますが、必須ではありません。

  • upgrade.log.context.enabled: trueに設定すると、識別子にタグ付けされたアップグレード関連のログ行が表示されます。

  • upgrade.log.context.nameupgrade.log.context.enabledを使用する場合、識別子の名前を設定します。 例えば、 upgrade.log.context.name=fooです。

なお、upgrade.log.context.enabledは、立ち上げ時のアップグレードだけでなく、アップグレードツールでも動作します。 また、この機能を利用するには、portal-impl/src/META-INF/portal-log4j.xmlファイルをbundles/tomcat/webapps/ROOT/WEB-INF/META-INFにコピーし、ファイル名をportal-log4j-ext.xmlに変更する必要があります。 次に、アペンダーの定義を見つけます。

<Appender name="CONSOLE" type="Console">
    <Layout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%t][%c{1}:%L] %m%n" type="PatternLayout" />
</Appender>

スレッドコンテキスト情報を出力するようにLog4jに指示する %Xを含むように定義を変更します。

<Appender name="CONSOLE" type="Console">
    <Layout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%t][%c{1}:%L] %m %X%n" type="PatternLayout" />
</Appender>

以下に、アップグレード関連行のタグを含むログ行の例を示します。

...
2022-07-26 20:56:15.966 INFO  [main][PortalUpgradeProcess:174] Upgrading com.liferay.portal.upgrade.PortalUpgradeProcess {foo=foo}
2022-07-26 20:56:15.969 INFO  [main][UpgradeProcess:98] Upgrading com.liferay.portal.upgrade.v7_4_x.UpgradeAddress {foo=foo}
2022-07-26 20:56:18.765 INFO  [main][UpgradeProcess:113] Completed upgrade process com.liferay.portal.upgrade.v7_4_x.UpgradeAddress in 2797 ms {foo=foo}
...
2022-07-26 20:56:38.611 INFO  [main][BaseDB:716] Dropping stale indexes {foo=foo}
2022-07-26 20:56:38.615 INFO  [main][BaseDB:786] drop index IX_60C8634C on Repository {foo=foo}
...

アップグレード構成の例

以下は、カスタマイズして[LIFERAY_HOME]/tools/portal-tools-db-upgrade-client/にコピーできるアップグレード構成ファイルの例です。

  • app-server.properties

    dir=../../tomcat-9.0.17
    global.lib.dir=lib
    portal.dir=webapps/ROOT
    server.detector.server.id=tomcat
    extra.lib.dirs=bin
    
  • portal-upgrade-database.properties

    jdbc.default.url=jdbc:mysql://lportal62?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&serverTimezone=GMT&useFastDateParsing=false&useUnicode=true
    jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver
    jdbc.default.username=root
    jdbc.default.password=
    
  • portal-upgrade-ext.properties

    liferay.home=/home/user/servers/liferay7
    module.framework.base.dir=/home/user/servers/liferay7/osgi
    dl.store.impl=com.liferay.portal.store.file.system.FileSystemStore