OBIEE + OAS集群配置 Part 1
这里使用四台服务器bisvr01, bisvr02, bisvr03, bisvr04组成obiee + oas集群。四台服务器使用Windows Server系统,且另有一台服务器作为域控制器,服务器都加入了域。
1. OAS主要部件包括HTTP Server(Apache)和Oracle Container for Java,Apache通过oc4j module实现负载平衡,将请求发送到多个oc4j。多个HTTP Server上可以使用外部硬件负载平衡设备。
安装OAS时,选择高级安装,一路Next。注意在选择安装项目时,要部署Presentation Services,必须要安装OHS,等安装好OBIEE后如果不需要使用OHS,停止OHS即可。安装过程中还需要指定OC4J的名称,默认名称是home,OBIEE安装时需要名为home的OC4J实例。
建立集群最简便的方法是使用动态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" /> //replication的IP和端口,所有实例使用相同值。bind-addr是绑定的IP地址,如果服务器上有多个网卡,每个网卡使用不同的IP,选择一个作为绑带IP </protocol> </cluster> ………… </orion-application> |
修改application.xml后,部署在OC4J中所有的应用程序都加入到集群中。当然也可以只选择单个应用程序加入集群。
另外,Apache的默认配置使用了机器名做链接。比如你的OAS服务器IP是192.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.rpd的Repository,需要将此文件复制到所有节点的OracleBI\server\Repository目录,然后修改配置,使用paint.rpd。
6. 建立BI Server集群后,其他组件需要通过Cluster Controller访问BI Server集群,Cluster Controller将请求转发到集群内的节点,例如下图中Presentation Services访问BI Server集群那样。
在一个集群中,只有能有2个Cluster 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 Services和Administrator Tool需要使用ODBC数据源连接到BI Server,所以需要修改Presentation Services节点和安装有Administrator Tool客户端的ODBC配置。如下图:
8. Presentation Services通过Cluster Controller访问Scheduler和BI 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部署到OC4J,analytics将请求转发到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 Server、Javahost、Presentation、Cluster Controller、OAS ProcessManager能正常启动就没问题了。至此,OBIEE主要的几个部件集群配置已完成,下图是集群环境的构架:
下一步就是Scheduler、Publisher、Disconnected Aanlytics的配置工作。
OBIEE + OAS集群配置 Part 1相关推荐
- Hadoop集群配置(最全面总结)
Hadoop集群配置(最全面总结) 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为DataNode也作为Ta ...
- 基于redis的cas集群配置(转)
1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...
- redis+主从复制+集群配置
redis+主从复制+集群配置 redis是一个key-value存储系统.和memcached类似,不过redis支持的value类型更多,主要有:string(字符串).list(链表).set( ...
- JavaEE进阶知识学习-----SpringCloud(四)Eureka集群配置
Eureka集群配置 microservicecloud-eureka-7001使EurekaServer服务注册中心,一旦这个出现问题,那么微服务就不能正常的工作,为防止这种情况,所以出现了集群,就 ...
- FastDFS 集群配置(转载)
本文转载自::https://blog.csdn.net/xiaoweiqb/article/details/68065618 配置最终目标 以4台服务做集群,其中2台作为tracker服务器又作为s ...
- Redis高可用之集群配置(六)
0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...
- Redis集群配置和常见异常解决
Redis集群配置和常见异常解决 参考文章: (1)Redis集群配置和常见异常解决 (2)https://www.cnblogs.com/hzb462606/p/11121281.html 备忘一下 ...
- Nginx+Tomcat简单集群配置
2019独角兽企业重金招聘Python工程师标准>>> 1.软件准备 下载Nginx和Tomcat Nginx:http://nginx.org/en/download.html 这 ...
- Linux系统运维之Zookeeper集群配置
一.简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.ZooKeeper的目标就是封装好复杂易 ...
最新文章
- 管理虚拟机的艺术——有备无患
- 为何控件删除不了_过不好又离不了的婚姻,不如这样去处理
- Appfuse下载及安装步骤
- 开发中所使用的渠道(统计分析、分享、第三方登录、短信等)
- 查看、启动、关闭防火墙
- r语言 线性回归 相关系数_R语言系列第四期:R语言简单相关与回归
- MySQL事务操作原理与用法详解
- PyQt5 UI设计时自动创建qrc文件
- 用Eclipse开发Java语言程序,32单片机,51单片机和C语言程序(全部使用开源软件)
- css所有缩写属性,CSS常见属性缩写与全写对比
- 如何在SCI检索杂志上发表论文
- Windows Git 多用户多仓库配置
- qemu 规范路径_EVE-NG镜像添加技巧(以思科虚拟化产品为例)
- 【新知实验室-TRTC开发】实时音视频之集美真心话
- 【算法】图解A* 搜索算法
- 电脑重装系统可能会遇到的几个问题
- spring mav创建和注销session
- Python 值班表设计
- 计算机控制面板的作用,什么是控制面板;它有什么作用?
- \t\t把超星图书虚拟打印为PDF格式,实现永久阅读