Virtualbox安装RAC的两个问题处理
配置共享磁盘用作OCR、DATA和ARCH
之前在Vmware中使用openfile软件来模拟共享存储,openfile模拟的存储还是比较真实的,前期需要在openfile中划盘挂盘,然后在系统中使用multipath多路径绑定共享盘就能开始安装rac了。模拟的真实带来的问题就是比较麻烦。
这次使用Virtualbox安装rac,就打算用oracle的oracleasm来配置共享存储。
配置过程如下:
1.规划共享盘
路径 大小 用途
/dev/sdb 5G vote(投票)
/dev/sdc 5G vote(投票)
/dev/sdd 5G vote(投票)
/dev/sde 15G arch(归档)
/dev/sdf 50G data(数据)
先在Virtualbox中在节点一添加五块硬盘大小如上
然后在Virtualbox中将这五块盘模式改为共享,然后在节点二中添加这五块盘
2.硬盘分区
因为存储都是共享的,所以分区操作在任一节点上操作即可(这一步我在第二次搭建rac的时候,创建完共享盘,这些盘就直接分好区了,不用进行这一步,反正只要能看到/dev/sdb1就行了,**一定要检查一下两边是否都分区成功**)
对每个盘进行分区,以/dev/sdb为例,输入命令fdisk /dev/sdb,依次输入n->p->(一路默认到底)->w。
# fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-43548671, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-43548671, default 43548671):
Using default value 43548671
Partition 1 of type Linux and of size 20.8 GiB is set
Command (m for help): w
The partition table has been altered!
以此为例。分别依次fdisk /dev/sdb、fdisk /dev/sdc、fdisk /dev/sdd、fdisk /dev/sde、fdisk /dev/sdf
分区结束后可在两个节点fdisk -l看到/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1、/dev/sdf1
3.下载安装oracleasm包,下载路径oracleasm下载路径
oracleasmlib-2.0.12-1.el7.x86_64.rpm
oracleasm-support-2.1.11-2.el7.x86_64.rpm
除了这两个安装包,还需要用系统镜像源先安装kmod-oracleasm-2.0.8-28.el7.x86_64.rpm
安装完成后还需要配置ASMLib驱动
[root@zydb1 ~]# /etc/init.d/oracleasm configure
不行的话就
[root@zydb1 ~]# /usr/sbin/oracleasm configure -i
不行的话就
[root@zydb1 ~]# oracleasm configure
好像得这样
[root@zydb1 ~]#oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
--第二次装的时候下面这几行没有输出,不影响。
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@zydb1 ~]# oracleasm enable --第二次做的时候提示没有这个命令,不影响
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
oracleasm初始化
[root@zydb1 ~]# oracleasm init
创建asm磁盘
[root@zydb1 rules.d]# oracleasm createdisk OCR1 /dev/sdb1
Device "/dev/sdb1" is already labeled for ASM disk "OCR01"
[root@zydb1 rules.d]# oracleasm createdisk OCR2 /dev/sdc1
Device "/dev/sdc1" is already labeled for ASM disk "OCR02"
[root@zydb1 rules.d]# oracleasm createdisk OCR3 /dev/sdd1
Device "/dev/sdd1" is already labeled for ASM disk "OCR03"
[root@zydb1 rules.d]# oracleasm createdisk DATA /dev/sde1
Device "/dev/sde1" is already labeled for ASM disk "DATA"
[root@zydb1 rules.d]# oracleasm createdisk ARCH /dev/sdf1
Device "/dev/sdf1" is already labeled for ASM disk "ARCH"
扫描列出asm磁盘
[root@zydb1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@zydb1 ~]# oracleasm listdisks
ARCH
DATA
OCR01
OCR02
OCR03
查看asm磁盘权限
[root@zydb1 disks]# ls
ARCH DATA OCR01 OCR02 OCR03
[root@zydb1 disks]# pwd
/dev/oracleasm/disks
[root@zydb1 disks]# ll
total 0
brw-rw---- 1 grid asmadmin 8, 65 Jul 25 18:31 ARCH
brw-rw---- 1 grid asmadmin 8, 81 Jul 25 18:31 DATA
brw-rw---- 1 grid asmadmin 8, 17 Jul 25 18:31 OCR01
brw-rw---- 1 grid asmadmin 8, 33 Jul 25 18:31 OCR02
brw-rw---- 1 grid asmadmin 8, 49 Jul 25 18:31 OCR03
如果权限不对需要给权限
chown grid:asmadmin /dev/sdb1
chown grid:asmadmin /dev/sdc1
chown grid:asmadmin /dev/sdd1
chown grid:asmadmin /dev/sde1
chown grid:asmadmin /dev/sdf1
如果配置错误需要修改asm磁盘(删除asm盘)
[root@zydb1 disks]# oracleasm deletedisk ARCH01
[root@zydb1 disks]# oracleasm deletedisk DATA01
[root@zydb1 disks]#oracleasm createdisk DATA /dev/sdf1
[root@zydb1 disks]#oracleasm createdisk ARCH /dev/sde1
**提示:**上面步骤除了创建asm磁盘之外都要在两个节点做,如果不做的话可能磁盘权限不对,如果不对也可以重新初始化一下asm,然后再重新扫一下盘就行了。
oracleasm命令详解
[root@zydb1 ~]# oracleasm
Usage: oracleasm [--exec-path=<exec_path>] <command> [ <args> ]
oracleasm --exec-path
oracleasm -h
oracleasm -V
The basic oracleasm commands are:
configure Configure the Oracle Linux ASMLib driver
init Load and initialize the ASMLib driver
exit Stop the ASMLib driver
scandisks Scan the system for Oracle ASMLib disks
status Display the status of the Oracle ASMLib driver
listdisks List known Oracle ASMLib disks
listiids List the iid files
deleteiids Delete the unused iid files
querydisk Determine if a disk belongs to Oracle ASMlib
createdisk Allocate a device for Oracle ASMLib use
deletedisk Return a device to the operating system
renamedisk Change the label of an Oracle ASMlib disk
update-driver Download the latest ASMLib driver
4.系统层面asm磁盘配置好后,即可同配置共享存储asm一样用grid软件的asmca创建oracle集群层面的asm磁盘。
Virtualbox中搭建RAC可能会出现ssh互信配置失败
故障描述:安装grid软件时,在两节点安装完ssh提示ssh配置成功,但是test的时候报错INS-06006
解决方法:手动配置互信(下面内容是抄的,亲测可用)
各节点生成Keys:
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ mkdir ~/.ssh
[oracle@rac1 ~]$ chmod 700 ~/.ssh
[oracle@rac1 ~]$ ssh-keygen -t rsa
[oracle@rac1 ~]$ ssh-keygen -t dsa
[root@rac2 ~]# su - oracle
[oracle@rac2 ~]$ mkdir ~/.ssh
[oracle@rac2 ~]$ chmod 700 ~/.ssh
[oracle@rac2 ~]$ ssh-keygen -t rsa
[oracle@rac2 ~]$ ssh-keygen -t dsa
在节点1上进行互信配置:
[oracle@rac1 ~]$ touch ~/.ssh/authorized_keys
[oracle@rac1 ~]$ cd ~/.ssh
[oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
[oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
[oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
[oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);
>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
在rac1把存储公钥信息的验证文件传送到rac2上
[oracle@rac1 .ssh]$ pwd
/home/oracle/.ssh
[oracle@rac1 .ssh]$ scp authorized_keys rac2:'/home/oracle/.ssh'
oracle@rac2's password:
authorized_keys 100% 1644 1.6KB/s 00:00
设置验证文件的权限
在每一个节点执行:
$ chmod 600 ~/.ssh/authorized_keys
启用用户一致性
在你要运行OUI的节点以oracle用户运行(这里选择rac1):将passphrase导入内存中,均执行该命令
[oracle@rac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
[oracle@rac1 .ssh]$ ssh-add
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
验证ssh配置是否正确
以oracle用户在所有节点分别执行:
ssh rac1 date
ssh rac2 date
ssh rac1-pri date
ssh rac2-pri date
各节点生成Keys:
[root@rac1 ~]# su -grid
[grid@rac1 ~]$ mkdir ~/.ssh
[grid@rac1 ~]$ chmod 700 ~/.ssh
[grid@rac1 ~]$ ssh-keygen -t rsa
[grid@rac1 ~]$ ssh-keygen -t dsa
[root@rac2 ~]# su -grid
[grid@rac2 ~]$ mkdir ~/.ssh
[grid@rac2 ~]$ chmod 700 ~/.ssh
[grid@rac2 ~]$ ssh-keygen -t rsa
[grid@rac2 ~]$ ssh-keygen -t dsa
在节点1上进行互信配置:
[grid@rac1 ~]$ touch ~/.ssh/authorized_keys
[grid@rac1 ~]$ cd ~/.ssh
[grid@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
[grid@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
[grid@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
[grid@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
在rac1把存储公钥信息的验证文件传送到rac2上
[grid@rac1 .ssh]$ pwd
/home/oracle/.ssh
[grid@rac1 .ssh]$ scp authorized_keysrac2:'/home/grid/.ssh'
grid@rac2's password:
authorized_keys 100% 1644 1.6KB/s 00:00
设置验证文件的权限
在每一个节点执行:
$ chmod 600 ~/.ssh/authorized_keys
启用用户一致性
在你要运行OUI的节点以grid用户运行(这里选择rac1):
[grid@rac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
[grid@rac1 .ssh]$ ssh-add
Identity added: /home/grid/.ssh/id_rsa (/home/grid/.ssh/id_rsa)
Identity added: /home/grid/.ssh/id_dsa (/home/grid/.ssh/id_dsa)
验证ssh配置是否正确
以oracle用户在所有节点分别执行:
ssh rac1 date
ssh rac2 date
ssh rac1-pri date
ssh rac2-pri date
如果不需要输入密码就可以输出时间,说明ssh验证配置成功。必须把以上命令在两个节点都运行,每一个命令在第一次执行的时候需要输入yes。
如果不运行这些命令,即使ssh验证已经配好,安装clusterware的时候也会出现错误:
The specified nodes are not clusterable
因为,配好ssh后,还需要在第一次访问时输入yes,才算是真正的无障碍访问其他服务器
-----------------------------------
©著作权归作者所有:来自51CTO博客作者wx5caecf2ed0645的原创作品,请联系作者获取转载授权,否则将追究法律责任
Virtualbox环境中安装Oracle 11gr2 RAC(ASM)
https://blog.51cto.com/u_14286115/3328014
手动配置完两节点互信后,重新在grid软件中setup一下安装成功后即可test成功。