Cheney Shue

导航

统计
 

这里使用四台服务器bisvr01, bisvr02, bisvr03, bisvr04组成obiee + oas集群。四台服务器使用Windows Server系统,且另有一台服务器作为域控制器,服务器都加入了域。

1.     OAS主要部件包括HTTP Server(Apache)Oracle Container for JavaApache通过oc4j module实现负载平衡,将请求发送到多个oc4j。多个HTTP Server上可以使用外部硬件负载平衡设备。


安装OAS时,选择高级安装,一路Next。注意在选择安装项目时,要部署Presentation Services,必须要安装OHS,等安装好OBIEE后如果不需要使用OHS,停止OHS即可。安装过程中还需要指定OC4J的名称,默认名称是homeOBIEE安装时需要名为homeOC4J实例。

建立集群最简便的方法是使用动态Multicast,选中“将此OC4J实例配置为Oracle Application Server集群拓扑的一部分”,然后指定Discovery地址,所有的OAS服务器均需要同样的地址和端口。


为了方便管理,建议在一个实例上安装EM,可以在安装OAS安装时,选择安装Application Server Control

安装完成后,可以在Application Server Control中看到所有加入集群的实例。


另外,所有的OC4J实例须在同一个组中,默认情况下,home实例加入default_group

前面说过Apache通过oc4j module实现负载平衡。使用文本编辑器打开<OAS目录>\Apache\Apache\conf\mod_oc4j.conf,可以改变默认的负载平衡的方法,在其中加入:

LoadModule oc4j_module modules/ApacheModuleOc4j.dll

<IfModule mod_oc4j.c>

Oc4jSelectMethod roundrobin  //负载平衡的方法,推荐使用roundrobin:weighted

</IfModule>

 

2.     完成上述配置后,OHS接受http请求后,通过负载平衡,将请求导向其中某个OC4J实例。通过应用级集群,多个OC4J实例间可以交换会话信息。


要配置应用集群,用文本编辑器打开<OAS目录>\j2ee\home\config\application.xml,加入:

<orion-application … >

      …………

<cluster allow-colocation="false" write-quota="3">  // write-quota表示集群内其它实例的数量,比如有4个实例,此值为3

              <replication-policy trigger="onRequestEnd" scope="allAttributes" />  //replication方式

              <protocol>

<multicast ip="230.230.0.1" port="45566" bind-addr="192.168.1.1" />  //replicationIP和端口,所有实例使用相同值。bind-addr是绑定的IP地址,如果服务器上有多个网卡,每个网卡使用不同的IP,选择一个作为绑带IP

              </protocol>

             </cluster>

      …………

</orion-application>

修改application.xml后,部署在OC4J中所有的应用程序都加入到集群中。当然也可以只选择单个应用程序加入集群。

另外,Apache的默认配置使用了机器名做链接。比如你的OAS服务器IP192.168.1.1,加入了bidw.MyCompany.com的域,那么通过IP访问http://192.168.1.1/em会自动转为http:// ServerName.bidw.MyCompany.com/em,没有使用内部DNS的机器访问OAS会产生麻烦。所以用文本编辑器打开<OAS目录>\Apache\Apache\conf\httpd.conf,查找“ServerName”,将“ServerName”后的值改成服务器IP地址。

至此,OAS的配置已经完成。

3.     然后分别在每台服务器上安装OBIEE,安装时选择高级安装。如果已正确配置好应用集群,可看到部署到OAS的应用程序已启用集群,如下图中的analytics


要检验apache的负载平衡是否生效,可访问em,正常境况下一个集群中只有一个em启用。如图中,bisvr01上的em是启用的,如果通过http://bisvr03/em/也能访问成果,说明bisvr03上的OHS将请求导向正确的OC4J实例。

要检验OC4J应用集群是否生效,可以在与一个实例的web应用程序通讯时,停止此OC4J实例上的应用程序。这时应用集群内其他OC4J实例会复制session信息,接替客户端请求,用户通过浏览器可以继续访问应用程序,感觉不到任何异常。

4.     接下来的步骤是要配置OBIEE集群,先停止OBIEE所有的服务。因为集群内的服务需要共享资源的权限,所以集群内相关服务的运行帐户都必须是域账户,而非本地账户。如果在安装时没有指定帐户,需要修改OBIEE服务的运行帐户。像下图中那样。


这里我图方便直接将所有的服务都使用了DWBI域的管理员账户,出于安全性,建议另建账户。

在其中一台服务器上建立一个名为OBI_Share的共享目录。确保所有服务器上的OBIEE运行帐户能访问此目录。然后在此目录下建立“Cache”、“Prst_Catalog”、“Repository”和“Sch_Script”目录。

5.     BI Server的工作是管理Repository,将其他组件的数据请求转换为数据查询,缓存查询结果。在一个集群中最多只能有16个节点,其中需要有一个主节点。

BI Server节点除了有本地缓存外,还需共享缓存存储空间,在这里,指定共享的OBI_Share\Cache目录为共享缓存空间,所有节点都需要能读写此共享目录。

BI Server节点间需要使用公用的Repository。开发人员通过Administrator Tool连接到主节点,在线修改Repository后,主BI Server将修改数据写入的共享的Repository发布目录中,其他节点读取变更,然后同步本地的Repository。这里使用的共享发布区是OBI_Share\Repository目录。确保主节点的运行帐户有读写权限,其他节点有读权限。


用文本编辑器打开OracleBI\server\Config\NQSConfig.INI,查找并修改下述内容:

# SERVER_HOSTNAME_OR_IP_ADDRESSES = "ALLNICS";  //在此行前加#

CLUSTER_PARTICIPANT = YES;

GLOBAL_CACHE_STORAGE_PATH = "\\192.168.1.1\OBI_Share\Cache" 5000 MB;  //共享缓存目录,容量可以根据需要修改

REPOSITORY_PUBLISHING_DIRECTORY = "\\192.168.1.1\OBI_Share\Repository";  //共享Repository发布目录

REQUIRE_PUBLISHING_DIRECTORY = YES;

     

集群中所有的节点必须使用同样的Repository,假设要使用文件名为paint.rpdRepository,需要将此文件复制到所有节点的OracleBI\server\Repository目录,然后修改配置,使用paint.rpd

6.     建立BI Server集群后,其他组件需要通过Cluster Controller访问BI Server集群,Cluster Controller将请求转发到集群内的节点,例如下图中Presentation Services访问BI Server集群那样。


在一个集群中,只有能有2Cluster Controller,而且不同于其他组件的Active-Active模式,Cluster Controller使用Active-Pasive模式。既在某一时刻,只激活一个Cluster Controller实例,另一个Cluster Controller实例处于待命状态。只有当主Cluster Controller出现故障或无法启动,才激活次Cluster Controller

用文本编辑器打开OracleBI\server\Config\NQClusterConfig.INI,查找并修改下述内容:

ENABLE_CONTROLLER = YES;

PRIMARY_CONTROLLER = "bisvr01";  //Cluster Controller服务器名称,注意不要使用全名

SECONDARY_CONTROLLER = "bisvr02";  //Cluster Controller服务器名称,注意不要使用全名

SERVERS = "bisvr01", "bisvr02", “bisvr03”, “bisvr04”;  //参与集群的服务器名称,用逗号隔开

MASTER_SERVER = "bisvr01";  //BI Server服务器名称


在修改主、次Cluster Controller节点的配置文件后,就可以启动Oracle BI Cluster Controller服务和每个节点的Oracle BI Server了。

7.     因为Presentation ServicesAdministrator Tool需要使用ODBC数据源连接到BI Server,所以需要修改Presentation Services节点和安装有Administrator Tool客户端的ODBC配置。如下图:

8.     Presentation Services通过Cluster Controller访问SchedulerBI Server集群,并且使用负载平衡方法与Javahost集群通讯,所有的Presentation Services实例必须使用共享的Catalog


用文本编辑器打开OracleBIData\web\config\instanceconfig.xml,查找并修改下述内容:

<ServerInstance>

…………

<CatalogPath>\\192.168.1.1\OBI_Share\Prst_Catalog</CatalogPath>  //共享Catalog目录

<Catalog>

<AccountIndexRefreshSecs>120</AccountIndexRefreshSecs>

<AccountCacheTimeoutSecs>180</AccountCacheTimeoutSecs>

<CacheTimeoutSecs>120</CacheTimeoutSecs>

<CacheCleanupSecs>600</CacheCleanupSecs>

<PrivilegeCacheTimeoutSecs>180</PrivilegeCacheTimeoutSecs>

</Catalog>

…………

<JavaHostProxy>

<Hosts>

<Host address="bisvr01" port="9810" />  //JavaHost服务器名称和端口

<Host address="bisvr02" port="9810" />  //JavaHost服务器名称和端口

</Hosts>

</JavaHostProxy>

…………

</ServerInstance>

 

9.     OBIEE安装时将Java Servlet部署到OC4Janalytics将请求转发到Presentation Services。可以使用平衡负载将请求转发到多实例集群。


用文本编辑器打开<OAS目录>\j2ee\home\applications\analytics\analytics\WEB-INF\web.xml。将下面的内容:

<init-param>

<param-name>oracle.bi.presentation.sawserver.Host</param-name>

<param-value>localhost</param-value>

</init-param>

<init-param>

<param-name>oracle.bi.presentation.sawserver.Port</param-name>

<param-value>9710</param-value>

</init-param>

替换为:

<init-param>

<param-name>oracle.bi.presentation.sawservers</param-name>

<param-value>bisvr01:9710;bisvr02:9710;bisvr03:9710;bisvr04:9710</param-value> //Presentation Services服务器名和端口

</init-param>

保存后,将web.xml复制到OracleBI\web\app\WEB-INF\,覆盖原文件。

重启OAS ProcessManager


如果BI ServerJavahostPresentationCluster ControllerOAS ProcessManager能正常启动就没问题了。至此,OBIEE主要的几个部件集群配置已完成,下图是集群环境的构架:


下一步就是SchedulerPublisherDisconnected Aanlytics的配置工作。

posted on 2008-04-30 11:48 Cheney Shue 阅读(...) 评论(...) 编辑 收藏