2017年10月份接到一个负责淮安洪泽项目经理求助,说投标时候误把oracle rac服务写在标书里面,现在硬件设备网络已经搭建完成,然后客户要求安装win2008下面搭建oracle rac,负责的项目经理傻眼了,没有人会处理,于是通过层层关系联系上我,我当时也是一头雾水,问现场项目经理具体要求,他说不出一二,说按照我的想法来做。我也无语,我也是经过与业务开发公司了解部分内容,利用周末两天完成搭建,以下把具体部署步骤分享出来。
第1章 引言
1.1 什么是 RAC
RAC 就是 real application clusters 的缩写,跟 rack 的读音同
Oracle Real Application Clusters (RAC)可以支持 24 x 7 有效的数据库应用系
统,您可以在由低成本的服务器构成的高可用性系统上自由部署您的应用,而无需修改您的应用程序,使用 RAC 无需再为成本而牺牲性能和可靠性
1.2 RAC 关键特性
1.2.1 高可用性
Oracle Real Application Clusters 提供一个高性能低成本的应用平台,支持所
有类型的应用系统,无论是事务处理型应用还是分析型应用。所有应用共享同样的服务器和存储资源。出现任何的服务器或磁盘故障,系统会自动重新接管发生故障的功能。这些对前端用户的完全透明的。同样,如果您需要增加服务器或改变其他组件的配置也不会影响到应用系统
1.2.2 高性能
Oracle Real Application Clusters 保持着 TPC-C 的记录,达到每分钟 118 万个事务的处理能力,在 3,000 GB 的 TPC-H 数据仓库 Benchmark 测试中,Oracle RAC 同样保持性价比的领先地位,保证我们的用户能够达到更好更快的 ROI
1.3 Oracle 11gR2 RAC 简介
Oracle 11gR2 引入了很多新特性,Oracle 11g R2 将自动存储管理 (ASM) 和
Oracle Clusterware 集成在 Oracle Grid Infrastructure 中。Oracle ASM 和 Oracle
1 / 57
Database 11gR2 提供了较以前版本更为增强的存储解决方案,该解决方案能够在 ASM 上存储 Oracle Clusterware 文件,即 Oracle 集群注册表 (OCR) 和表决文件(VF,又称为表决磁盘)。这一特性使 ASM 能够提供一个统一的存储解决方案,无需使用第三方卷管理器或集群文件系统即可存储集群件和数据库的所有数据
Oracle 11gR2 中引入了 SCAN(single client access name),即简单客户端连接名,一个方便客户端连接的接口;在 Oracle 11gR2 之前,client 链接数据库的时候要用 vip,假如 cluster 有 4 个节点,那么客户端的 tnsnames.ora 中就对应有四个主机 vip 的一个连接串,如果 cluster 增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个 tnsnames.ora。SCAN 简化了客户端连接,客户端连接的时候只需要知道这个名称,并连接即可, 每个 SCAN VIP 对应一个 scan listener,cluster 内部的 service 在每个 scan listener 上都有注册,scan listener 接受客户端的请求,并转发到不同的 Local listener 中去,由 local 的 listener 提供服务给客户端
此外,安装 GRID 的过程也简化了很多,内核参数的设置可保证安装的最低设置,直接使用 ASM 存储
2 / 57
第2章 总体规划
2.1 服务器规划
1. 建议使用两台硬件配置一模一样的服务器来作为 RAC 环境的两个物理节点
2. 服务器至少需要配置两块物理网卡
3. 服务器规划表:
节点 | 主机名 | 本地磁盘大小 | 操作系统 | 内存大小 | 虚拟内存大小 |
节点 1 | RAC1 | 1.8T | Windows_Server_2008_R2_X64 | 16G | 32~64G |
节点 2 | RAC2 | 1.8T | Windows_Server_2008_R2_X64 | 16G | 32~64G |
2.2 网络规划
1. 网络规划表:
节点名称 | 公共 IP 地址 | 虚拟 IP 地址 | 心跳 IP 地址 | SCAN 名称 | SCAN IP 地址 |
RAC1 | 10.83.192.75 | 10.83.192.77 | 2.2.2.1 | scan-cluster | 10.83.192.72 |
RAC2 | 10.83.192.76 | 10.83.192.79 | 2.2.2.2 |
2. 其中虚拟 IP 地址和 SCAN IP 地址必须为能够使用但未被其他设备配占用的地址,并且需要与公共 IP 地址在同一个网段
3. 公共 IP 地址和心跳 IP 地址需要设置在物理网卡上,并且需要将两台服务器上配置心跳地址的网卡通过一根网线直接连接起来
2.3 存储规划
1. 本次安装环境默认存储已经部署完成,并且操作系统已经能够识别出来
2. 存储共分配了 2000G 的空间,分成了 5 个磁盘,每个磁盘大小为 400G
3. 存储规划表
Logical Driver | LUN | SIZE | 对应服务器磁盘 | 作用 |
ocr | 1 | 400G | 磁盘 1 | 表决磁盘,磁盘组名为 OCR |
data1 | 2 | 400G | 磁盘 2 | 数据库共享存储区 |
data2 | 3 | 400G | 磁盘 3 | 磁盘组名为 DATA |
data3 | 4 | 400G | 磁盘 4 | |
fra | 5 | 400G | 磁盘 5 | 闪回配置区,磁盘组名为 FRA |
2.4 数据库规划
2.4.1 软件规划
软件组件 | 操作系统用户 | 软件安装目录位置 |
win64_11gR2_grid | administrator | D:\app\administrator D:\app\11.2.0\grid |
win64_11gR2_database | administrator | D:\app\administrator D:\app\administrator\product\11.2.0\dbhome_1 |
2.4.2 数据库配置
1. 各节点安装数据库配置表:
节点名称 | 实例名称 | 数据库名称 | 表决磁盘组名 | 数据库共享存储区磁盘组名 | 恢复区磁盘组名 |
RAC1 | ORCL1 | ORCL | 名称:OCR 大小:400G | 名称:DATA 大小:1200G | 名称:FRA 大小:400G |
RAC2 | ORCL2 |
2. grid 及 database 软件的安装操作全部都在 RAC1 服务器上进行,RAC2 服务
器上的软件都是通过 RAC1 通过局域网共享来完成安装
2.5 网络拓扑规划
第3章 环境配置
3.1 操作系统配置
3.1.1 修改主机名、统一用户名密码
1. 分别更改两台服务器的主机名为 RAC1 和 RAC2,需要重启后生效
2. 两台服务器统一使用 administrator 用户,并且保持密码一致
3.1.2 关闭防火墙、配置 DEP 和 UAC
1. 分别关闭服务器 RAC1 和 RAC2 的防火墙
2. 分别配置两台服务器上的数据执行保护(DEP),选择‘仅为基本 windows
程序和服务启用’,需要重启后才能生效(可配置完下一步后一起重启)
3. 分别配置两台服务器上的 UAC,需要重启后生效
3.1.3 修改虚拟内存
1. 由于服务器的内存为 16G,按照 Oracle 的官方文档,虚拟内存至少为实际内存的 2 倍,此处选择在本地磁盘一个较大的空白分区(E 盘)中划分了虚拟内存,取值范围:32G~64G,即初始值:32768MB,最大值:65536MB
2. 设置方法如下图所示,需要重启后生效
3.1.4 修改注册表
1. 因为在网络调试时,Windows 的“媒体感知”功能会检测出本机和局域网设备没有正常连通,接着可能就会禁用捆绑在网卡上的某些网络协议,其中就包括 TCP/IP 协议。由于 TCP/IP 协议被禁用了,这样该 TCP/IP 应用程序就无法进行调试了,因此需要禁用媒体感知功能
2. 设置方法:开始 → 运行 → regedit → HKEY_LOCAL_MACHINE →
SYSTEM → CurrentControlSet → Services → Tcpip → Parameters → 新建一个 DWORD 值,命名为 DisableDHCPMediaSense 值为 1,如下图所示,需要重启后生效
3.2 网络配置
3.2.1 添加 IP 地址、修改网卡名
1. 按照网络规划中的表格设置服务器网卡的 IP 地址,下面以 RAC1 服务器为
例,设置后截图如下:
n 公共 IP 地址
n 私有 IP 地址(心跳地址)
2. 更改两台服务器的两个网卡名称分别为 pub 和 pri,以区分公共 IP 地址和私有 IP 地址(心跳地址),更改后截图如下:
3.2.2 修改网卡优先级
1. 修改两台服务器网卡的优先级,将 pub 网卡的优先级设置高于 pri 网卡,以便查找网络时优先查找公共 IP 地址,修改方法详见下面几步
2. 开启菜单栏
3. 打开高级设置
4. 将 pub 位置调整到 pri 前面,并且将 IPV6 协议去掉(注意 pri 同样需要修改),将 IPV4 协议调整到 IPV6 之前,更改后的截图如下:
3.2.3 修改 hosts 文件
1. 修改两台服务器的 hosts 文件,将需要设置的 IP 地址及相应的主机名添加进去,两台服务器的 hosts 文件必须一致,
2. hosts 文件的路径为:C:\WINDOWS\System32\drivers\etc\hosts,修改后的截图如下:
注意:IP 地址与主机名之间不是空格,而是按 tab 键
3.2.4 测试网络连通性
1. hosts 文件修改完成后可使用 ping 命令来验证设置是否正确
2. 其中虚拟 IP 地址和 SCAN IP 地址此时是 ping 不通的,主要查看的是对应的 IP 是否正确
3.3 存储配置
3.3.1 磁盘规划
1. 磁盘规划如下表所示:
Logical Driver | LUN | SIZE | 对应服务器磁盘 | 作用 |
ocr | 1 | 400G | 磁盘 1 | 表决磁盘,磁盘组名为 OCR |
data1 | 2 | 400G | 磁盘 2 | 数据库共享存储区 |
data2 | 3 | 400G | 磁盘 3 | 磁盘组名为 DATA |
data3 | 4 | 400G | 磁盘 4 | |
fra | 5 | 400G | 磁盘 5 | 闪回配置区,磁盘组名为 FRA |
2. 需要检查一下上表中的磁盘编号与 LUN 编号是否对应,如下图所示:注意:
1) 这里不是说一定要磁盘 1 对 LUN1,LUN 编号也可能是从 0 开始算起,
那样的话就是 LUN0 对磁盘 1
2) 一定要确保在 RAC1 和 RAC2 服务器上看到的编号对应都一致
3.3.2 磁盘初始化
1. 分别在 RAC1 和 RAC2 服务器上将所有磁盘设置成联机状态,如下图所示:
2. 磁盘初始化操作在 RAC1 服务器上进行
3. 将 5 个磁盘全部新建简单卷,注意不要分配盘符和格式化磁盘
1) 选择磁盘 1,单击右键选择新建简单卷,打开向导,点击下一步
2) 按照默认设置,点击下一步
3) 选择‘不分配驱动器号或驱动器路径’,点击下一步
4) 选择‘不要格式化这个卷’,点击下一步
5) 点击‘完成’即可结束向导
6) 其他 4 个磁盘均按上述操作完成简单卷的建立,全部建完后的截图如下:
7) 此时登录到 RAC2 服务器,打开磁盘管理,选择‘重新扫描磁盘’
8) 扫描完成后,磁盘格式已经自动变成 RAW,但是系统默认为每个磁盘增
加了驱动器号
9) 此时需要删除磁盘 1 到磁盘 5 的驱动器号,选择磁盘 1,单击右键打开
‘更改驱动器号和路径’
10) 选中驱动器号 H,单击删除
11) 确认删除
12) 其他 4 个磁盘按照上述操作删除各自的驱动器号,删除完成后,RAC2 服务器的截图如下:
4. 分别在 RAC1 和 RAC2 服务器上开启‘自动装载所有新卷’功能,下图以
RAC1 服务器为例,RAC2 操作类似
3.3.3 装载空白 NTFS 文件夹
1. 分别在 RAC1 和 RAC2 服务器上的 C 盘新建一个空文件夹,命名为 asm,然后在 asm 文件夹中再新建 5 个空文件夹,名称分为 ocr、data1、data2,、data3、 fra
2. 分别将已经初始化的 5 个磁盘按顺序挂载到上述空文件夹内,两台服务器均
要做此操作,操作步骤:
1) 选择磁盘 1,右键打开‘更改驱动器号和路径’选项
2) 选择装载 ocr 文件夹
3) 选择完成后截图如下,点击确认即可完成
4) 按照上述步骤装载剩余的文件夹,注意对应顺序,装载完成后 asm 文件
夹内容显示如下:
5) 在 RAC2 服务器上重复上述 4 歩操作,同样需要注意装载文件夹的顺序
3.3.4 共享磁盘
1. 分别在 RAC1 和 RAC2 服务器上开启 C 盘和 D 盘共享,并且将 everyone 权
限设置为完全控制,步骤如下:
1) 单击右键选择‘高级共享’
2) 将 everyone 用户的权限选择成完全控制
3) 将 D 盘也按照上述操作开启共享,设置完成后截图如下:
4) 在 RAC2 服务器上重复上述 3 歩操作
2. 重启两台服务器,在两个节点重新扫描磁盘,确保磁盘 1~5 在 RAC1 和 RAC2 服务器上均可见,并确保任何一个分区均未分配驱动器号,如果出现驱动器号必须删除
第4章 RAC 安装
4.1 安装前配置检查
4.1.1 时间同步
1. 查看两台服务器的 Server、Workstation 服务是否启动,将其设为自动启动
2. 在 RAC1 服务器上运行命令:net time \\rac1 (查看 RAC1 的当前时间)
3. 在 RAC2 服务器上运行命令:net time \\rac1 /set (设置 RAC2 时间与 RAC1 同
步)
4.1.2 共享互访测试
1. 在 RAC1 服务器上运行命令:net use \\rac2\C$ 和 net use \\rac2\D$
2. 在 RAC2 服务器上运行命令:net use \\rac1\C$ 和 net use \\rac1\D$
4.1.3 数据库软件检查
1. 拷贝需要安装的软件到 RAC1 服务器的 D 盘的 oraclesoft 文件夹中并解压到当前目录
2. 注意 win64_11gR2_database 由两个压缩文件组成,必须将两个压缩文件解压到同一个目录下,否则在安装数据库时会报错
4.2 安装 grid 集群软件
1. 进入 grid 软件目录,双击 setup 开始执行安装程序,此处选择‘安装和配置集群的网络基础结构’
2. 选择‘高级安装’
3. 选择安装语言
4. 填写集群名称和 SCAN 名称,必须填写 hosts 文件中 SCAN IP 对应的主机名
5. 添加 rac2 节点
6. rac2 节点添加完成后截图
7. 更改网络接口类型,默认选项如果不对,需要手动更改
8. 此处选择‘自动存储管理(ASM)’
9. 点击‘标记磁盘’按钮,来添加 ASM 磁盘
10. 在此界面可以看到之前已经初始化好的 5 块磁盘,因为此处设置的是 OCR
磁盘组,根据存储规划,需要选择第一块磁盘,并且标记为 OCR
11. 查看磁盘情况
12. 完场添加
13. 选中刚添加的磁盘
14. 添加 ASM 口令
15. 由于设置的密码不符合标准,需要确认来强制使用
16. 此处选择‘不使用 IPMI’
17. 选择软件相关目录,根据规划要求,此处选择 D 盘
18. 先决条件检查
19. 如果检查通过,则出现概要,如果提示失败,会有相应的提示,请根据提示
检查上一章节中的设置是否存在问题
20. 开始安装后,会在下图中红框标注的位置(网格基础结构配置)停顿约 20 分钟,此处也是 grid 安装成功与否的关键所在,如果此处出现问题,则需要卸载 grid,并检查之前所有的设置,然后再次尝试安装,直到显示成功为止
21. 安装完成截图
4.3 clusterware 安装校验
grid 安装完成后,如果安装成功,可在 dos 环境下通过 crs_stat –t –v 命令查看集群启动了哪些服务:
4.4 安装 database 数据库软件
1. 进入 database 目录,双击 setup 开始安装 database 数据库软件,此处去掉‘接收安全更新’选项
2. 确认跳过‘指定电子邮件地址’
3. 选择‘仅安装数据库软件’
4. 查看节点名称
5. 选择安装语言
6. 选择安装企业版,并且勾选所有组建
7. 选择安装路径为 D 盘
8. 先决条件检查
9. 安装概要
10. 安装到此处时,执行远程安装 RAC2 节点的数据库,此时等待时间会很长,请耐心等待
11. 安装结束时会提示到 RAC2 节点上执行 selecthome.bat 脚本,用于在 RAC2
节点上激活 Oracle 相关的产品
12. RAC2 节点上 selecthome.bat 脚本的位置如下图所示,双击执行后会弹出一个 dos 窗口,执行时间很短
4.5 创建 ASM 磁盘组
1. 运行中输入 asmca 命令,打开 ASM 配置界面,执行命令后需要等待 10 秒钟
才能弹出配置界面
2.
在磁盘组选项卡中点击新建
3. 单击‘在磁盘上加载标记’
4. 选择添加磁盘
5. 根据存储规划,选择磁盘 2 到磁盘 4 为数据文件磁盘,并标记成 DATA
6. 查看选择的磁盘,并完场添加
7. 勾选添加的磁盘,命名磁盘组名称为 DATA
8. 创建磁盘组过程
9. DATA 磁盘组创建成功
10. 按照相同的方法创建 FRA 磁盘组
11. 全部添加完成后,会看到之前规划的三个磁盘组,确认无误后,退出即可完场磁盘组的添加
4.6 使用 DBCA 创建数据库
1. 在运行中输入 dbca 命令,开始创建数据库
2. 选择创建‘RAC 集群数据库’
3. 选择‘创建数据库’
4. 数据库模板选择‘一般用途和事物处理’
5. 填写数据库名称和实例名称为 orcl,将 rac1 和 rac2 两个节点全部选中
6. 安装人选项即可
7. 设置管理员用户口令
8. 选择数据区路径为:+DATA,即 DATA 磁盘组
9. 输入之前设置的 ASM 口令
10. 指定快速恢复区的路径(即 FRA 磁盘组)和大小,恢复区大小不超过 FRA
磁盘组大小即可
11. 勾选‘示例方案’
12. 设置内存管理方式、字符集、连接模式等,按照默认设置即可
13. 数据库存储概要
14. 勾选‘创建数据库’
15. 创建数据库概要,从概要中可以看到数据库名、实例名等相关信息
16. 开始安装数据库
17. 安装成功截图
4.7 RAC 服务
4.7.1 RAC1 节点服务
4.7.2 RAC2 节点服务
云无止境在这个项目遇到坑,一开始选择数据库版本11.2.0.1,后面装的时候一直不 成功,后来换11.2.0.4就可以了。所以遇到这样项目时候一定要选择11.2.0.4.