Oracle 11g RAC 安装心得

我是在用Vsphere 虚拟机Redhat Linux 5上安装 ASM+Oracle 11g (32bit) RAC 的。

由于安装过程中遇到一些问题,现在记录下来:

1、首先新建一个虚拟机,添加两个网卡(一个公有网卡驱动,一个私有网卡驱动),5块硬盘(1块作为系统盘,4块盘供ASM使用)

2、复制刚才新建的虚拟机,然后复制成第二个虚拟机,删除后4块硬盘,然后再将第一个节点服务器的后4块硬盘作为已经存在的磁盘添加进来,首先实现物理上的共享。

    此时,如果打开第一个节点服务器后,再打开第二个节点时,会报错(Failed to lock the file),因为两个节点服务器共用了同一个磁盘,虚拟机会在虚拟机文件夹下面成成一个.lck文件,这个文件如果能删除的话,那删掉后应该可以打开第二个节点服务器,如果该文件删除不了,则可以在两个节点服务器的虚拟机文件(.vmx)中添加<scsi1.sharedBus = "virtual">, scsi后面的数字取决于添加磁盘时选择的scsi驱动号。然后可以同时打开两个节点服务器。

3、为了将块设备提供为ASM来使用,需要使用到ASMlib和UDEV工具,oracle 11g R1之前,需要将块设备(b开头)转换为字符设备(c开头),才能提供给oracle ASM使用,此时使用udev工具设置多路径磁盘共享需要修改的文件是/etc/udev/rules.d/60-raw.rules,oracle 11g R2之后,ASM可以直接使用块设备,这样需要修改的文件是/etc/udev/rules.d/99-oracle-asmdevices.rules,具体文件内容,可以百度,其中里面需要用到块设备的UUID(唯一规范标识名),获得设备UUID首先需要在虚拟机文件中添加<disk.EnableUUID = "TRUE"> 。

LINUX 查看分区UUID的两种方法
(1)、sudo blkid
(2)、ls -l /dev/disk/by-uuid

LINUX 获取UUID的命令
/sbin/scsi_id -g -u -s /block/sdb 
这个命令只能获得块设备的UUID,如果从sdb已经格式化成了sdb1了,那就不能用此命令得到uuid了

[root@rac10g2 rules.d]# scsi_id -g -u -s /block/sdb
36000c29110f72d8d649c65530367c034
[root@rac10g2 rules.d]# scsi_id -g -u -s /block/sdc
36000c2903cee987caea448d18669ac85
[root@rac10g2 rules.d]# scsi_id -g -u -s /block/sde
36000c292e4dee3baf19de2eace1da3f0
[root@rac10g2 rules.d]# scsi_id -g -u -s /block/sdd
36000c29f9f59338a6897d54ec3319427
[root@rac10g2 rules.d]# 

4、通过上述方法设置后,可以在/dev下面直接看到asm*的磁盘,然后利用/etc/init.d/oracleasm createdisk  DISK_NAME  candidate_disk

要使用上面创建命令,需要安装oracleasm开头的三个包(具体安装和配置见oracle官方文档或百度)

5、第一个节点创建了ASM磁盘后,第二个节点直接执行/etc/init.d/oracleasm scandisks   /etc/init.d/oracleasm listdisks  如果能顺利看到第一个节点创建的ASM磁盘,则磁盘逻辑上共享就成功了。

6、如果要想将逻辑卷组来创建ASM磁盘,需要经历pvcreate——>vgcreate——>lvcreate过程,如果最后又不想使用逻辑卷,还是直接将块设备映射成ASM盘的话, 需要将块设备经历lvremove——>vgremove——>pvremove过程,如果pvremove不成功,需要先清除磁盘磁头信息,使用dd  if=/dev/zero bs=1024 count=10000 of=/dev/sdb1(关于dd命令,可以百度)

7、如果不适用逻辑卷来扩大ASM磁盘容量,可以通过建立Disk Group 来将多个块设备建立成一个ASM共享盘,关于asm磁盘的视图有v$asm_disk,v$asm_diskgroup

8、RAC安装好后,可以执行以下命令查看RAC健康状态:

#su – grid

$olsnodes  确认运行的节点

$crsctl check crs 检查CRS运行状态

$crs_stat -t

# su – oracle

$srvctl status database –d moddb  确认运行和未运行的instance

9、在RAC数据库中添加service有两种方法:srvctl add service和dbms_service.create_service 来创建,然后再更改service_names参数,重启数据库后,就可以运行lsnrctl status查看到service的状态。

10、关于监听,可以通过netca来创建新的监听,监听分为静态注册和动态注册两种,如果静态注册,需要修改ASM的$ORACLE_HOME/network/admin/listener.ora文件,添加SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = rac11g)
      (ORACLE_HOME = /grid/11.2.0)
      (PROGRAM = extproc)
      )
      (SID_DESC =
      (GLOBAL_DBNAME =ocp)
      (ORACLE_HOME = /grid/11.2.0)
      (SID_NAME =rac11g)
      )
      )

该文件表明数据库是单实例的,实例名为rac11g,向外提供了服务ocp(需要使用第9步方法创建service)

如果动态注册,oracle会自己根据instance_name和service_name来自动注册监听。

如何区分动态注册和静态注册,运行lsnrctl status查看,如果未ready 标明动态注册,UNKNOWN 则为静态注册。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值