BIEE 11g catalog自動複製

最近遇到一個需求,就是要讓兩套BIEE的catalog保持同步,更確切的說是是將master環境的catalog及所有操作都同步到slave環境上。

如果每次都手工操作的話,會非常繁瑣。那麼有沒有辦法自動同步呢,答案是肯定的,那就是使用biee提供的sawrepaj工具。


具體操作方法如下


1、創建共享目錄

用root登錄master環境(linux)

創建共享目錄

[root@m1-bi-bieedev01 ~]# mkdir -p /u01/oracle/bishare/

修改NFS配置

[root@m1-bi-bieedev01 ~]# vi /etc/exports

添加如下內容

/u01/oracle/bishare slave環境的主機名(rw,sync)

保存並退出

然後重啓服

重啓nfs服務

[root@m1-bi-bieedev01 ~]# service nfs restart


然後root登錄slave環境掛載共享目錄

創建掛載點

# mkdir -p /u01/oracle/bishare/

#mount master主機名:/u01/oracle/bishare /u01/oracle/bishare

將共享目錄添加到/ect/fastab中,以便重啓後自動掛載

#vi/etc/fstab

添加如下內容

master主機名:/u01/oracle/bishare /u01/oracle/bishare nfs  defaults 00

有關NFS目錄及權限方面的內容請參考:

Linux NFS典型實例及權限詳解


2、修改OBIPS配置

master和slave環境的instanceconfig.xml都要修改,在Catalog標籤內添加如下內容:

 <Replication>
    <Enabled>true</Enabled>
    <ReadLogRecordsSinceHoursAgo>120</ReadLogRecordsSinceHoursAgo>
    <RecordsInFileLimit>4000</RecordsInFileLimit>
  </Replication>

啓用了上述配置之後,所有對catalog的操作(新建、修改、刪除)都會生成相應的日誌文件,日誌文件分爲兩類,一類爲change_log,一類叫playback_log。

從名稱可以看出,一個是用於記錄修改,一個是用於在下游目標環境重新執行對應的操作。

日誌路徑位於:catalog目錄下的replication文件夾下 

具體參數的含義請參考:

Section 17.15.6, "Editing the instanceconfig.xml File for Replication"

修改之後用opmn重啓所有系統組件。

3、配置sawrepaj

sawrepaj位於$FMW/Oracle_BI1/bifoundation/web/bin/sawrepaj目錄下 ,其可以運行在任意一臺機器上(不需要一定位於master或者slave上)

只要確保其能訪問master和slave環境即可,其運行需要一個配置文件,內容如下:

<?xml version="1.0" encoding="UTF-8"?><Config>
      <General>
         <ExportDirectory>/u01/oracle/bishare</ExportDirectory>
         <LogExpiresHours>48</LogExpiresHours>
      </General>
      <Server name="MASTER" pwd="admin123" user="BISystemUser">
        <Property name="oracle.bi.presentation.sawservers" value="master主機地址:obips端口"/>
        <Property name="oracle.bi.presentation.usesoaptcptransport" value="Y"/>
      </Server>

      <Server name="SLAVE" pwd="admin123" user="BISystemUser">
      <Property name="oracle.bi.presentation.sawservers" value="slave主機地址:obips端口"/>
      <Property name="oracle.bi.presentation.usesoaptcptransport" value="Y"/>
      </Server>

      <Folderset name="all">
         <Folder>/</Folder>
      </Folderset>

      <ReplicationTask destination="SLAVE" folders="all" source="MASTER"></ReplicationTask>
</Config>

將其保存爲config.xml

注:sawrepaj是通過調用obips的ReplicationService web service來完成複製操作的,所以config.xml中的用戶必須具有ReplicationService的權限,默認情況下BISystemUser就

擁有這個權限(weblogic帳號沒有),所以可以直接使用BISystemUser。但是你也可以創建新的用戶並在“管理”-“權限管理”-“SOAP”-"Access ReplicationService Service"中授權。

有朋友會問,BISystemUser的帳號密碼我不知道啊,這個嘛 可以參考這裏:Section 3.7, "Configuring a New Trusted User (BISystemUser)"


4、執行復制

本例以slave爲例來執行sawrepaj。

注意:由於sawrepaj程序只是增量更新,所以一開始,你要自己手工把master的所有catalog複製到slave機器上並部署好。


標記需要同步的文件夾:

cd $FMW/Oracle_BI1/bifoundation/web/bin/sawrepaj
./sawrepaj.sh /C config.xml  mark all

在master環境中執行修改操作,例如刪除一個文件夾

然後在slave中執行
./sawrepaj.sh /C config.xml  run

這樣就會將master中的操作同步到slave上。

之後,我們就可以考慮在conrtab中定時來調用這個操作 實現自動複製catalog的目的。


如果我只想複製部分目錄而不全部目錄應該怎麼?可以通過修改config.xml文件或者相關命令來實現,具體請參見:

Section 17.15, "Replicating Oracle BI Presentation Catalogs"








發佈了112 篇原創文章 · 獲贊 18 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章