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, 网络规划: 至少分两个网段, 交换机独立(至少两个交换机), 且为全千兆速率交换机, 网线也要用机制六类线. 说起这个网线, 踩过一次坑, 记忆深刻 -- 一个网络 ××× 的项目, 服务器塞满了两个机柜, 各类设施在当时都算是比较高端的. 特别交代采购, 一定要买机制网线. 一帮人没日没夜的折腾, 终于调试完毕, 上线运行正常. 可是没多久, oracle RAC 集群就出现一会好一会坏的情形, 登录查日志, 查应用, 都找不出问题, 最后只好亲自去机房. 前前后后瞧来瞧去, 看各指示灯的显示情况; 这一看还真发现问题: 心跳交换机的端口有一个指示灯一会绿, 一会黄的, 肯定是速率不匹配的问题. 再撸线, 跟其它机制线不同啊! 询问得知, 采购的时候, 供货商存活比计划采购数少了一条, 于是就让机房给手工做了一条顶上去. 换上新的机制六类网线, 问题得以解决.
曾经写了一篇 "Oracle 11g rac 生产环境部署详录" 文章, 发布在 51cto 博客, 地址为 http://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, 加入的内容等描述完加数据分区以后, 一并贴出.
更多内容, 请参看专栏文章 "负载均衡高手练成记", 猛戳此处即可直达 http://blog.51cto.com/cloumn/detail/6 .
来源: http://www.bubuko.com/infodetail-2685221.html