BIEE 11g catalog自动复制

来源:互联网 发布:linux vim 强制保存 编辑:程序博客网 时间:2024/05/22 23:31

最近遇到一个需求,就是要让两套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"








0 0
原创粉丝点击