H2データベースドライバーが2.2.224バージョンにアップグレードされた場合、次のCVEの問題が発生します。バージョンが古いドライバーによってビルドされるデータベースは、バージョン2.2.224と互換性がありません。データベースをアップデートするには、古いH2ドライバーでデータベースをバックアップして、新しいドライバーでそのバックアップを復元する必要があります。
手順
-
H2データベースを使ってTalend Administration Centerをバックアップします:
/<tomcat_path>/webapps/org.talend.administratorを、バックアップディレクトリーである<backup_directory_path>にコピーします。
-
データベースドライバーのJARを解凍します:
- 古いドライバー(h2.2.x.jarなど)
- 新しいドライバー(h2-2.2.224.jar)
-
ターミナルを開き、<backup_directory_path>/org.talend.administrator/WEB-INF/libに進みます。
古いバージョンのドライバーを使って次のコマンドを入力します:java -jar h2-2.x.jar
-
古いデータベースのファイルの場所と、その古いデータベースにログインするための認証情報を入力してください。
jdbc:h2:/path/to/backup_dir/org.talend.administrator/WEB-INF/database/talend_administrator;AUTO_SERVER=TRUE;lock_timeout=15000;DEFAULT_LOCK_TIMEOUT=15000;
LOCK_MODE=0;MODE=LEGACY
-
コンソールにSCRIPT TO '<backup_file_path>/backup.sql';というコマンドを入力し、[Run] (実行)をクリックします。
これによって、指定された場所で、古いデータベースの内容が指定された名前でSQLファイルにエクスポートします。
-
以前のH2サーバーをシャットダウンします。
-
<tomcat_path>/webapps/を開き、/<tomcat_path>/webapps/org.talend.administrator/databaseにあるファイルをすべて削除します。
-
http://localhost:8082/。でH2ブラウザーコンソールを起動するためには、/<tomcat_path>/webapps/org.talend.administrator/WEB-INF/libの内部でターミナルを開いて次のコマンドを入力します:
java -cp h2*.jar org.h2.tools.Server -ifNotExists.
-
backup.sqlファイルを作成する前に、入力したデータベースの場所へのパスを指定します:
jdbc:h2:/<tomcat_path>//webapps/org.talend.administrator/WEB-INF/database/talend_administrator;AUTO_SERVER=TRUE;lock_timeout=15000;DEFAULT_LOCK_TIMEOUT=15000; LOCK_MODE=0;MODE=LEGACY
-
新しいデータベースにログインし、以下のコマンドを使ってバックアップファイルからデータをインポートします。
RUNSCRIPT FROM '<backup-file-path>/backup.sql';
-
Talend Administration Centerコンソールを起動します。
タスクの結果
Talend Administration Centerが、新しい2.2.224ドライバーで動作する新しいH2データベースを使用するようになります。