oracle 12c 发布用很长一段时间了,虽然在近期部署了几套单实例oracle 12c,但一直都没有机会在生产环境实施12c rac,当然,既不能把现有的11g rac干掉,替换成12c rac,又没有新的项目找上来,但总不能等需要干活的时候再学习测试,未雨绸缪,正好从青龙那里化缘来一台配置不错的技嘉迷你pc,正好用它来做测试,安装上proxmox,虚拟出一堆系统,然后就有条件测试部署oracle 12c rac 。
Oracle实现负载均衡,完全不依赖于其它第三方工具,自己全部搞定,真是牛啊!部署oracle负载均衡高可用,实际上就是部署oracle RAC。在开始部署之前,得先做好规划。规划涉及到的主要有以下几个方面:
1、共享存储:是oracle RAC最关键的设施了,许多重要的数据文件、归档、仲裁等文件都存放于此,因此需要考虑可用性、容量、性能、成本等因素。在以前的多个项目中,我选用的存储多为外接阵列,双控制器、10000转2.5寸sas或者15000转3.5寸sas盘,插槽全部插满,不考虑短期扩容。
2、服务器:计算资源依托于服务器,也需要综合考虑可用性、性能及成本因素。在过去实施的一些项目中,一般采用1u机架式服务器,内存64G、多核心多线程cpu、双ssd盘(做raid容错)、四个网络接口卡。
3、网络规划:至少分两个网段,交换机独立(至少两个交换机),且为全千兆速率交换机,网线也要用机制六类线。说起这个网线,踩过一次坑,记忆深刻--一个网络color ticket的项目,服务器塞满了两个机柜,各类设施在当时都算是比较高端的。特别交代采购,一定要买机制网线。一帮人没日没夜的折腾,终于调试完毕,上线运行正常。可是没多久,oracle RAC集群就出现一会好一会坏的情形,登录查日志,查应用,都找不出问题,最后只好亲自去机房。前前后后瞧来瞧去,看各指示灯的显示情况;这一看还真发现问题:心跳交换机的端口有一个指示灯一会绿、一会黄的,肯定是速率不匹配的问题。再撸线,跟其它机制线不同啊!询问得知,采购的时候,供货商存活比计划采购数少了一条,于是就让机房给手工做了一条顶上去。换上新的机制六类网线,问题得以解决。
曾经写了一篇“Oracle 11g rac 生产环境部署详录”文章,发布在51cto博客,地址为https://blog.51cto.com/sery/1546346,欢迎参考。本篇文章,由于没有真实环境可以提供(不能拿已有的生产环境来搞,我怕老板来砍我),因此只能在虚拟环境下进行,不过这并不影响大家学习和借鉴,毕竟基本思路和方法是相同的,也利于做实验和测试。
准备基础环境
我此次进京,化缘来一个迷你主机,配置为cpu 8线程、1TB硬盘、12G内存,拿来做虚拟化非常合适,省电省地又安静。看看,是不是很小巧?
用此迷你主机虚拟化,创建2个虚拟机,安装oracle,另外创建一个虚拟机安装openfiler,做为oracle的共享存储。
◎主机虚拟化处理
强烈推荐使用proxmox,当然我自己也用。当前的版本是proxmox5.2,支持ceph超融合,巨好用,iso一键安装。官方网站(www.proxmox.com)下载镜像包,用ultraIso写入u盘,使其可以开机引导。如果u盘无法引导加载的情况,可再做一次ultraISO写入操作,写入格式选“raw”,如下图所示:
Proxmox安装过程很简单,也很容易完成,这里不再多说。Proxmox底层是基于debian的,在运行过程中,系统会执行apt-get update去做包更新,为避免出现“TASK ERROR: command 'apt-get update' failed: exit code 100”这样的错误,需要以ssh登录系统(debian),修改文件/etc/apt/sources.list.d/pve-enterprise.list ,把里边的唯一一行内容注释掉。当然,你也可以无视。
○多网卡处理
也许你的实验环境跟我一样,只有一个物理网卡,但要实现oracle rac至少得两个网卡,怎办?增加一块就好,具体方法如下:
1、proxmox管理界面选择“创建”,再选“Linux Bridge”,填写ip地址和掩码(网关等其它项不用填写)
2、使网络设置生效。Ssh登录debain,重启系统。再登录系统,用指令“ip add”,就可以看到刚创建的虚拟网络接口。如下图所示:
同样,在proxmox的web管理界面,也能看到这个效果。
○准备操作系统镜像文件
据我掌握,有两种方法可以上传操作系统ios镜像,一种是proxmox web管理界面,另一种是登录debian系统,进入镜像文件设定的目录,用wget一类的工具直接获取。
1、web界面上传ios文件(需要在本地电脑上下载好文件):
在几次实践中,总觉得这个方法麻烦,而且速度慢,现在一般不采用了。
2、登录系统直接下载,只下载一次,如果是机房服务器的话,比下载到本地再传上去,节省大量的时间。
root@pve99:~# cd /var/lib/vz/template/iso
root@pve99:/var/lib/vz/template/iso# wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
root@pve99:/var/lib/vz/template/iso# wget http://mirrors.cn99.com/centos/6.10/isos/x86_64/CentOS-6.10-x86_64-bin-DVD1.iso
下载完以后,到web管理界面检查一下,是否出现在项目中。
◎创建虚拟机
由于安装oracle rac需要的主机资源配置完全一样,因此可以先创建好一个虚拟机,并安装好系统(不要安装oracle哟),再以克隆方式生成第二个虚拟机,改一下网络设置即可投入使用。
○创建第一个虚拟机
Proxmox web管理界面点击“创建虚拟机”,给虚拟机设置一个容易辨识的名字,比如db107,然后进行下一步。
“操作系统”栏目下,选“使用cd/dvd光盘镜像文件(ISO)”,下来列表框选定预先上传的操作系统iso。如下图所示:
一下步分配磁盘(给32G)、cpu(4core)、内存(8G),创建完以后,还不能满足需求。需要再增加硬盘,用来做oracle的安装目录及创建交换分区;增加网络接口,用以oracle节点间做心跳检测。
1、给虚拟机增加硬盘:
管理界面选中刚创建的虚拟机,在选级联菜单“硬件”,点击按钮“添加”;
设置大小为50G,计划16G用于swap,其余为安装软件目录使用。
2、添加网络接口:
跟添加硬盘的步骤基本相同,只是到了“添加”这个下拉列表这里,选“网络设备”,具体选择如下图所示:
◎安装虚拟机操作系统
在创建好虚拟机之后,web管理界面启动虚拟机,然后再点击页面里的“>_控制台”按钮,即可进入操作系统安装界面,如图所示:
余下的步骤,跟常规的系统安装毫无差别,不再赘述。
◎安装共享存储openfiler
Openfiler跟proxmox一样,也是以iso形式提供的,同样,openfiler也需要至少两个磁盘,一个安装系统,一个做数据共享。规划好容量分配以后,就可以开始安装,安装过程很简单,不再啰嗦。
下图为我安装好的openfiler磁盘使用情况,其中容量大的那个磁盘用于iscsi共享。
接下来,开始配置存储。鼠标点“Service”项,把iscsi服务打开。
在空闲的那个大容量磁盘创建分区(Linux Physical Volume),接着创建卷组vg-data(命名自己定)及逻辑卷;创建逻辑卷时,Filesystem / Volume type(文件系统/卷类型)要从下拉列表框选定“block(ISCSI,FS,etc)”。完成这个操作以后,鼠标点右侧“iSCSI Targets”菜单,添加一个新的issci目标(Add new iSCSI Target),如果没有启动iscsi服务,则添加按钮(Add)是灰色的,无法进行下一步操作。
完成逻辑单元(LUN)映射,操作如下图:
因为是内部网络,因此可以不对访问做限制。到此,存储端配置完毕。
◎服务器挂接iscsi磁盘(需要在两个主机都操作)
只需简单几个步骤,即可在主机上挂接好iscsi共享磁盘,并且使之随系统开机启动。
○启动iscsi服务。Centos默认可能没有安装熟悉而好用的ntsysv,yum安装一个吧。执行ntsysv吧iscsi项选上,下次开机,iscsi服务就自动起来了。
○扫描iscsi目标,并记录下输出信息,指令如下:
[root@db115 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.35.107
172.16.35.107:3260,1 iqn.2006-01.com.openfiler:tsn.3ceca0a95110
需要的就是数字“1”后边加粗的部分信息。
○挂接目标磁盘,指令如下:
# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.3ceca0a95110 –l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110, portal: 172.16.35.107,3260] (multiple)
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110, portal: 172.16.35.107,3260] successful.
○磁盘挂接验证,两个主机都执行一次,指令如下:
[root@db115 ~]# fdisk –l
...……………………………省略…………………………………
Disk /dev/sdc: 51.2 GB, 51170508800 bytes, 99942400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdd: 122.9 GB, 122876329984 bytes, 23×××832 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sde: 10.2 GB, 10234101760 bytes, 19988480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
以此法共享出三个卷,并挂接在每一个节点上。
部署oracle 12c rac
分三个阶段:安装前的准备、安装软件、创建数据库。
◎安装前的准备
主要步骤有:准备交换分区及数据分区、设置相关主机名及 ip 映射、修改系统相关配置及依赖包、准备桌面环境。
◆准备交换分区,需要在每一个节点执行。
fdisk /dev/sdb
mkswap /dev/sdb1
swapon /dev/sdb1
fdisk操作过程中,分区代码选“82”,大小为18G。执行完上述操作后,用命令free –m检查是否生效。为了让交换分区随系统开机加载,需要修改文件/etc/fstab,加入的内容等描述完加数据分区以后,一并贴出。
更多内容,请参看专栏文章“负载均衡高手练成记”,猛戳此处即可直达。