这个问题,经常有网友问到,究其原因主要还是开发机器不足,而又想实现两套开发环境。
注:在生产环境中,这种方法是不推荐的!
注:本文以linux服务器为例进行讲解,windows的请自行转换
我们都知道,一个BI Server是可以挂载多个RPD的,但是默认情况下,OBPS(OracleBIPresentationServices)只会访问默认的那个RPD。
那怎么样才能访问非默认的RPD呢?我们需要新建一个OBPS实例,并在数据源当中指定要使用的RPD即可;这还没有完,你需要在部署一个
analytics.ear这么一个web插件,并让他访问这个新的OBPS实例才行。
实现目标如下:
1个OBIS(BI Server) 挂载多个RPD
2个OBPS(OracleBIPresentationServices)
2个web访问入口,从而开发不同的catalog
例如:http://www.xxx.com:9704/analytics http://www.xxx.com:9704/analytics2
修改NQSConfig.INI找到如下部分:
[REPOSITORY] Star = adhoc09_20130205_BI0004.rpd, DEFAULT; # This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control
可以看到adhoc09_20130205_BI0004.rpd这个rpd为默认的rpd,并且是由em进行管理的。
修改此处的配置,挂载第二个rpd(名字为adhoc10.rpd),如下:
[REPOSITORY] Star = adhoc09_20130205_BI0004.rpd, DEFAULT; # This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control ADHOC = adhoc10.rpd;
注:这个rpd需要手工上传到服务器对应的目录中,如:
$FMW_HOME/instances/instance1/bifoundation/OracleBIServerComponent/coreapplication_obis1/repository
保存退出。
由于11g引入了RPD密码,所以我们要告诉BI Server该RPD的密码,怎么告诉呢?
打开EM,展开左边的“Weblogic域”节点,右击“bifoundation ”,在弹出的菜单中选择“安全性”-“身份证明”,在出来的页面中单击“创建密钥”,如下图所示:
注意:
1、映射必须为oracle.bi.enterprise
2、密钥必须为repository.rpd名称
3、类型为口令
4、用户名为tempvalue
5、口令为rpd的密码
相关信息填写完毕之后点击“确定”保存即可,最后重启BI Server完成多RPD的挂载(通过OPMN来重启)。
到这里,有的朋友会问,那么怎么在Admin tools里访问这个新的RPD呢?
很简单,只需新建一个ODBC连接,并将默认的资料库指定为新的RPD即可,如下图所示:
注:ADHOC为NQSConfig.INI中自定义的键值,并不是rpd的文件名。
ADHOC = adhoc10.rpd;
11g提供了BI组件垂直扩展(在同一台机器上,多进程)的功能,我们可以利用这个功能来新建一个新的OBPS实例。
打开EM,“Business Intelligence”-“coreapplication”-“容量管理”-“可扩展性”,然后点击“锁定和编辑配置”按钮,将系统组件中的
Presentation Server实例个数修改为2,如下图所示:
然后点击“应用”,“激活更改”即可。
这一步操作完了之后,你会发现
$FMW_HOME/instances/instance1/config/OracleBIPresentationServicesComponent目录下,多了一个coreapplication_obips2目录,该目录下的内容是从coreapplication_obips1中复制过来的。这些配置文件就是我们刚才新建的OBPS实例的配置文件。
为了让新建的这个OBPS实例访问新的RPD,我们需要在创建一个数据源,打开
$FMW_HOME/instances/instance1/bifoundation/OracleBIApplication/coreapplication/setup目录下的odbc.ini
找到AnalyticsWeb部分,将其复制一份,然后明确指定Repository参数,并命名为AnalyticsWeb1,最终如下所示:
[AnalyticsWeb] Driver = /u01/app/orabi/product/fmw/Oracle_BI1/bifoundation/server/bin/libnqsodbc64.so Description = Oracle BI Server Repository = Catalog = UID = PWD = ForwardOnlyCursor = SelectPhysical = IsClusteredDSN = Yes Regional = Yes PrimaryCCSPort = 9706 SSL = No PrimaryCCS = bb-xxxx.com [AnalyticsWeb1] Driver = /u01/app/orabi/product/fmw/Oracle_BI1/bifoundation/server/bin/libnqsodbc64.so Description = Oracle BI Server Repository = ADHOC Catalog = UID = PWD = ForwardOnlyCursor = SelectPhysical = IsClusteredDSN = Yes Regional = Yes PrimaryCCSPort = 9706 SSL = No PrimaryCCS = bb-xxxx.com
OK,接下来让我们修改instanceconfig.xml,以便让新建的OBPS实例使用AnalyticsWeb1数据源
进入$FMW_HOME/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips2目录
打开instanceconfig.xml,修改DSN为
<DSN>AnalyticsWeb1</DSN>
同时还修改一下CatalogPath,以让其指向不同的路径。
最后重启一下OPMN,你会发现,此时已经有两个OBPS实例了,第二个实例的端口可以通过如下方法查看:
打开EM,“Business Intelligence”-“coreapplication”-“可用性”-“进程”,
可以看到 我们的新端口为8700,请记住这个端口,在第三步中我们需要用到它。
从服务器上将analytics.ear下载到本地,地址为:$FMW_HOME/Oracle_BI1/bifoundation/jee
将其解压,得到如下内容:
打开META-INF下的application.xml,修改两处context-root为如下内容:
这步的作用是为了实现在同一个Mangered Server上部署两个analtyics应用,并通过不通的路径访问
接来下我们需要修改这两个应用访问OBPS的端口,让它们访问新的8700端口
分别解压analytics.war和analytics-ws.war,将两者各自WEB-INF目录下的web.xml中的oracle.bi.presentation.sawserver.Port端口由默认的9710改为8700
- <init-param> <param-name>oracle.bi.presentation.sawserver.Port</param-name> <param-value>8700</param-value> </init-param>
最后在重新打包生成analytics2.ear,上传到$FMW_HOME/Oracle_BI1/bifoundation/jee目录中。
注意:请使用jdk自带的jar命令打包,语法为 jar -cf analytics.ear 文件或者目录名。同时打包的时候一定要保证和之前的目录结构一模一样!
接下来,我们开始部署新的analytics2.ear。
打开console,点击左侧的“bifoundation”-“部署”,“锁定并编辑”,“安装”
选择我们上传的analytics2.ear将其部署即可,最后记得将其启动。
至此,所有工作都做完了,让我们来测试一下,我们使用http://www.xxx.com:9704/analytics2来访问新的“环境”,顺利登录后
点击“管理”可以看到当前OBPS使用的catalog路径和数据源。
OK,大功告成·!