- 浏览: 557861 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (340)
- Spring (4)
- Hibernate (2)
- Linux (34)
- Oracle (145)
- Eclipse (1)
- UML (1)
- HTML&&JAVASCRIPT (11)
- JAVA (33)
- 设计模式 (1)
- 版本控制 (1)
- wrap框架 (3)
- IBATIS (5)
- Ruby (1)
- DWR (1)
- MINA (11)
- JBPM (2)
- 缓存技术 (4)
- 网络 (3)
- 应用服务器 (1)
- GWT (5)
- 杂谈 (2)
- ICE (4)
- XML (2)
- ArcGis (2)
- Flex (8)
- junit单元测试 (1)
- SNMP (1)
- 存储 (1)
- office (1)
- MongoDB (0)
- Greenplum (3)
- 管理点滴 (1)
- C++ (6)
- 网络入门 (3)
- Tomcat (7)
- JMX (0)
- webservice (1)
- Oracle的10046事件 (1)
- Library cache内部机制详解 (1)
- expdp通过dblink来导入 (1)
最新评论
-
yuanliangding:
有没有关于mock的更多知识。
基于mock对象和JUnit框架简化Spring Web组件单元测试 -
saup007:
ssh端口不是22,怎么搞呢?
Greenplum 学习笔记 -
springmvc-freemarker:
java开源项目源码实例下载
Apache上全部JAVA开源项目简介 -
bobbell:
哇塞,你真厉害,整理的非常全面。我是一个java barcod ...
Greenplum 学习笔记 -
wsj55133245513324:
这不是bug,你将日志级别从debug提升到INFO 就好了 ...
Spring,smppapi,apache mina, ssl快速实现安全的smpp(5)
接上次的文章,在修改/etc/sysconfig/o2cb的配置后,发现两机器只有一台可以自动挂载ocfs2分区,而另外一台不能自动挂载。但启动完毕后,手动挂载正常。
一、详细情况
两机器分别是dbsrv-1和dbsrv-2,使用交叉线做网络心跳,并在cluster.conf中使用私有心跳IP,非公用IP地址。
1、检查o2cb状态
启动后,o2cb服务是启动正常的,ocfs2模块也加载正常的,但心跳是Not Active:
2、检查/etc/fstab文件
/dev/sdc1 /oradata ocfs2 _netdev,datavolume,nointr 0 0
配置正确;
3、检查两机器的/etc/ocfs2/cluster.conf内容
node:
ip_port = 7777
ip_address = 172.20.3.2
number = 0
name = dbsrv-2
cluster = ocfs2
node:
ip_port = 7777
ip_address = 172.20.3.1
number = 1
name = dbsrv-1
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
已经确认,两机器该文件是完全相同的。
4、查看系统日志
报错信息如下:
Jul 20 19:33:24 dbsrv-2 kernel: (4452,0):o2net_connect_expired:1446 ERROR: no connection established with node 1 after 10 seconds, giving up and returning errors.
Jul 20 19:33:24 dbsrv-2 kernel: (4478,2):dlm_request_join:786 ERROR: status = -107
Jul 20 19:33:24 dbsrv-2 kernel: (4478,2):dlm_try_to_join_domain:934 ERROR: status = -107
Jul 20 19:33:24 dbsrv-2 kernel: (4478,2):dlm_join_domain:1186 ERROR: status = -107
Jul 20 19:33:24 dbsrv-2 kernel: (4478,2):dlm_register_domain:1379 ERROR: status = -107
Jul 20 19:33:24 dbsrv-2 kernel: (4478,2):ocfs2_dlm_init:2009 ERROR: status = -107
Jul 20 19:33:24 dbsrv-2 kernel: (4478,2):ocfs2_mount_volume:1062 ERROR: status = -107
Jul 20 19:33:24 dbsrv-2 kernel: ocfs2: Unmounting device (8,33) on (node 0)
Jul 20 19:33:26 dbsrv-2 mount: mount.ocfs2: Transport endpoint is not connected
Jul 20 19:33:26 dbsrv-2 mount:
Jul 20 19:33:26 dbsrv-2 netfs: Mounting other filesystems: failed
二、分析问题
1、node节点的启动顺序
从Google搜索到如此的信息:
to make a connection to all heartbeating nodes. If this connection
fails,the mount fails. (The larger node number initiates the connection
to the lower node number.)
说明o2cb启动的时候,是根据node节点的大小顺序启动的。
而在cluster.conf中,node0是dbsrv-2,node1是dbsrv-1,所以,dbsrv-1在启动的时候马上可联通本机IP,然后挂载ocfs2分区;但dbsrv-2启动的时候,则不能即时发现对方IP地址,所以启动失败。
2、尝试修改HEARTBEAT_THRESHOLD参数
从Goolge搜索到另外一条信息:
Does the OCFS2 development team also consider this to be too short, or is altering the paramater just a workaround that shouldn't be used? If this is the case then how should we approach the problem of self-fencing nodes?
Also, can we expect this behaviour with some platforms but not others, or is it too short for all platforms? If it is a blanket problem, then should the default threshold be raised?
Finally, if the altering the threshold is a valid solution, could it please be added to the FAQs and the user guide so that people know to adjust it as a first step on encountering the problem, rather than having to post to the list and wait for replies.
并参考网上的资料,修改/etc/sysconfig/o2cb的HEARTBEAT_THRESHOLD参数为301,启动后报:
Jul 23 13:59:50 dbsrv-2 kernel: Please double check your configuration values for 'O2CB_HEARTBEAT_THRESHOLD'
Jul 23 13:59:54 dbsrv-2 kernel: OCFS2 1.2.3
Jul 23 14:00:00 dbsrv-2 kernel: (4449,0):o2net_connect_expired:1446 ERROR: no connection established with node 1 after 10 seconds, giving up and returning errors.
Jul 23 14:00:00 dbsrv-2 kernel: (4475,2):dlm_request_join:786 ERROR: status = -107
问题依旧。
※注释
(301 - 1) * 2 = 600 秒
综上所述,已经能清楚所有配置都是正确的。
导致故障的原因是:
在启动o2cb服务的前,由于某些原因,o2cb依赖的IP地址未能及时取得联系,操作了其限定的时间,而启动失败。而在机器完整启动后,网络已经正常,所以,手动挂载ocfs2分区正常。
三、解决问题
1、Oracle metalink给出的信息
2、解决方法
b)确保两服务器的机器时间不要相差太远;
(可使用时间同步)
c)o2cb使用的cluster.conf文件中,应使用心跳IP,而非公网IP
d)修改/etc/init.d/o2cb脚本,在最前面加入一个sleep的延迟时间,以等待网络正常;
e)实在还是不行,把启动脚本放到/etc/rc.local中
/etc/init.d/init.crs start
四、已知可能的原因
1、磁盘原因
例如使用iSCSI、Firewire等做盘柜,可能因读取时间长,引发timeout导致问题;
2、网络原因
如果使用公网IP做o2cb的判断,则由于在加载网卡驱动后,交换机未能及时通讯(特别是Cisco的交换机),导致IP通讯失败;
如果使用心跳IP做o2cb的判断,则有部分网卡在加载驱动后,未能马上激活,并与对方网卡联通而导致失败。
总体来说,都是和硬件的关系比较多。
发表评论
-
expdp通过dblink来导入
2011-12-14 15:01 1789create.sql: spo create.log rem ... -
Library cache内部机制详解
2011-12-14 14:55 893Library cache内部机制详解 http://www ... -
Oracle的10046事件
2011-12-14 14:53 2098Oracle的10046事件,可以跟踪应用程序所执行的SQL语 ... -
REDO LOG MEMBER STATUS 和 REDO LOG GROUP STATUS
2011-12-14 14:51 928V$LOG 中列出的是REDO LOG GROUP STA ... -
oracle的exp/imp使用方法学习(转)
2011-08-30 08:54 964exp/imp两个命令可以说是oracle中最常用的命令了 ... -
oracle几个awr报告
2011-08-09 14:25 900工作中,碰到的数据库慢的几个awr报告 -
Oracle Profile 使用详解
2011-06-21 14:41 972一、目的: Oracle系统中的profile可以用来对 ... -
ORA-27013
2011-04-13 14:25 1516很新的一个bug,看下你的 memory_target是不是& ... -
ACLE表连接方式分析及常见用法
2011-03-23 09:14 1115摘要: 针对在数据仓库 ... -
ORACLE 外部表应用
2011-03-09 14:58 1068SQL> create or replace direc ... -
How to convert a 32-bit database to 64-bit database on Linux
2011-02-18 14:09 1216How to convert a 32-bit databas ... -
expdp impdp 数据库导入导出命令详解
2011-02-16 09:10 1956一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最 ... -
Oracle手工解/锁表
2011-01-25 14:15 2507手工锁表:lock table tbl_t1 in row ... -
oracle动态性能视图
2011-01-22 10:47 862Oracle动态性能视图个人整理 -
RBO规则介绍
2011-01-17 16:45 1082•无条件使用索引•使用内置的优先级别决定访问路径•比较难以 ... -
关于排序、sort_area_size、临时表空间
2011-01-13 15:30 1120简单陈述一下:针对每 ... -
创建索引ORACLE 需要做的工作
2011-01-13 14:53 1324一. 先来看一下创建索引要做哪些操作:1. 把inde ... -
表之间的连接
2011-01-13 10:42 798Join是一种试图将两个表结合在一起的谓词,一次只能连接2 ... -
重建索引的条件
2011-01-12 16:43 955如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我 ... -
TKPROF使用学习
2011-01-10 17:38 726Tkprof工具可用来格式化sql trace产生的文件, ...
相关推荐
这个过程中可能涉及如`mkfs.ocfs2`用于创建文件系统,`mount.ocfs2`用于挂载,以及`o2cb`工具集进行集群管理等命令。 **总结** OCFS2是一个为企业级集群环境设计的文件系统,它在1.4.1版本中优化了性能、增强了...
这个"ocfs2.rar_V2"压缩包包含了与OCFS2在Linux v2.13.6版本相关的源代码文件,特别是"ocfs2.c",这可能是一个核心的实现文件,用于解析OCFS2文件系统的操作。 OCFS2的设计目标是提供一种高性能、高可用性的集群...
OCFS2旨在为Linux环境下的集群提供一个高性能的文件系统解决方案。文档建议用户在配置和使用OCFS2文件系统时应考虑其特性,比如集群内部不同节点之间的文件共享和数据一致性。OCFS2通过分布式锁管理器来保证集群环境...
- **维护与监控**: 通过工具如 `o2cbadm` 和 `dlmctl` 管理 DLM,以及 `ocfs2cluster` 工具进行集群状态监控。 ### **4. 结论** OCFS2 是 Oracle 公司对集群文件系统的一次重要贡献,它提供了强大的并发访问能力和...
本文将深入探讨`ocfs2_nodemanager`模块用户空间与内核交互的机制,以及相关源代码`br_sysfs_br.c`和`ocfs2_nodemanager.c`的重要性。 首先,我们要理解"between"这个标签所指的含义。这里的“between”是指`ocfs2_...
OCFS2在H3C CAS系统中的应用主要体现在其作为分布式存储解决方案的部分,帮助实现高可用性和高性能的数据存储服务。 综上所述,OCFS2作为一款高性能、高可用性的集群文件系统,在云计算领域有着广泛的应用前景。...
6. **挂载与使用**:使用`gfs2_mkfs`创建文件系统,`gfs2_mount`挂载,`gfs2_tool`工具用于管理和诊断GFS2文件系统。 **比较与选择** OCFS2和GFS2各有优势。OCFS2更注重灵活性和易用性,而GFS2在大型企业环境中...
这涉及安装ocfs2-tools和ocfs2-agent软件包,它们提供了创建和管理OCFS2文件系统的工具。在所有节点上执行相同的安装过程,并配置共享存储,如SAN(Storage Area Network)或NAS(Network Attached Storage)。 ...
OCFS2(Oracle Cluster File System Version 2)是一种高性能的集群文件系统,适用于需要...在部署和管理OCFS2集群时,需要对相关概念、工具和配置选项有深刻的理解,以避免在生产环境中出现错误配置和数据丢失的问题。
ocfs的安装包linux for x86_64
- **o2net**: OCFS2集群管理工具的一部分,负责节点间的通信管理。 #### 状态机转换流程 在OCFS2集群管理中,状态机转换涉及多个关键步骤和组件: 1. **Write操作**: - `Writedev`: 表示写入设备的操作。 - `...
Linux5安装ORACEL RAC 工具ocfs2安装文件
总结起来,OCFS2是RAC成功运作的关键组件,它提供了高效、可靠的共享存储解决方案,使得RAC能够实现高可用性和负载均衡。通过理解和熟练掌握OCFS2,IT专业人员能够更好地设计和维护高稳定性的企业级数据库集群系统。
6. **OCFS2安装**:安装OCFS2内核模块和用户空间工具,如ocfs2console和ocfs2-tools。 7. **Oracle数据库安装**:按照Oracle文档的指导,使用ASM作为存储选项安装Oracle 11g R2数据库软件。 8. **RAC配置**:配置...
这些改进使得OCFS2成为了一个更加成熟和可靠的解决方案,尤其是在处理高负载环境时表现更佳。 - **安全性**:OCFS2引入了多种安全机制,确保数据的完整性和一致性,同时支持加密功能,为数据提供额外的安全保障。 ...
2. **RAC(Real Application Clusters)**:配合Oracle RAC,OCFS2可提供高可用的数据库集群解决方案,确保数据库服务不因单点故障而中断。 3. **ASM(Automatic Storage Management)**:虽然ASM可以独立管理存储,...
ocfs2-2.6.9-22.EL-1.2.0-1.i686.rpm
ocfs2console-1.2.7-1.el4.i386.rpm 下载