跳到主要内容 跳到补充内容

将 H2 数据库从 1.x 版本升级到 2.x 版本

为解决 CVE 问题,H2 数据库驱动被升级到 2.1.210 版本。由 1.4.196/1.4.200 驱动版本构件的数据库与 2.1.210 版本不兼容。要升级数据库,您需要使用旧的 H2 驱动备份数据库,并用新驱动恢复此备份。

步骤

  1. 准备数据库驱动包:
    • 原驱动包 (h2-1.4.196.jar/h2-1.4.200.jar)。
    • 新驱动包 (h2-2.1.210.jar)。
  2. 使用 Script 工具备份数据库:
    // use the h2-1.4.196.jar/h2-1.4.200.jar to backup the current h2 db:talend_administrator to file: tac_backup.zip
    java -cp .\h2-1.4.200.jar org.h2.tools.Script -url 
    "jdbc:h2:file:D:/Tomcats/tacdb/migrate/talend_administrator;MV_STORE=FALSE;AUTO_SERVER=TRUE;lock_timeout=15000;DEFAULT_LOCK_TIMEOUT=15000;LOCK_MODE=0" 
    -user tisadmin -password tisadmin -script tac_backup.zip -options compression zip
  3. 使用 RunScript 工具将备份恢复到新的数据库:
    // use the h2-2.1.210.jar to restore the backup file: tac_backup.zip to new db: talend_administrator_new
    java -cp .\h2-2.1.210.jar org.h2.tools.RunScript -url 
    "jdbc:h2:file:D:/Tomcats/tacdb/migrate/talend_administrator_new;AUTO_SERVER=TRUE;lock_timeout=15000;DEFAULT_LOCK_TIMEOUT=15000;LOCK_MODE=0;MODE=LEGACY" 
    -user tisadmin -password tisadmin -script tac_backup.zip -options compression zip
  4. 将文件 talend_administrator_new.mv.db 更名为 talend_administrator.mv.dbTalend Administration Center 将使用这个与 2.1.210 驱动兼容的新文件。
    同时还要用正确的 JDBC URL 更新 <ApplicationPath>/WEB-INF/classes/configuration.properties 文件:
    jdbc:h2:{0}/WEB-INF/database/talend_administrator;AUTO_SERVER=TRUE;lock_timeout=15000;DEFAULT_LOCK_TIMEOUT=15000;LOCK_MODE=0;MODE=LEGACY
    关于如何升级、备份及恢复 H2 数据库的更多信息,请参见 https://h2database.com/html/tutorial.html#upgrade_backup_restore

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!