`
jianchen
  • 浏览: 343002 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

BIEE登录问题排查及集群搭建

    博客分类:
  • BI
 
阅读更多

背景:

BIEE服务器虽然搞了两台,但是只是作为冷备。大部分情况下,如果白天需要发布rpd,我可以切换机器提供服务进行发布。

 

问题来了:

单机经常挂的情况(现象是:用户无法登陆,提示“正在登录,请稍候...”)。


一般重启下BIEE的几个server进程,可以恢复。但是过不了一会,又会出现这种情况。

中间有一个插曲就是我把机器重启过,导致哈勃的监控客户端程序没有起来,导致对BIEE的监控是失效了,导致了都是用户来反馈我才知道系统挂了,导致老大对我们的系统那几天倍加关心,每天都担心着会挂,也影响了工作。所以得赶紧去优化解决啊。

 

问题分析:
根据观察,出现这种情况发生在周一,周四的概率比较大。周一一般用户上班会查数据,周四的话,是很多小二要出周报,也会用到数据。

 

在分析问题的过程中,注意到TCP的连接数在涨,到200或者300多,系统就会无法登陆。

查看TCP连接数的命令如下:

 

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 

 

访问量一大,连接如果未释放,导致新的请求进来无法再处理,所以就想到去调高一些参数。
因为TCP连接发生在多个环节,apache httpd->oc4j->presentation service->BI Server->(mysql DB|infobright DB)

 

所以看到每个环节都有连接,我就去改了好几个地方的配置。

 

尝试性的修改了诸多参数。

1,修改登录时初始化变量块对应的数据库连接池的最大连接数,从10改为200。

2,修改了报表访问的底层mysql数据库的最大连接,从100改为500(因为DBA总共开了1000),怀疑查询性能的问题,去找了部分慢sql进行优化,发现对解决系统问题没有什么影响。

3,修改NQConfig.ini里面的配置。比如增大缓存文件的大小

 

 

DATA_STORAGE_PATHS      =       "/usr/local/OracleBIData/cache" 5000 MB;
MAX_ROWS_PER_CACHE_ENTRY = 100000;  // 0 is unlimited size
MAX_CACHE_ENTRY_SIZE = 10 MB;
MAX_CACHE_ENTRIES = 5000;

以上配置都没能改变服务器会挂的命运。

 

4,配置集群

考虑到一台扛不住,那么搞成两台,即使不能根本解决问题,也至少能撑的久一点吧。

所以周五开搞,周六加个班。首先在自己和同事的windows机器上进行测试。按照网上的例子,进行了参数的配置。

需要配置NQSConfig.ini以及NQClusterConfig.INI文件中的参数。

 

NQSConfig.ini需要修改的参数如下:

 

CLUSTER_PARTICIPANT = YES; # If this is set to "YES", comment out
# SERVER_HOSTNAME_OR_IP_ADDRESSES. No specific NIC support
# for the cluster participant yet.

// Following required if CLUSTER_PARTICIPANT = YES
REPOSITORY_PUBLISHING_DIRECTORY = "\\TAOBAO-A742DB61\shared";
REQUIRE_PUBLISHING_DIRECTORY = YES;  // Don't join cluster if directory not accessible

 

表名该机器要加入集群,以及rpd的共享目录,效果就是,如果在线编辑rpd是,会在该贡献目录下产生新版本号的文件(test.rpd.000001).这样当slave的biee进程重启后,会从该共享目录里去加载rpd。

 

需要注释掉如下的配置:

 

#SERVER_HOSTNAME_OR_IP_ADDRESSES = "ALLNICS"; # Example: "hostname" or "hostname":port

 

还要设置共享缓存:

 

 

// Cluster-aware cache
GLOBAL_CACHE_STORAGE_PATH = "\\TAOBAO-A742DB61\shared" 1000 MB;
MAX_GLOBAL_CACHE_ENTRIES = 1000;
CACHE_POLL_SECONDS = 300;
CLUSTER_AWARE_CACHE_LOGGING = NO;

 

NQClusterConfig.INI文件的主要设置加入集群的机器以及master和slave的配置。主要是配置前面的几个参数。

 

ENABLE_CONTROLLER = YES;                  // Is Cluster Controller on this node enabled? (note that Analytics Server clustering is enabled via NQSConfig.INI)

PRIMARY_CONTROLLER   = "TAOBAO-A742DB61"; // DNS name of Primary Cluster Controller
SECONDARY_CONTROLLER = "TAOBAO-BE66DF29"; // Secondary Cluster Controller; Must be distinct from PRIMARY_CONTROLLER

SERVERS = "TAOBAO-A742DB61","TAOBAO-BE66DF29";   // [,"<analytics_server_name02>"]... Oracle BI Servers - up to 16 unique machines in list

MASTER_SERVER = "TAOBAO-A742DB61"; // DNS name of machine with Oracle BI Server that holds master copies of repositories (must be in SERVERS list)

 

 

设置Presentation service的配置instanceConfig.xml

因为是多台机器的集群,所以需要将catalog作为共享的东西,让两台机器都可以向其写入和读取。所以要将catalog所在目录设置成共享的。然后单击的话,DSN可以配置成本机的,集群就要修改下了重新配置下。

在windows图形界面的配置如下:


            

 

在linux下,配置如下(下面的server1,server2对应机器的主机名即可。我这里只是举个例子):

 

[Cluster]
Driver=/usr/local/OracleBI/server/Bin/libnqsodbc.so
Description=Oracle BI Server
ServerMachine=local
Repository=Star1
FinalTimeOutForContactingCCS=60
InitialTimeOutForContactingPrimaryCCS=5
IsClusteredDSN=Yes
Catalog=
UID=Administrator
PWD=
Port=9703
PrimaryCCS=server1
PrimaryCCSPort=9706
SecondaryCCS=server2
SecondaryCCSPort=9706
Regional=No

 

然后针对oc4j也要修改下配置,支持oc4j支持转发请求到其他机器上去。修改web.xml文件

 

 

   <servlet-name>SAWBridge</servlet-name>
   <servlet-class>com.siebel.analytics.web.SAWBridge</servlet-class>                
 <init-param>
          <param-name>oracle.bi.presentation.Sawservers</param-name>
          <param-value>server1:9710;server2:9710</param-value>
 </init-param>

 

其他的javahost的集群配置就没弄了,因为感觉到瓶颈不在javahost上。

 

加入集群的机器的配置基本一样,所以在同事的机器上也做了类似的动作。如果参数配置有误的话,用admin tool打开rpd文件时会报错。出错信息会在server的Log目录下,根据这些日志信息,可以定位到哪里的配置出现了错误。

 

配置都OK后,开始测试集群是否生效。将本机的几个基础进程都起来后,还有启动集群服务这个进程(Oracle BI Cluster Controller)。进程启动都正常,没有报错。但是查看NQCluster.log日志,发现与同事的机器建立连接失败。

 

 写道
2012-06-15 21:28:13
[71021] 尝试与 Oracle BI Server TAOBAO-BE66DF29:9703 建立连接失败。
2012-06-15 21:28:13
[71031] 尝试建立与 Cluster Controller TAOBAO-BE66DF29:9706 的连接失败。

打开rpd查看集群的情况,图如下:



 

 

 

一开始一直怀疑是配置的问题,后来纠结了一会后,想到应该是进程建通信的问题。ping机器能ping通。后来telnet对应的端口发现无法连接,所以想到了防火墙的问题。两台机器都把9700,9703,9706几个端口加入了例外。修改后,两台机器就可以发现对方了。

 

访问报表页面,可以看到两台机器的NQQuery.log上都有日志打出来,说明访问时,集群的根据负载分配请求到BI Server上了。

 

线下测试OK后,在线上的linux环境下配置总体还是顺利的,就是在配置NFS共享目录的时候遇到了点问题,也是自己没搞过,不了解需要改对应的配置文件增加共享目录以及允许访问的机器ip信息,向师兄咨询后,还是解决了。

顺便这里列下使用NFS服务的话,需要启动如下几个服务:

# service portmap start # service nfs start

然后就是在/etc/exports里增加配置,例如:

/home/admin/shared  172.23.179.109(rw,sync) 

mount对应的目录即可。

mount -t nfs 172.23.178.189:/usr/local/OracleBIData/web/catalog  /home/jianchen/netcatalog

备注:/home/jianchen/netcatalog在172.23.179.109机器上。它要挂载172.23.178.189机器的共享目录。

 

But配置集群后依然不能抗住。影响的用户面为50%。有些可以正常访问,有些就提示登陆不了了。

 

虽然没能抗住,但是也趁这次机会将集群搭建成功也是一个意外的收获吧。之前一直觉得一台机器能抗住,所以一直就没有配置成真正的集群。现在有点压力还是能把想做的事情做了的,呵呵。

 

5,甚至怀疑是不是oc4j的session内存空间无法再承载了。想去修改session的相关配置,只不过在网上没找到相关的资料,所以没改成。

 

6,尝试修改过presentation service的参数。想法是,控制每个用户连接的时长,不用了的话,就断开,好提供给新的用户使用。

 

参考的文章如下:http://obiee-blog.info/security/how-to-setup-session-timeout-in-oracle-biee/

 

List the three parameters which affects session timeout for BIEE user.

There are three types of timeout settings controls the user session :

BI                   Presentation                      User
Server -  (Link 1)   ->   Server    ->  (Link 2)   ->   Browser
Link 1:

The time of connection between the OracleBI Presentation Server and OracleBI Services can be configured using the following steps:
1. Edit the file instanceconfig.xml
2. Add the following line in the block

<ConnectionExpireMinutes>3</ConnectionExpireMinutes>

3. Restart services OracleBI Presentation Services
Notes:
1. The value of default is 3 minutes.
2. The connection between the OracleBI Server and OracleBI Presentation Services is closed and removed.
3. This setting does not affect the connection established between the OracleBI Presentation Services and the WebBrowser, which remains intact pending an activity from the user.

Link 2:

The time of connection between the OracleBI Presentation Services and the WebBrowser can be configured using the following steps:
1. Edit the file instanceconfig.xml
2. Add the following line in the block ServerInstance) ((/) ServerInstance

<ClientSessionExpireMinutes> 1440</ClientSessionExpireMinutes>

3. Restart services OracleBI Presentation Services
Notes:
1. The internal default value is 1440 minutes (24 hours).
2. The connection between the OracleBI Presentation Services and the WebBrowser is closed and removed.
3. This configuration forces logoff user outside the application, which should make logging into an application to work again.
4. All information and statements in it are lost.

Log User Off:

Then we can set the property to force the user out of the Logoff OracleBI Presentation Services.
This setting only applies to users who have not selected the option “remember my ID and password.
1. Edit the file instanceconfig.xml
2. Add the following line in the block

<LogOnExpireMinutes>180</LogOnExpireMinutes>

3. Restart services OracleBI Presentation Services
Notes:
1. The internal default value is 180 minutes (3 hours).
2. To disable this feature using a value larger than the value of ClientSessionExpireMinutes 

7,修改[server]的参数

 

关于第四点,本来我SERVER_THREAD_RANGE,DB_GATEWAY_THREAD_RANGE默认参数值为40-200,后来我把值稍微调整了下,改成了40-1000,发现没有效果。后者咨询其他同事,建议将参数修改成如下:

 

SERVER_THREAD_RANGE=500-500
DB_GATEWAY_THREAD_RANGE =400-3000

 

因为真正的原因不在于此,所以我改成这个参数后,也是没能解决问题

参数说明 写道
SERVER_THREAD_RANGE specifies the number of threads that process the logical queries, or in other words, the number of queries that can be active in the Oracle BI Server at any time.

 

最终修改后的参数调整如下(如下的参数是按照对于在IBM System x3755 Server 机器,red hat linux系统 上BIEE的一篇评测进行修改的,我想评测支持的用户级别为4000,我每天支持的UV为300多,肯定能抗住了):

 

SERVER_NAME = Oracle_BI_Server ;
READ_ONLY_MODE = NO;    // default is "NO". That is, repositories can be edited online.
MAX_SESSION_LIMIT = 6000 ;
MAX_REQUEST_PER_SESSION_LIMIT = 3000 ;
SERVER_THREAD_RANGE = 2000-2000;
SERVER_THREAD_STACK_SIZE = 0;               // default is 256 KB, 0 for default
DB_GATEWAY_THREAD_RANGE = 2000-5000;
DB_GATEWAY_THREAD_STACK_SIZE = 0;           // default is 256 KB, 0 for default
MAX_EXPANDED_SUBQUERY_PREDICATES = 8192;    // default is 8192
MAX_QUERY_PLAN_CACHE_ENTRIES = 1024;        // default is 1024
MAX_DRILLDOWN_INFO_CACHE_ENTRIES = 1024;    // default is 1024
MAX_DRILLDOWN_QUERY_CACHE_ENTRIES = 1024;   // default is 1024
INIT_BLOCK_CACHE_ENTRIES = 5000;              // default is 20

 

8,同时根据用户的反馈,系统的有一个功能的访问量比较大,涉及到TOP计算,该功能是利用了amoeba程序改写的一个代理程序去访问infobright库和mysql拼装结果后返回结果。发现tcp下对应端口有10多个的close_wait状态。之前该代理程序仅仅安装在一台机器上。所以也怀疑这个引起的系统整体出现问题。于是将该代理程序在两台机器上都进行了安装,进行分流减压。对应机器上的BI server只访问本机的代理,可以保证这个代理程序的风险降低。

 

 

基于第7点和第8点,系统的稳定性提升了不少,在应对周一和周四的的高峰期时都抗住了,也没有出现“正在登录,请稍候”的问题了。

 

整个系统性能问题处理下来,查阅了不少资料,对很多产生进行了进一步的了解。也是有所收获,希望本文能给读者一些帮助,有类似性能优化经验的请多多交流。

 

 

附录:一些查阅文档时,收集的博客链接:

 

性能提升:

 

 

 

 
 

 

 

  • 大小: 42.3 KB
  • 大小: 28.1 KB
  • 大小: 28.7 KB
分享到:
评论

相关推荐

    Oracle BIEE常见问题解决办法汇总

    Oracle BIEE 常见问题解决办法汇总 问题1:提示组合 * 添加筛选器选择对应的列 * 在筛选器属性页面,运算符中选择提示 知识点: 在 Oracle BIEE 中,添加筛选器可以根据需要选择对应的列,并在筛选器属性页面中...

    BIEE BIEE BIEE BIEE

    Oracle BIEE(Business Intelligence Enterprise Edition)是一款强大的商业智能解决方案,用于数据分析和报表生成。本文主要探讨如何使用BIEE Administration Tool创建和管理BIEE资料库,包括创建物理模型、逻辑...

    BIEE常见问题解答

    ### BIEE常见问题解答 #### 一、仪表板分组下拉显示 在Oracle Business Intelligence Enterprise Edition (BIEE) 10g中,为了更好地管理大量的仪表板,可以通过以下步骤实现仪表板分组下拉显示: 1. **配置`...

    oracle biee常见问题解答

    ### Oracle BIEE 常见问题解答 #### 一、仪表板操作与配置 **1.... - **解决办法**:为了实现仪表板分组下拉显示的功能,...以上仅为部分常见问题及解决方法概述,针对具体问题还需要结合实际情况进行深入分析和处理。

    oracle biee 的hello world 搭建方法

    ### Oracle BIEE HelloWorld搭建详解 #### 创建资料库 在开始构建Oracle BIEE环境之前,首先要理解**资料库(Repository)**的概念及其重要性。资料库是一个后缀名为`.rpd`的物理文件,其核心作用是存储元数据,...

    BIEE用户权限及修改密码设计

    用户在登录BIEE时,系统会根据预设的权限方案检查用户的访问权限。如果用户拥有查看特定报告或数据集的权限,他们就能访问这些资源;反之,则会被限制访问。 **BIEE回写设计(修改密码)** 1. **创建并导入外部用户...

    Oracle BIEE多用户开发环境的搭建.docx

    总结来说,Oracle BIEE多用户开发环境的搭建涉及创建和管理项目、设置共享网络目录、拷贝存储库、开发者配置工具、检出和检查存储库项目,以及问题跟踪。这一过程旨在提高团队协作效率,确保每个开发者的改动都能...

    BIEE的端口更改及服务启动顺序

    标题中的“BIEE的端口更改及服务启动顺序”涉及到的是Oracle Business Intelligence Enterprise Edition (BIEE) 的系统配置知识。BIEE是Oracle提供的一款企业级商业智能平台,用于数据分析、报表制作和信息可视化。...

    BIEE_常见问题详细解答

    1. **登录问题**:在BIEE使用中,有时会遇到无法登录或者登录后权限不足的情况。这可能是因为用户名、密码错误,或者角色分配不正确。解决方案包括检查认证源设置,确保用户信息正确,以及在BIEE管理员界面调整用户...

    Oracle BIEE集群部署

    ### Oracle BIEE 集群部署关键技术解析 #### 一、概述 Oracle Business Intelligence Enterprise Edition (Oracle BIEE) 是一款广泛应用于企业数据分析领域的强大工具。为了提高系统的可用性、扩展性和容错能力,...

    BIEE+客户化登录界面

    根据提供的文件信息,本文将详细解析“BIEE+客户化登录界面”的核心知识点,包括如何自定义登录页面、修改配置文件实现个性化显示等技术细节。 ### 一、客户化BIEE登录界面 #### 1.1 自制网页 在实现BIEE登录界面...

    BIEE11G入门培训

    - **打开BIEE仪表盘**:登录BIEE门户,可以查看预配置的Demo仪表盘,这些示例展示了BIEE的各种功能,如钻取、切片、过滤和图表交互。 在学习BIEE11g的过程中,掌握这些基础知识是至关重要的。这将帮助你理解BIEE的...

    BIEE11g常见问题(整合版)

    在IT领域,Oracle Business Intelligence Enterprise Edition (BIEE) 11g 是一款...以上是BIEE 11g常见问题的详细解答,涵盖了数据访问、权限管理、系统配置、故障排查等多个方面,有助于解决日常使用中遇到的问题。

    BIEE LDAP 配置 图文解释

    本篇将详细讲解如何配置BIEE以使用LDAP进行外部认证,以实现更安全、高效的用户登录管理。 首先,理解BIEE LDAP配置的重要性。通过集成BIEE与LDAP,企业可以统一用户身份验证,避免在多个系统中维护用户账户的繁琐...

    更改BIEE登陆界面图片

    本文将详细介绍如何更改BIEE的登录界面图片,包括所需步骤、注意事项以及可能遇到的问题解决策略。 ### 一、准备工作 在开始更改BIEE登录界面图片之前,确保以下几点: 1. **权限检查**:确保拥有BIEE管理员权限...

    BIEE入门视频,轻松学会BIEE

    BIEE入门视频,BIEE 资料,轻松学会BIEE,BIEE教程

    BIEE报表及开发的简单介绍

    【BIEE报表及开发的简单介绍】 Oracle Business Intelligence Enterprise Edition (BIEE) 是一个强大的商业智能平台,它为企业提供了一整套数据分析和报表工具。本文将对BIEE报表及其开发进行简要介绍,重点关注在...

    BIEE用户权限设计

    3. **测试登录**:通过上述配置后,用户可以通过BIEE登录页面进行登录测试,验证权限设置是否正确。 ##### 1.4 登录BIEE检验权限 登录BIEE后,可以通过实际数据的显示情况来检查权限设置是否有效。 **步骤详解:*...

    oracle BIEE 常见问题的原因

    在使用过程中,BIEE可能会遇到各种问题,这通常与配置、性能、数据集成或用户访问权限有关。以下是一些可能的问题及其原因: 1. **性能问题**:当BIEE运行缓慢或查询时间过长时,可能的原因包括数据库索引不足、...

Global site tag (gtag.js) - Google Analytics