type
Post
status
Published
date
Mar 31, 2021 11:11
slug
summary
以 Pentaho 8.3 为例,演示如何将默认的 PostgreSQL 资源库迁移到 MySQL:包含脚本导入、驱动放置,以及 security、hibernate、quartz、JNDI、Tomcat 与 Jackrabbit 等关键配置文件的修改清单与核对表。
tags
Pentaho
PostgreSQL
Big Data
category
Data Engineering
icon
password
wordCount
1205
前言
Pentaho 默认把资源库放在 PostgreSQL 里。
包括 KTR、报表等内容。
它们会以加密的形式存放在数据库中。
如果你想把资源库迁移到别的数据库,最常见的一步就是先把它迁到 MySQL。
本文用 Pentaho 8.3 举例。
目标:把 Pentaho 默认的 PostgreSQL 资源库迁移到 MySQL,并完成必要的配置改动。
0. 准备环境
- MySQL:5.7.17(或 MariaDB:10.3.13)
- 对应的 SQL 脚本目录:
pentaho-server/data/mysql5
下面脚本会创建数据库与用户。
默认密码通常是
password。如果你要改密码,只要在后续配置文件中把对应的用户名与密码一起改掉即可。
1. 导入数据库脚本
目录:
pentaho-server/data/mysql5create_jcr_mysql.sql- 创建 jackrabbit 相关库。
- 负责存储用户相关、内容存储等。
create_quartz_mysql.sql- 创建 Quartz 计划任务器所需的库。
create_repository_mysql.sql- 创建 hibernate 相关库。
- 用于存储用户授权认证、solution repository 以及数据源配置。
运行完脚本后,你通常会得到 3 个数据库:hibernate、quartz、jackrabbit。
以及对应用户:hibuser、pentaho_user、jcr_user(具体以脚本为准)。
2. 导入 MySQL 驱动包
把 MySQL JDBC 驱动复制到 Pentaho webapp 的 lib 目录下:
3. 修改配置文件(按顺序)
配置文件目录:
pentaho-server/pentaho-solutions/system/3.1 applicationContext-spring-security-jdbc.properties
主要是 datasource 配置。
3.2 applicationContext-spring-security-hibernate.properties
主要是 JDBC + Hibernate 方言。
3.3 hibernate-settings.xml
指定数据库类型配置文件(从 HSQLDB 切到 MySQL)。
3.4 quartz.properties
Quartz 的 driver delegate 指定。
3.5 simple-jndi.properties
JNDI 数据源配置。
3.6 webapps-INF.xml
Tomcat Context 下的 Resource 配置示例。
3.7 tomcat-INF.xml
如果你之前启用了 Pentaho 默认的 HSQLDB 启动器,迁移后需要禁用它。
把以下两段内容注释掉:
3.8 jackrabbit.xml
把 Jackrabbit 的 FileSystem、DataStore、PersistenceManager、Cluster Journal 等配置切到 MySQL。
下面给出常见片段(按你的实际库名、用户、密码调整):
一张表看懂你要改哪些文件
文件 | 你要改什么 | 关键点 |
datasource 改成 MySQL | validation query 用 SELECT 1 | |
hibernate JDBC + 方言 | MySQL 方言:MySQL5InnoDBDialect | |
hibernate-settings.xml | 指定 mysql5.hibernate.cfg.xml | 从 HSQLDB 切到 MySQL |
driverDelegateClass | 通常用 StdJDBCDelegate | |
JNDI 数据源 | 库名、账号、密码要一致 | |
webapps-INF.xml | Tomcat Resource | jdbc/Hibernate、jdbc/Quartz |
tomcat-INF.xml | 禁用 HSQLDB 启动器 | 否则可能启动时还去拉 HSQLDB |
jackrabbit.xml | Jackrabbit 存储切到 MySQL | FileSystem、DataStore、PM、Journal |
验证建议:修改完成后启动 Pentaho。
如果能正常登录,并且能访问 solution repository、计划任务与内容存储,基本就迁移成功了。
