数据库规划要从业务特性和需求为导向,不要为了rac的可用性而上rac,实际上rac也不是万能的,,需要如下知识点需要掌握。
1.使用rac的好处
1.1 提升应用系统性能,提高数据库事务处理能力
在单台主机资源或者单实例数据库的事务处理能力受到瓶颈时,使用rac能极大提高并发能力。
主机的资源使用率不是简单的求和。比如在2个节点的rac环境中,每个节点的cpu使用率为50%,如果所有资源转移到单个节点,其使用率不会等于100%,可能70%。所以资源的使用很大程度上在于交互成本。
当交互成本过大时,其处理效率会极大的降低。
1.2提高数据库高可用性,尤其是双活的架构下。其好处如下:
同城本地服务器和同城异地服务器之间的无需任何切换,实现极为稳定可预期的秒级失败业务切换。
业务连接的后台数据中心,是同城双活中心,任一站点的故障,业务不受到影响,这大大提高了业务的响应能力,也大大增加了检修等日常运维管理时间。
3.rac的选型考虑
全表扫描情况是不是很多?
索引争用厉不厉害?
高水位争用厉不厉害?
sequence争用厉不厉害?
正版授权、安装、运维费用是否在预算范围内?
4.rac的副作用
资源争用成本会成倍放大,负载均衡下尤其严重
代码访问深度变深,带来的bug,数据库的整体稳定性甚至不如单节点
节点之间sql执行计划不一致
心跳网络的故障率很高
各个版本之间的差异化
对维护人员的技能经验要求较高
如果在单实例中数据块争用比较厉害,那么迁移到rac之后就会是一场灾难,性能可能会更加恶化。在这种情形下,多买了一台小机,只实现了ha的功能,但付出的是性能下降。得不偿失!
其中一个实例hang住时,rac的可用性得不到保障
5.安装时
全面检查操作系统补丁情况,建议安装最新的数据库补丁
心跳网络使用双网卡绑定
主机的操作系统版本要求一致,配置最好一致
部署主机资源监控脚本,如部署osw
做好各项暴力测试,如crs/主机启动测试,插拔网线测试
预防性的设置好各类参数,如oracle的drm参数
6.运维时
应用端做针对rac特性调整,建议业务分节点运行
死锁可能在多个节点发生
不要将数据文件增加到本地硬盘上
先关数据库,再关crs软件,最后关主机
单机转成rac之后,适当加大buffer cache和shared pool的大小
开启并行要慎重,程序不要跨节点并行运行
容易忽略的数据库参数
7.学习rac的几点建议
具备操作系统的相关知识,熟悉vmware或oracle vbox基本操作
安装、升级,且反复安装、升级
阅读官方文档,知道“有什么”,“怎么做”,再查其他文档
在实验环境中操作,尤其需要操作以下内容:
crs的资源管理
asm磁盘、磁盘组的添加删除操作
ocr/voting disk的备份、恢复、镜像、删除操作
vip/public ip/haip/private ip更改操作
学会查看crs日志文件
要学会查看gv$视图
了解业务特性,尤其需要知道哪张表在哪个节点访问频率最高
熟悉crs日志存放位置
本文永久更新链接地址:
