將pentaho資料庫遷移到oracle資料庫

terryisme發表於2014-03-07

將pentaho的資料庫遷移到oracle資料庫

預設情況下是使用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中的相關資訊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/93029/viewspace-1103090/,如需轉載,請註明出處,否則將追究法律責任。

相關文章