周末送资料 | Oracle 高可用性(RAC)技术解决方案及实现过程
目录
一、基础知识介绍
1. RAC 是什么
2. RAC 的优缺点
3. Oracle RAC 原理
二、 RAID 存储技术介绍
三、 RAC 系统结构设计
1. RAC 系统拓扑结构基本如下图所示:
2. 主机操作系统系统
1) 用户组规划
2) 用户规划
3) 主机文件系统规划
3. 存储规划
4. 数据库 RAC 环境数据库规划
1) RAC 环境信息
2) Oracle RAC 软件组件
3) Oracle RAC 网络规划
4) Oracle 用户组信息
5) 表空间规划
6) 数据库备份规划
四、 Oracle 数据库及 RAC 配置清单
1. 硬件清单
2. 软件清单
3. 网络硬件需求
4. 网络规划
5. 系统安装规划
6. 系统环境需求
7. 查所需软件包
五、 安装工作
1. 修改主机名称,在所有节点执行;
2. 创建用户和组
3. 修改用户密码
4. 修改 gird 用户的环境变量
5. 修改 oracle 用户的环境变量
6. 创建软件目录
7. 修改系统参数
8. 配置用户等效性
9. 配置 NTPD 服务
10. 安装并配置 ASM 驱动
11. 安装 cvuqdisk 软件包
12. 安装 Grid 前检查
13. 安装 Grid Infrastructure
14. 确认群集安装成功
15. 创建 asm 磁盘组
16. 安装 oracle 软件
17. 创建数据库
18. 数据库管理工作
一、 基础知识介绍
1. RAC 是什么
RAC,全称 real application clusters,译为“实时应用集群” , 是 Oracle 新版数据库中采用的一项新技术,是高可用性的一种,也是 Oracle 数据库支持网格计算环境的核心技术。
2. RAC 的优缺点
优点:
Oracle RAC 主要支持 Oracle9i、10g、11g 版本,可以支持 24 x 7 有效的数据库应用系统, 在低成本服务器上构建高可用性数据库系统, 并且自由部署应用,无需修改代码。在 Oracle RAC 环境下,Oracle 集成提供了集群软件和存储管理软件, 为用户降低了应用成本。 当应用规模需要扩充时, 用户可以按需扩展系统,以保证系统的性能。
(1)多节点负载均衡;
(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
(5)节约硬件成本,可以用多个廉价 PC 服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
缺点:
(1)相对单机,管理更复杂,要求更高;
(2)可能会增加软件成本(如果使用高配置的 pc 服务器, Oracle 一般按照 CPU个数收费)。
3. Oracle RAC 原理
在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时所有服务器上的 OS 都应该是同一类 OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的 listener 后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的 RAC 组件处理也可能会发送给另外一台服务器的 RAC 组件处理,处理完请求后,RAC 会通过集群软件来访问共享存储设备.逻辑结构上看:
每一个参加集群的节点有一个独立的 instance,这些 instance 访问同一个数据库。
每一个节点的 linstance 都有自己的 SGA。
每一个节点的 linstance 都有自己的 background process。
每一个节点的 linstance 都有自己的 redo logs。
每一个节点的 instance 都有自己的 undo 表空间。
所有节点都共享一份 datafiles 和 controlfiles。
三类 Resource:
VIP - 虚拟 IP 地址(Virtual IP)
OCR - Oracle Cluster Registry(集群注册文件),记录每个节点的相关信息
Voting Disk,仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。
二、 RAID 存储技术介绍
独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘) ,从而提供比单个硬盘更高的存储性能与数据备份能力的技术。RAID 特色是 N 块硬盘同时读取速度加快及提供容错性。可以将 RAID 分为不同级别, 级别并不代表技术高低, 选择哪一种 RAID产品纯视用户的操作环境及应用而定,与级别高低没有必然关系。
RAID 0 :无差错控制的带区组
要实现 RAID0 必须要有两个以上硬盘驱动器,数据并不是保存在一个硬盘上,而是分成数据块保存在不同驱动器上。因为将数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。它的缺点是它没有数据差错控制,如果一个驱动器中的数据发生错误,即使其它盘上的数据正确也无济于事了。不应该将它用于对数据稳定性高的场合。在所有的级别中,RAID 0 的速度是最快的。但是 RAID0 没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
RAID 1 :镜象结构
对于使用这种 RAID1 结构的设备来说, RAID 控制器必须能够同时对两个盘进行读操作和对两个镜象盘进行写操作。镜象结构是在一组盘出现问题时,可以使用镜象磁盘,提高系统的容错能力。每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同。 当您的系统需要极高的可靠性时, 如进行数据统计, 那么使用 RAID1比较合适。 而且 RAID1 技术支持“热替换”, 即不断电的情况下对故障磁盘进行更换, 更换完毕只要从镜像盘上恢复数据即可。 当主硬盘损坏时,镜像硬盘就可以代替主硬盘工作。镜像硬盘相当于一个备份盘,这种硬盘模式的安全性是非常高的,RAID 1 的数据安全性在所有的 RAID 级别上来说是最好的。但是其磁盘的利用率却只有 50%,是所有 RAID 级别中最低的。
RAID5 :分布式奇偶校验的独立磁盘结构
RAID 5 将数据分散存放于多个硬盘上面,同时使用一定的编码技术产生奇偶校验码来提供错误检查及恢复能力,数据段的校验位交互存放于各个硬盘上。 因为奇偶校验码在不同的磁盘上, 所以提高了可靠性,允许单个磁盘出错。任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为 n-1。优点是提供了冗余性(支持一块盘掉线后仍然正常运行) ,磁盘空间利用率较高(N-1/N) ,读写速度较快(N-1 倍) 。RAID5 是 RAID 级别中最常见的一个类型。
RAID10 :高可靠性与高效磁盘结构
这种结构是一个带区结构加一个镜象结构, 因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速还可以互为镜像的目的。大家可以结合两种结构的优点和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于容量不大,但要求速度和差错控制的数据库中。
RAID 10 是先镜射再分区数据。是将所有硬盘分为两组,然后将这两组各自视为 RAID 1 运作。RAID 10 有着不错的读取速度,而且拥有比RAID 0 更高的数据保护性。
三、 RAC 系统结构设计
1. RAC 系统拓扑结构基本如下图所示:
2. 主机操作系统系统
RAC 支持常用的 linux、 AIX、 windows、 solaris 等操作系统, 本文以 linux操作为例。
数据库服务器 Redhat Linux 系统规划
1) 用户组规划
2) 用户规划
3) 主机文件系统规划
3. 存储规划
存储一般采用 RAID 5 存储方式。
4. 数据库 RAC 环境数据库规划
1) RAC 环境信息
2) Oracle RAC 软件组件
3) Oracle RAC 网络规划
4) Oracle 用户组信息
5) 表空间规划
6) 数据库备份规划
根据平台业务特性及考虑到节约硬件成本,建议每周作一次完全备份,每天做一次增量备份。恢复时,首先恢复最近一次完全备份的数据,然后再依次恢复服务器硬盘上增量备份的数据,最后通过归档的日志文件将数据恢复到故障点处。
四、Oracle 数据库及 及 RAC 配置清单
1. 硬件清单
数据库服务器两 台 , 主 要 配置如下:
CPU 2*Intel Xeon
内存 8*2GB
硬盘 2*146GB
数据库服务器磁盘阵列
RAID 5
2. 软件清单
Red Hat Enterprise Linux AS release 5
Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86
linux_11gR2_database_1of2.zip
linux_11gR2_database_2of2.zip
linux_11gR2_grid.zip
oracleasmlib-2.0.4-1.el5.x86_64.rpm(11gR2 后非必须)
3. 网络硬件需求
每个 Oracle RAC 节点必须至少有两个网络适配器(即网络接口卡 (NIC)):一个用于公共网络接口,另一个用于专用网络接口(互连)。要对公共网络或专用网络使用多个 NIC,Oracle 建议采用 NIC 绑定。对公共网络和专用网络使用不同的绑定(即对公共网络使用 bond0,对专用网络使用 bond1),这是因为在安装过程中,每个接口要么定义为公共接口,要么定义为专用接口。本文不讨论 NIC 绑定。
每个网络中网络适配器的相关公共接口名称在所有节点上都应相同,网络适配器的相关专用接口名称在所有节点上都应相同。
对于公共网络,每个网络适配器必须支持 TCP/IP。
对于专用网络,互连必须支持用户数据报协议 (UDP),使用支持TCP/IP(最小要求为 1 Gb 以太网)的高速网络适配器和交换机。
TCP 是 Oracle Clusterware 的互连协议。对于此互连,必须使用一个交换机。Oracle 建议您使用一个专用交换机。
对于专用网络,所有指定互连接口的端点在网络上必须完全可达。每个节点均应连接到所有的专用网络接口。可以使用 ping命令测试一个互连接口是否可达。
在 Oracle Grid Infrastructure 的安装过程中,系统都会要求您标识 OUI 在您的集群节点上检测到的每个网络接口计划使用方式 。 必 须 将 每 个 接 口 标 识 为 public interface 、 privateinterface 或 not used。
可将若干独立的接口绑定为一个公共接口,这样可在某个 NIC出现故障时提供冗余性。但是,Oracle 建议您不要为 OracleClusterware 和 Oracle RAC 创建不同的接口。如果您对专用互连使用多个 NIC,Oracle 建议您使用 NIC 绑定。请注意,多个专用接口提供负载平衡,但不提供故障切换功能,只有将它们绑定在一起时才提供故障切换功能。
从 Oracle Clusterware 11g 第 2 版开始,无需再为互连提供专用名称或 IP 地址。标识为专用的子网上的 IP 地址将被分配作为集群成员节点的专用 IP 地址。无需在 hosts 目录中手动配置这些地址。如果需要针对互连进行名称解析,可在 hosts 文件或 DNS 上配置专用 IP 名称。而 Oracle Clusterware 会为安装期间定义为专用接口的那个接口(如 eth1)分配互连地址,并将该地址分配给用作专用子网的那个子网。实际上,在本指南中,我会继续在每个节点包括一个专用名称和 IP 地址以用于RAC 互连。这在专用网络上提供了自我文档编制的方法和一组端点,可供故障排除之用。
4. 网络规划
5. 系统安装规划
注意:服务器的主机名必须全部都是小写,并且不要有下划线。
6. 系统环境需求
7. 查所需软件包
如果是 64bit,需要检查以下的 Packages。以下重复包名称的部分是 64bit,注明 32bit 的是 32bit packages。如果是 32bit OS,那么重复包名的只需要 32bit 部分的包。注意不同版本 Linux 系统后面的版本不太一样。
检查方法:
然后输入:
结果如下:
查询一些文档,pdksh 这个包可以不用安装。
五、 安装工作
1. 修改主机名称,在所有节点执行
2. 创建用户和组
创建 RAC 相关用户和组,在所有节点执行;
3. 修改用户密码
4. 修改 gird 用户的环境变量
切换到 grid 用户, 准备安装 grid Infrastructure . 首先需要修改所有节点 grid 用户的环境变量.bash_profile
以下 grid 的 bash_profile, 仅供参考,还有一些参数可以自行加入。
使配置文件生效, 同样在其他节点的 Grid 用户.bash_profile 中加入, 并注意修改 ORACLE_SID=+ASM2
5. 修改 oracle 用户的环境变量
Oracle 用户也需要设置.bash_profile
以下 Oracle 的 bash_profile, 仅供参考
使配置文件生效, 同样在其他节点的 Oracle 用户.bash_profile 中加入,并注意修改 ORACLE_SID=orcl2
6. 创建软件目录
创建 Oracle RAC 所使用的目录,并修改相应的权限,在所有节点执行;
7. 修改系统参数
修改操作系统相关参数,在所有节点执行;
修改/etc/hosts 文件,在所有节点添加以下内容
8. 配置用户等效性
使用 Oracle 用户,配置 Oracle 用户等效性,在所有节点执行;
使用 Oracle 用户,配置 Oracle 用户等效性,在节点 1 执行
验证 oracle 用户等效性,在所有节点执行;
使用 Grid 用户,配置 Grid 用户等效性,在所有节点执行;
配置 Grid 用户等效性,在节点 1 执行;
验证 Grid 用户等效性,在所有节点执行;
9. 配置 NTPD 服务
各个节点时间同步 (所有节点设置,两个节点相互同步,不设置时间服务器)
10. 安装并配置 ASM 驱动
检查操作系统版本,确认安装与操作系统相匹配的 asmlib,在所有节点执行;
Oracle ASMlib 下载地址:
http://www.oracle.com/technetwork/server-storage/linux/downloads/index.html
初始化 asmlib,在所有节点执行;
ASMlib 加载到内核,在所有节点执行;
磁盘分区
创建 asm 磁盘,在节点 1 执行;
在节点二执行扫描,识别 asm 盘
11. 安装 cvuqdisk 软件包
cvuqdisk 软件包用于发现共享存储,在 grid 安装软件的 rpm 目录中,在所有
节点执行;
12. 安装 Grid 前检查
在所有节点执行,并且检查通过;
检查参数:
13. 安装 Grid Infrastructure
登陆到 grid 用户,执行安装文件,在节点 1 执行;
选择安装并配置一个集群
选择高级安装
将中文添加到右侧边框,添加中文可避免在使用 em 时乱码
填写集群名称和 scan 的解析名称及端口,点击 next
在弹出的界面中,点击 add 填写节点二的信息
添加完成后显示如下:
在下图界面中选择各个网卡的用途
为 OCR 和表决盘选择 ASM 存储方式
选择 crsvol,并填写磁盘组名称,点击下一步
配置 ASM System 口令
不配置 IPMI
为 asm 的各种角色分配属组
默认 grid 的目录,点击 next
点击 next
接下来,软件进行安装检测
检测通过后,点击 install,开始安装
安装进行中。。
安装完成,弹出窗口,提示需要以 root 依次在两个节点执行脚本
脚本执行如下:
执行完毕后,点击 ok,弹出如下界面,点击 close,grid 安装完成
出现以下错误时,是因为在 Hosts 配置文件里配置了 SCAN,未启用 DNS 解析,不影响 RAC 正常运行;
点关闭完成安装
14. 确认群集安装成功
15. 创建 asm 磁盘组
本次任务将创建 3 个 asm 磁盘组,分别为:ARCH,DATA,FLASH。其中DATA 将存放数据库文件;FLASH 存放闪回文件;ARCH 磁盘组将创建 ACFS文件系统,分别挂载到两个节点,用来存放归档日志。
在 grid 用户下,执行 asmca,启动 asm 磁盘组创建向导
点击 create 按钮,在弹出的创建界面中填写磁盘组名称,选择外边存储方,并勾选成员,选择完毕后点击 ok;
以同样的方法创建 BACKUP 磁盘组,创建完毕后如下
16. 安装 oracle 软件
以 oracle 用户登录到节点一,切换到软件安装目录,执行安装
在 弹 出 的 安 装 界 面 中 , 点 击 next
选择“install software only” ,点击 next
选择两个节点,点击 next
将简体中文添加到安装选项
选择企业版,点击 next
保持默认的目录,点击 next
保持默认的属组信息,点击 next
安装过程自动进行安装检查
检查通过后,点击 install
开始安装
安装完成,跳出一个界面,提示需要以 root 在两个节点上执行脚本
以 root 用户,在两个节点上执行脚本
执行完毕后,点击 ok,返回如下界面
至此,oracle 数据库软件安装完毕。
17. 创建数据库
本节操作在节点 1 执行;
以 oracle 用户登录,执行 dbca 命令,选择 rac 数据库点击 next
选择通用类型,点击 next
填写数据库名称,选择两个节点,点击 next
默认,点击 next
为所有用户设置统一密码,点击 next
选择 ASM 存储方式,并选择相应的磁盘组,点击 next
注:如果此处无法找到“ASM DISKGROUP” ,使用 root 用户,则执行以下操作,然后再次执行“dbca” ;
弹出 ASM 用户密码窗口,输入在安装 grid 时设置的密码
选择闪回磁盘组,勾选归档
点击编辑归档模式参数,在归档路径出输入:+BACK/archive
下一步
使用自动内存管理
点击字符集选项,选择 ZHS16GBK 类型
显示概览,默认不变,点击 next
点击 finish
出现安装概要
点击 ok,开始安装过程
等待一段时间后,安装结束,弹出如下界面
至此,数据库创建完毕。
18. 数据库管理工作
RAC 的启停
oracle rac 默认会开机自启动,如需维护时可使用以下命令:
关闭:
开启
注:以上命令需以 root 用户执行
RAC 检查运行状况
以 grid 用户运行
Database 检查例状态
检查节点应用状态及配置
查看数据库配置
检查 ASM 状态及配置
检查 TNS 的状态及配置
检查 SCAN 的状态及配置
检查 VIP 的状态及配置
本文档由社区会员分享,点击阅读原文可下载原文档
长按二维码关注公众号