门户数据库迁移配置

发送反馈


在实际的生产环境中,随着门户数据量和并发量的增加,iPortal 中默认存储门户数据的 SQLite 数据库在性能上可能无法满足实际的业务需求。

基于此,SuperMap iPortal 10i(2020) SP1 及以上版本内置了一个门户数据库迁移工具(migration.bat/sh),帮助用户实现门户数据(地图、服务、场景、数据、项目、账户等基本信息)的快速迁移。门户数据库迁移工具位于 %SuperMap iPortal_HOME%\support\migration 目录下,通过该门户数据库迁移工具,您可以在 SQLite、MySQL、Oracle 和 PostgreSQL 四种不同数据库间进行门户数据的任意迁移操作。如果您需要实现跨版本的门户数据库迁移,建议您先将旧版本 iPortal 升级后,再进行门户数据库迁移。

注:该数据库迁移工具支持的产品版本为 SuperMap iPortal 9D(2019) SP2 及以上版本,但 SuperMap iPortal 9D(2019) SP2- SuperMap iPortal 10i(2020) 版本的产品包中未内置数据库迁移工具。因此,如果您的 iPortal 版本在此区间内且需要进行门户数据库迁移,您可以联系 SuperMap iPortal 团队,获取数据库迁移工具,或将新版 iPortal 包中的数据库迁移工具及位于 %SuperMap iPortal_HOME%\webapps\iportal\WEB-INF\lib 路径下的 jar 包(iportal-database-migration-tool-***.jar) 复制到您产品包的对应位置,在此基础上进行门户数据库的迁移。

迁移门户数据

在进行门户数据迁移之前,您需要先完成数据库迁移配置,配置信息在安装目录(%SuperMap iPortal_HOME%\support\migration)下的 config.properties 配置文件中。其中,由 SQLite 数据库向 MySQL数据库、Oracle 数据库和 PostgreSQL 数据库迁移的配置范例已经写好,您只需打开注释,并填入实际的数据库连接池的配置信息即可。配置完成后,停止 iPortal 服务,启动门户数据迁移脚本(migration.bat/sh),即可进行门户数据的迁移。

SQLite 数据库迁移配置

config.properties 配置文件中提供了由 SQLite 数据库作为源数据库的配置范例,如果您希望将 SQLite 数据库作为迁移的目标数据库,只需将 SQLite 数据库配置变量的前缀名修改为 "target" 即可。

配置示例如下:

source.dbType=SQLITE

source.username=username

source.password=password

source.jdbcUrl=jdbc:sqlite:../../webapps/iportal/WEB-INF/iportaldata/iportal.db

source.maxPoolSize=1

source.minPoolSize=1

source.maxIdleTime=3000

source.maxWait=300000

source.initialPoolSize=1

source.skipTables=proxyserviceaccessrecords

source.step=1000

MySQL 数据库迁移配置

config.properties 配置文件中提供了 MySQL 数据库作为目标数据库的配置范例,如果您希望将 MySQL 数据库作为迁移的源数据库,只需将 MySQL 数据库配置变量的前缀名修改为 "source" 即可。

配置示例如下:

target.dbType=MYSQL

target.username=supermap

target.password=supermap

target.jdbcUrl=jdbc:mysql://127.0.0.1:3306/iportal?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true

target.maxPoolSize=30

target.minPoolSize=5

target.maxIdleTime=3000

target.maxWait=300000

target.initialPoolSize=1

Oracle 数据库迁移配置

config.properties 配置文件中提供了 Oracle 数据库作为目标数据库的配置范例,如果您希望将 Oracle 数据库作为迁移的源数据库,只需将 Oracle 数据库配置变量的前缀名修改为 "source" 即可。

配置示例如下:

target.dbType=ORACLE

target.username=supermap

target.password=supermap

target.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl

target.maxPoolSize=30

target.minPoolSize=5

target.maxIdleTime=3000

target.maxWait=300000

target.initialPoolSize=1

注意:如果在 Oracle 数据库迁移过程中报错“缺少 Oracle 驱动包”,您需要将 Oracle 的 JDBC 驱动包添加到 iPortal 中,具体请参见: 添加_JDBC_驱动包

PostgreSQL 数据库迁移配置

config.properties 配置文件中提供了 PostgreSQL 数据库作为目标数据库的配置范例,如果您希望将 PostgreSQL 数据库作为迁移的源数据库,只需将 PostgreSQL 数据库配置变量的前缀名修改为 "source" 即可。

配置示例如下:

target.dbType=POSTGRESQL

target.username=supermap

target.password=supermap

target.jdbcUrl=jdbc:postgresql://127.0.0.1:5432/iportal?useUnicode=true&characterEncoding=UTF-8

target.maxPoolSize=30

target.minPoolSize=5

target.maxIdleTime=3000

target.maxWait=300000

target.initialPoolSize=1

切换门户数据库

在完成门户数据的迁移后,您还需要修改门户数据的存储配置,将门户数据库切换至迁移后的数据库。门户数据库的配置信息在安装目录(%SuperMap iPortal_HOME%\webapps\iportal\WEB-INF)下的 iportal.xml 配置文件中,默认使用内置的 SQLite 数据库存储门户数据,您也可以根据需要切换至 MySQL 数据库Oracle 数据库PostgreSQL 数据库

此外,您还需在 iPortal.xml 文件中,将 <searchModuleConfig> 节点下的 <reindexAllResources>节点的值设为 true,重建全局搜索的索引,具体配置如下:

<IportalConfig>

  ...

  <modulesConfig>  

       ...

      <reindexAllResources>true</reindexAllResources>  

  </modulesConfig>  

<IportalConfig>

 

完成以上配置后,重启 iPortal 即可生效。