今天闲来没事部署一下Oracle RAC
在我们的aCloud中已经内置了OracleRAC的引导……这个不用我说大家也知道。
存储方式根据需要,我们选择【虚拟共享盘】
根据规划配置虚拟机的名称,操作系统、处理器和内存,同时添加一张网卡,把eth0网卡连接到业务网段的网络交换机上,eth1网卡连接到心跳网络的交换机上,两个网卡的网络不能在同一网段。
编辑虚拟机配置具体关注:按照拓扑图添加网卡并连接到交换机、选择系统盘、开启大页内存、勾选主动启动时自动运行虚拟机、标记为重要虚拟机、使用FastIO磁盘;其实后面的几项平台都已经帮助调好了。 进入系统安装界面,装个linux,除了需要手动分区之外(/、/boot、swap),其他的默认安装就好了。系统安装完成之后,必需要安装性能优化工具,性能优化工具安装完成之后关闭主机才能进入下一步,因为下一步是克隆一台组RAC,这里就不具体展示了。 具体说一下配置共享盘这里: A:仲裁盘,日志盘和数据盘的大小必须不一样,且仲裁盘单个盘大小要小于日志盘单个盘大小,日志盘单个盘大小要小于数据盘的单个盘大小(并非Oracle产品的要求,是因为某公司Oracle RAC自动安装脚本的判断逻辑所致)。 B:1、asm数据盘的数量建议为8块,每块盘的大小最小建议为100GB,若数据量远远小于8*100GB的大小,在用户介意磁盘空间的情况下,可以适当的减少磁盘数量,但不能少于3块(即3*100G),而且这样会降低IO的离散。 2、单块asm数据盘的大小要大于单块仲裁盘、日志盘的大小。
这里由于我是实验室环境,所以就按照最小的标准来建盘:
克隆完成之后,即可进入控制台进行RAC搭建
进入系统首先修改hostname:vi/etc/hostname
然后给两个节点的四张网卡配置IP地址:通过界面就可以完成,需要注意的是心跳网口一定要开启巨帧支持:
然后建立一个存放Oracle文件的目录:mkdir /data
将Oracle RAC安装文件丢到目录里,这里要求管理PC连上RAC双机,管理网和业务网的关系这里也不讲了……
RAC01要放上面四个文件,RAC02只需要放第一个就可以了,解压加权 [root@rac001 data]# tar-xvf oracle_rac_install.tar [root@rac001 data]# chmod +x ./*.sh [root@rac002 data]# tar -xvforacle_rac_install.tar [root@rac002 data]# chmod +x ./*.sh
配置自动化安装脚本:vi /data/config.ini 的一下几项
执行自动化安装脚本,然后去睡觉。 [root@rac001 data]# bash-x install_rac.sh | tee rac.log
自动化安装脚本文件只需要在RAC01配置和执行即可。
——)——)——)——)——)——)——)——)——)——)——)——)——)——)——)————)——)——)——)——)——)——)——)——)——)——)——)——)——)——)
睡醒发现界面卡在这个地方
明明提示是30min等待,可是我默默的等待了一个小时之后发现并没有什么进展,于是赶紧打开log一查才发现:
我的swap分区没了?????可是我明明记得我在安装系统的时候有挂载swap分区啊???
在我一筹莫展的时候,我把上图发给了同事,然后收到了疯狂的嘲笑——你为什么把swap分区挂载成了文件系统/swap ???? 这界面对新人真的很不友好啊喂!挂载分区还要自己手动输入,一不小心就多输了一个/,就GG了…… 不过明白了问题所在就可以开始找方法解决了: swap即交换分区,类似于windows虚拟内存功能,就是在硬盘上分配出一块空间作为虚拟内存来使用。通常swap都是在装系统硬盘时搞定,这里说一下如何在安装好的linux下增加swap交换分区。 可以有两种方法来增加swap分区,一种是将新的分区来作为swap,另一种是在磁盘中创建一个大的文件来作swap。
由于我们已经有这个分区/dev/vda2,所以我们采用第一种:
首先把这个分区取消挂载, umount /dev/vda2
使用mkswap命令将/dev/vda2设置为swapspace:mkswap /dev/vda2
这里我有点儿心急了,敲完之后就去看swap是没有的 使用swapon挂载swapspace:swapon /dev/vda2
现在swap有了,但是由于之前的错误配置,需要在/etc/fstab里设置开机自动挂载swap
记得保存哦~ 重新执行我们的oracle RAC自动化安装脚本文件,可以看到此项目完成。
再等一个小时……出现了久违的成功。
当脚本执行完之后,我们需要进一步确认安装是否成功,通过如下脚本检查: [root@rac01 data]# su - oracle [oracle@rac01 ~]$ srvctl status database -d racdb Instance racdb1 is runningon node rac01 Instance racdb2 is runningon node rac02
|