asianux3.0上oracle asm奇怪问题-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 2018079
  • 博文数量: 220
  • 博客积分: 8531
  • 博客等级: 中将
  • 技术积分: 4976
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-18 13:33
文章分类

全部博文(220)

文章存档

2017年(1)

2015年(1)

2014年(5)

2013年(6)

2012年(6)

2011年(30)

2010年(37)

2009年(53)

2008年(41)

2007年(40)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2010-12-29 10:28:20

    新闻出版总署在asianux 3.0 sp3 x86-64上安装oracle rac10。开始对方想使用raw的方式,但是发现存储只分过来一个/dev/sdb,只能分15个分区,无法满足要求。我建议用asm或者用lvm。方法和相应的包都发过去了。

注意,asm的使用和逻辑卷的使用是两种方法,选其一,两种方法不同时使用。

1、逻辑卷
将sdb做成逻辑卷
在一台上操作
清空sdb上的分区和数据
dd if=/dev/zero of=/dev/sdb bs=1m count=100
创建物理卷
pvcreate /dev/sdb
创建卷组,卷组名称自定,如下例子为ora
vgcreate ora /dev/sdb
创建第一个逻辑卷,名字为data1,大小100m
lvcreate -n data1 -l 100m ora
这样创建完毕的逻辑卷为/dev/ora/data1,可以当做一个分区绑定裸设备或者创建
文件系统。
raw /dev/raw/raw1 /dev/ora/data1
创建其他的逻辑卷参考上述命令,大小可以用m或者g。


2、asm的使用
安装顺序
rpm -ivh oracleasm-support-2.1.3-1.el5.x86_64.rpm
tar zxvf oracleasm-2.0.5-1-ax3sp3-x86-64-2.6.18-194.1axs3.tar.gz -c /
rpm -ivh oracleasmlib-2.0.4-1.el5.x86_64.rpm
asm的启动停止和使用参考红帽上的文档,是通用的。


    结果晚上又打电话说asm服务启动时无法启动,我确认了一下oracleasm.ko是否已经放到了内核目录中否?确认没有,估计是tar解包的时候-c参数用成-c了。让其重执行,本以为就解决了,结果后来打电话说去现场协助吧,asm还无法成功。

    到达现场后,发现执行oracleasm服务的确无法启动,继而发现内核模块没有加载成功。

[root@w-db2 ~]# /etc/init.d/oracleasm start

initializing the oracle asmlib driver:                     [failed]
[root@w-db2 ~]# /etc/init.d/oracleasm status
checking if asm is loaded: no
checking if /dev/oracleasm is mounted: no


    两个rpm和一个tar包我确认都正常安装了,怎么会出现这种情况呢?我在公司测试是正常的啊。
    突然想到:内核无法加载oracleasm.ko但此模块的确在内核目录中,那原因只有一种:没有执行depmod。
    将新的内核模块放到内核目录中(/lib/modules/2.6.18-194.1.axs3/*),内核并不能自动使用这个新模块。内核是否可以自动加载某个模块并不是去内核模块目录中搜索,而是从modules.dep中检索。depmod的工作就是将内核模块目录中的所有文件和modules.dep对比一下,如果新加的模块,就将路径加入modules.dep,以供内核识别。
    这的确是我忽视了,我知道往内核目录中放新模块之后,执行depmod是必须的,但是忘记在邮件里写上了。
    执行depmod -a之后,再次启动成功。

[root@w-db2 ~]# /etc/init.d/oracleasm start
initializing the oracle asmlib driver: [ ok ]
scanning the system for oracle asmlib disks: [ ok ]
[root@w-db2 ~]#


    启动成功之后又发现一个问题:在db2很快服务就执行完毕,但是在db1上却在scanning asmlib disks时很长时间才结束。我仍然通过sh -x /etc/init.d/oracleasm start没有发现具体原因,但是看其中写到了/var/log/oracleasm日志中了。通过这个日志文件发现oracleasm服务在扫描device mapper设备,一共扫描20个设备,每个设备扫描4次,而且这些设备都不存在。

[root@w-db1 etc]# cat /var/log/oracleasm
loading module "oracleasm": failed
unable to load module "oracleasm"
loading module "oracleasm": oracleasm
mounting asmlib driver filesystem: /dev/oracleasm
reloading disk partitions: done
cleaning any stale asm disks...
scanning system for asm disks...
oracleasm-read-label: unable to open device "/dev/dm-0": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-0": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-0": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-0": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-1": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-1": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-1": no such file or directory
oracleasm-read-label: unable to open device "/dev/dm-1": no such file or directory


    看来问题就在/dev/dm-0这些设备是怎么来的。
    问了一下,是当时在db1机器上创建了一些lvm,后来不用删除了。看来问题就在这。device mapper设备一般是lvm或者multipath产生的。
    那么既然lvm已经删除了,系统中通过fdisk和sfdisk都看不到了,为什么oracleasm服务还能扫描到?从哪里取的?
    在/etc下面整个找了一下(grep -r md-0 *),没有任何文件中包含。后来想到了内存中,继而想到/proc/partitions中,的确在此。

[root@w-db1 oracleasm]# cat /proc/partitions
major minor #blocks name

   8 0 142577664 sda
   8 1 54508513 sda1
   8 2 61440592 sda2
   8 3 16386300 sda3
   8 4 0 sda4
   8 5 10241406 sda5
   8 16 1754664960 sdb
   8 17 0 sdb1
   8 18 488287642 sdb2
   8 19 488287642 sdb3
   8 21 987934 sdb5
   8 22 987966 sdb6
   8 23 987966 sdb7
   8 24 987966 sdb8
   8 25 939771 sdb9
 253 0 102400 dm-0
 253 1 102400 dm-1
 253 2 102400 dm-2
 253 3 102400 dm-3
 253 4 102400 dm-4
 253 5 102400 dm-5
 253 6 102400 dm-6
 253 7 5242880 dm-7
 253 8 5242880 dm-8
 253 9 5242880 dm-9
 253 10 5242880 dm-10
 253 11 5242880 dm-11
 253 12 5242880 dm-12
 253 13 5242880 dm-13
 253 14 5242880 dm-14
 253 15 5242880 dm-15
 253 16 5242880 dm-16
 253 17 5242880 dm-17
 253 18 5242880 dm-18
 253 19 5242880 dm-19



[root@w-db2 ~]# cat /proc/partitions
major minor #blocks name

   8 0 142577664 sda
   8 1 54508513 sda1
   8 2 61440592 sda2
   8 3 16386300 sda3
   8 4 0 sda4
   8 5 10241406 sda5
   8 16 1754664960 sdb
   8 17 0 sdb1
   8 18 488287642 sdb2
   8 19 488287642 sdb3
   8 21 987934 sdb5
   8 22 987966 sdb6
   8 23 987966 sdb7
   8 24 987966 sdb8
   8 25 939771 sdb9


    db1和db2上的/proc/partitions的确不同,原因就是在db1上创建了lvm而db2上没有去识别。
    那怎么删除这些dm设备呢?
    重启?肯定行,但是不重启怎么解决?
    直接编辑/proc/partitions并删除里面的dm-0等?肯定不行,因为/proc下是内存里面的映射,是无法删除的。
    其实了解了device mapper的管理就简单了。提供一个参考命令dmsetup,这是对dm设备管理的命令,可以使用remove_all参数删除所有失效了的dm设备。

[root@w-db1 oracleasm]# dmsetup remove_all
[root@w-db1 oracleasm]# cat /proc/partitions
major minor #blocks name
   8 0 142577664 sda
   8 1 54508513 sda1
   8 2 61440592 sda2
   8 3 16386300 sda3
   8 4 0 sda4
   8 5 10241406 sda5
   8 16 1754664960 sdb
   8 17 0 sdb1
   8 18 488287642 sdb2
   8 19 488287642 sdb3
   8 21 987934 sdb5
   8 22 987966 sdb6
   8 23 987966 sdb7
   8 24 987966 sdb8
   8 25 939771 sdb9
[root@w-db1 oracleasm]# /etc/init.d/oracleasm restart
dropping oracle asmlib disks: [ ok ]
shutting down the oracle asmlib driver: [ ok ]
initializing the oracle asmlib driver: [ ok ]
scanning the system for oracle asmlib disks: [ ok ]
[root@w-db1 oracleasm]#


    之后oracleasm服务可以很快的执行完毕。问题解决。


    插曲:在公司测试发现也/etc/init.d/oracleasm start无任何返回,通过sh -x /etc/init.d/oracleasm start发现。

case "$1" in
start
'[' false '!=' true ']'
exit 0


    通过查看/etc/init.d/oracleasm文件,发现这个false是一个$oracleasm_enabled变量,这个变量是从/etc/sysconfig/oracleasm中取的,默认是:

oracleasm_enabled=false


    将其修改为

oracleasm_enabled=true


    这样可以正常启动oracleasm服务了。但是在总署的时候我没有更改这个文件,难道是装oracle的哥们改的?我感觉他分析不出来这个位置啊!也可能他找到某些文档说明改此处了?
阅读(3192) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

cpaital2014-11-02 18:53:15

您好!您有oracleasm-2.0.5-1-ax3sp3-x86-64-2.6.18-194.1axs3.tar.gz这个包吗?能发给我一个吗?谢谢!!!bcapital@163.com

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图