将pentaho资料库迁移到oracle数据库

浏览: 2542

默认情况下是使用postgresql数据库作为pentaho的资料库。

迁移步骤:

  • 将oracle JDBC相关驱动$Oracle_home/jdbc/lib下jar文件拷贝到..\tomcat\webapps\pentaho\WEB-INF\lib或..\tomcat\common\lib目录,供pentaho BI服务器访问oracle 数据库使用。

    另外也需要将oracle JDBC驱动拷贝到administration-console\jdbc目录,否则用户不能正常使用pentaho管理控制台。

    为防止启动pentaho管理控制台时报错:

    java.lang.ClassNotFoundException: oracle.dms.console.DMSConsole

    还需要从oracle服务器上找到dms.jar拷贝到administration-console\jdbc目录下。


  • 初始化Oracle 10g数据库。依次执行下面的sql包,在执行sql包前先创建两个用户,quartz/password,用于存储quartz相关信息,另一个用户hibuser/password用户存储pentaho bi服务本身资料库。Sql包说明:
    • Create_repository_Ora.sql,用于创建pentaho_tablespace表空间、新增hibuser/password用户,以及datasource 表。
    • Create_quartz_ora.sql,创建pentaho_user/password用户,quartz数据库、quartz表等。


  • 修改context.xml中配置数据库连接的信息。这个文件位于\biserver-ce\tomcat\webapps\pentaho\META-INF位置。修改该文件中的数据库连接相关信息。

    修改Resource name,Docbase, username,password,driverClassName,和 url参数,同时将validationQuery 改为”select 1 from dual”

    源文件:



           

    factory=”org.apache.commons.dbcp.BasicDataSourceFactory” maxActive=”20″ maxIdle=”5″

                    maxWait=”10000″ username=”hibuser” password=”password”

    driverClassName=”org.postgresql.Driver” url=”jdbc:postgresql://localhost:5432/hibernate”

    validationQuery=”select 1″ />


           

    factory=”org.apache.commons.dbcp.BasicDataSourceFactory” maxActive=”20″ maxIdle=”5″

                    maxWait=”10000″ username=”pentaho_user” password=”password”

    driverClassName=”org.postgresql.Driver” url=”jdbc:postgresql://localhost:5432/quartz”

    validationQuery=”select 1″/>



    改为:

           

    factory=”org.apache.commons.dbcp.BasicDataSourceFactory” maxActive=”20″ maxIdle=”5″

                    maxWait=”10000″ username=”hibuser” password=”password”

    driverClassName=”oracle.jdbc.driver.OracleDriver” url=”jdbc:oracle:thin:@use-pc:1521:utf8″

                    validationQuery=”select 1 from dual” />


           

    factory=”org.apache.commons.dbcp.BasicDataSourceFactory” maxActive=”20″ maxIdle=”5″

                    maxWait=”10000″ username=”quartz” password=”password”

    driverClassName=”oracle.jdbc.driver.OracleDriver” url=”jdbc:oracle:thin:@use-pc:1521:utf8″

                    validationQuery=”select 1 from dual”/>


  • 打开biserver-ce\pentaho-solutions\system\hibernate中的hibernate-settings.xml配置文件,并启用oracle10g.hibernate.cfg.xml配置文件,配置修改如下。

    system/hibernate/oracle10g.hibernate.cfg.xml


  • 调整oracle10g.hibernate.cfg.xml文件,主要是连接数据库的相关信息。
  • 修改applicationContext-spring-security-hibernate.properties配置文件,它位于biserver-ce\pentaho-solutions\system。下面是配置修改。

    jdbc.driver=oracle.jdbc.driver.OracleDriver

    jdbc.url=jdbc:oracle:thin:@use-pc:1521:utf8

    jdbc.username=hibuser

    jdbc.password=password

    hibernate.dialect=org.hibernate.dialect.Oracle10gDialect


  • 修改pentahosolutions/system下的applicationContextspringsecurityjdbc.xml文件

    修改driverclassname和url(option:用户名和密码)。


  • 修改quartz.properties,位于biserver-ce\pentaho-solutions\system\quartz目录。当使用oracle存储quartz的各种信息时,需要启动如下实现类,查找org.quartz.jobStore.driverDelegateClass,从默认的org.quartz.impl.jdbcjobstore.StdJDBCDelegate被替换成OracleDelegate,即修改如下:

    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate


  • 删除tomcat/conf/Catalina/localhost/pentaho.xml,否则可能报错(Failed to obtain DB connection from data source ‘myDS’: java.sql.SQLException: Could not retrieve datasource via JNDI url ‘java:comp/env/jdbc/Quartz’)。

    该文件下次启动会重新自动生成


  • 审计的SQL语句也需要改动,修改biserver-ee/pentaho-solutions/system下的audit_sql.xml,使之符合Oracle的SQL语法,如下:

            INSERT INTO PRO_AUDIT (AUDIT_ID, JOB_ID, INST_ID, OBJ_ID, OBJ_TYPE, ACTOR,MESSAGE_TYPE, MESSAGE_NAME, MESSAGE_TEXT_VALUE, MESSAGE_NUM_

    VALUE, DURATION,AUDIT_TIME) values (HIBERNATE_SEQUENCE.NEXTVAL,?,?,?,?,?,?,?,?,?,?,?)

    (option:修改biserver-ee/pentaho-solutions/system/dialects/oracle10g下的applicationContext-spring-security-hibernate.properties,使之与Oracle环境相符)


  • 可选地,用户修改start_hypersonic.bat中的相关信息。
推荐 0
本文由 newkoa 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册