Pentaho6.1资源库MySQL迁移
一、软件环境
- 操作系统:Windows10 64位
- Pentaho版本: biserver-ce-6.1.0.1-196
- MySQL版本:5.5.15 MySQL Community Server (GPL)
- JDK版本:Java 1.7.0_80
二、执行官方sql脚本文件
1、 sql脚本目录
2、执行脚本
3、 运行结果
三、相关配置项的修改
1、修改quartz的资源库配置
- 文件位置:\biserver-ce\pentaho-solutions\system\quartz
- 修改项:org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
-
#org.quartz.jobStore.misfireThreshold = 60000
-
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
-
#org.quartz.jobStore.useProperties = false
-
#org.quartz.jobStore.dataSource = myDS
-
#org.quartz.jobStore.tablePrefix = QRTZ5_
-
#org.quartz.jobStore.isClustered = false
-
# Job Store
-
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
-
#_replace_jobstore_properties
-
org.quartz.jobStore.misfireThreshold = 60000
-
#原始的配置
-
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
-
#用户做的修改
-
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
-
org.quartz.jobStore.useProperties = false
-
org.quartz.jobStore.dataSource = myDS
-
org.quartz.jobStore.tablePrefix = QRTZ5_
-
org.quartz.jobStore.isClustered = false
2、修改hibernate,设置为mysql
- 修改文件hibernate-settings.xml
文件目录: \biserver-ce\pentaho-solutions\system\hibernate
修改内容:
-
<?xml version='1.0' encoding='utf-8'?>
-
<settings>
-
<!--
-
* This setting allows the deployment to specify where to find the
-
* database-specific hibernate configuration. The samples supplied
-
* include the following:
-
*
-
* system/hibernate/hsql.hibernate.cfg.xml
-
* system/hibernate/mysql5.hibernate.cfg.xml
-
* system/hibernate/postgresql.hibernate.cfg.xml
-
* system/hibernate/oracle10g.hibernate.cfg.xml
-
*
-
-->
-
<!-- 原始设置
-
<config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file>
-
-->
-
<!-- 修改为mysql的配置 -->
-
<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
-
<!--
-
*
-
* managed should be set to true if running the BI Platform
-
* in a managed environment (like JBoss, Orion, etc). In this configuration,
-
* you should specify another location for the hibernate.cfg.xml (see below)
-
* instead of simply using the default one provided. This setting essentially
-
* tells the HibernateUtil class to use JNDI to locate the factory class for
-
* getting sessions. This allows the platform to use Hibernate across boundaries
-
* in message beans (for example).
-
*
-
<managed>false</managed>
-
-->
-
<managed>false</managed>
-
</settings>
- 修改文件applicationContext-spring-security-jdbc.xml
文件目录:\biserver-ce\pentaho-solutions\system
修改内容:
-
<!-- 原始配置
-
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
-
<property name="driverClassName" value="${datasource.driver.classname}" />
-
<property name="url" value="${datasource.url}" />
-
<property name="username" value="${datasource.username}" />
-
<property name="password" value="${datasource.password}" />
-
<!-- the following are optional -->
-
<!--
-
<property name="validationQuery" value="${datasource.validation.query}" />
-
<property name="maxWait" value="${datasource.pool.max.wait}" />
-
<property name="maxActive" value="${datasource.pool.max.active}" />
-
<property name="maxIdle" value="${datasource.max.idle}" />
-
<property name="minIdle" value="${datasource.min.idle}" />
-
</bean>
-
-->
-
<!-- 用户定义的mysql配置 -->
-
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
-
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
-
<property name="url" value="jdbc:mysql://localhost:3306/hibernate" />
-
<property name="username" value="hibuser" />
-
<property name="password" value="password" />
-
<!-- 可选项 -->
-
<!--
-
<property name="validationQuery" value="${datasource.validation.query}" />
-
<property name="maxWait" value="${datasource.pool.max.wait}" />
-
<property name="maxActive" value="${datasource.pool.max.active}" />
-
<property name="maxIdle" value="${datasource.max.idle}" />
-
<property name="minIdle" value="${datasource.min.idle}" />
-
-->
-
</bean>
- 修改文件applicationContext-spring-security-hibernate.properties
文件目录:\biserver-ce\pentaho-solutions\system
修改内容:
-
# 原始配置
-
#jdbc.driver=org.hsqldb.jdbcDriver
-
#jdbc.url=jdbc:hsqldb:hsql://localhost:9001/hibernate
-
#jdbc.username=hibuser
-
#jdbc.password=password
-
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
-
# 用户定义的mysql配置
-
jdbc.driver=com.mysql.jdbc.Driver
-
jdbc.url=jdbc:mysql://localhost:3306/hibernate
-
jdbc.username=hibuser
-
jdbc.password=password
-
hibernate.dialect=org.hibernate.dialect.MySQLDialect
3、更换Audit log file为mysql配置
复制文件: biserver-ce /pentaho-solutions/system/dialects/mysql5/audit_sql.xml
覆盖 biserver-ce /pentaho-solutions/system/ audit_sql.xml
4、更改jackrabbit内容仓库信息配置为mysql
- 修改文件:\biserver-ce\pentaho-solutions\system\jackrabbit\repository.xml
a. Repository标签下的FileSystem,注释或删除掉默认配置项,文件所在行数为80行
将文档中的此处代码
-
<!-- 原始的配置 -->
-
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-
<param name="path" value="${rep.home}/repository"/>
-
</FileSystem>
修改为:
-
<!-- 用户定义的mysql的配置 -->
-
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
-
<param name="driver" value="com.mysql.jdbc.Driver"/>
-
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
-
<param name="user" value="jcr_user"/>
-
<param name="password" value="password"/>
-
<param name="schema" value="mysql"/>
-
<param name="schemaObjectPrefix" value="fs_repos_"/>
-
</FileSystem>
b. DataStore标签注释或删除掉默认配置项,文件所在行数为163行
将文档中的此处代码
-
<!-- 原始的配置 -->
-
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"/>
修改为:
-
<!-- 用户定义的mysql的配置 -->
-
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
-
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
-
<param name="user" value="jcr_user"/>
-
<param name="password" value="password"/>
-
<param name="databaseType" value="mysql"/>
-
<param name="driver" value="com.mysql.jdbc.Driver"/>
-
<param name="minRecordLength" value="1024"/>
-
<param name="maxConnections" value="3"/>
-
<param name="copyWhenReading" value="true"/>
-
<param name="tablePrefix" value=""/>
-
<param name="schemaObjectPrefix" value="ds_repos_"/>
-
</DataStore>
c. Workspaces中的filesystem配置项,注释或删除掉默认配置项,文件所在行数为285行
将文档中的此处代码
-
<!-- 原始的配置 -->
-
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-
<param name="path" value="${wsp.home}"/>
-
</FileSystem>
修改为:
-
<!-- 用户定义的mysql的配置 -->
-
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
-
<param name="driver" value="com.mysql.jdbc.Driver"/>
-
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
-
<param name="user" value="jcr_user"/>
-
<param name="password" value="password"/>
-
<param name="schema" value="mysql"/>
-
<param name="schemaObjectPrefix" value="fs_ws_"/>
-
</FileSystem>
d. PersistenceManager 修改为 mysql 配置,(文中第一部分 PersistenceManager )
注释 掉默认配置项标签( 文本内容第 353 行)
将文档中此处代码
-
<!-- 原始的配置 -->
-
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
-
<param name="url" value="jdbc:h2:${wsp.home}/db"/>
-
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
-
</PersistenceManager>
修改为:
-
<!-- 用户定义的mysql的配置 -->
-
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
-
<param name="driver" value="com.mysql.jdbc.Driver"/>
-
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
-
<param name="user" value="jcr_user" />
-
<param name="password" value="password" />
-
<param name="schema" value="mysql"/>
-
<param name="schemaObjectPrefix" value="${wsp.name}_pm_ws_"/>
-
</PersistenceManager>
e. Versioning 修改为 mysql 配置项,Versioning filesystem 默认配置项( 文本内容第 457 行)
将文档中此处代码
-
<!-- 原始的配置 -->
-
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
-
<param name="path" value="${rep.home}/version" />
-
</FileSystem>
修改为:
-
<!-- 用户定义的mysql的配置 -->
-
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
-
<param name="driver" value="com.mysql.jdbc.Driver"/>
-
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
-
<param name="user" value="jcr_user"/>
-
<param name="password" value="password"/>
-
<param name="schema" value="mysql"/>
-
<param name="schemaObjectPrefix" value="fs_ver_"/>
-
</FileSystem>
f. PersistenceManager,PersistenceManager (文中第二部分 PersistenceManager )
注释 掉默认配置项标签( 文本内容第 526 行)
将文档中此处代码
-
<!-- 原始的配置 -->
-
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
-
<param name="url" value="jdbc:h2:${rep.home}/version/db"/>
-
<param name="schemaObjectPrefix" value="version_"/>
-
</PersistenceManager>
修改为:
-
<!-- 用户定义的mysql的配置 -->
-
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
-
<param name="driver" value="com.mysql.jdbc.Driver"/>
-
<param name="url" value="jdbc:mysql://localhost:3306/jackrabbit"/>
-
<param name="user" value="jcr_user" />
-
<param name="password" value="password" />
-
<param name="schema" value="mysql"/>
-
<param name="schemaObjectPrefix" value="pm_ver_"/>
-
</PersistenceManager>
5、修改默认的context
- 文件目录: biserver-ce/tomcat/webapps/pentaho/META-INF/context.xml
- 修改的内容:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<!-- 原始的配置
-
<Context path="/pentaho" docbase="webapps/pentaho/">
-
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
-
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
-
maxWaitMillis="10000" username="hibuser" password="password"
-
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/hibernate"
-
validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES" />
-
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
-
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
-
maxWaitMillis="10000" username="pentaho_user" password="password"
-
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost/quartz"
-
validationQuery="select count(*) from INFORMATION_SCHEMA.SYSTEM_SEQUENCES"/>
-
</Context>
-
-->
-
<!-- 用户定义的mysql的配置 -->
-
<Context path="/pentaho" docbase="webapps/pentaho/">
-
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
-
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxTotal="20" maxIdle="5"
-
maxWaitMillis="10000" username="hibuser" password="password"
-
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
-
validationQuery="select 1" />
-
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
-
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
-
maxWait="10000" username="pentaho_user" password="password"
-
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
-
validationQuery="select 1 "/>
-
</Context>
6、停止掉默认的hsqlDB
- 文件目录:\biserver-ce\tomcat\webapps\pentaho\WEB-INF\web.xml
- 修改的内容:
7、检查mysql的jar包的存在
检查目录 biserver-ce\tomcat\lib 存不存在 mysql 的jar 包, 不存在或者版本太低的 jar 包,
根据自己所需更新, 本文采用的是 mysql-connector-java-5.1.38-bin.jar
8、Pentaho默认的SampeData.sql数据的下载(可选,非必要)
四、迁移成功标志
五、迁移官方文档
详情请查看:http://help.pentaho.com/Documentation/6.1/0F0/0P0/030/020
转载:https://blog.csdn.net/u010735147/article/details/81745242