0

0

初始Oracle RAC:产生的背景及其结构

php中文网

php中文网

发布时间:2016-06-07 17:18:14

|

1110人浏览过

|

来源于php中文网

原创

Oracle RAC(Real Application Cluster,真正的应用集群)应用非常广泛,几乎支持目前的所有主流平台,尤其是Linux平台,Oracle公司

  对于信息系统来说,数据库可谓是其核心,它极大地影响了信息系统的安全性(数据安全、访问安全)、稳定性和整个信息系统的性能。这也是衡量数据库产品品质的三个重要指标,各大数据库厂商针对这些问题不断地增强自身产品的竞争力,以谋求更多的商业价值。本文讨论的是目前使用最为广泛的Oracle公司的数据库产品及其高可用性解决方案。

  Oracle RAC(Real Application Cluster,,真正的应用集群)应用非常广泛,几乎支持目前的所有主流平台,尤其是Linux平台,Oracle公司支持力度是最大的,在Linux平台的特性也是最多的,所以本书以Linux作为讨论的平台。

  RAC产生的背景

  就像每家每户用电一样,作为用电户总是不希望家里出现停电的情况,因为停电将对日常生活带来极大的不便。同样,作为信息系统的客户也不希望系统出现异常情况,这同样会影响客户正常的生产和生活。

  从硬件来说,为了追求信息系统更加高效稳定的运行,支撑信息系统运行的各个硬件组成部分,在产品长时间高效稳定运行方面得到了巨大的发展。例如,UPS电源保证机房在断电的情况下能支撑较长时间的供电,服务器有非常多不同于一般PC的设计来保证服务器能够长时间稳定的运行,存储系统也在不断地发展与进步,这些是硬件方面的内容,是信息系统运行的基础。

  从软件上来说,作为信息系统核心的数据库产品在不断增强产品质量的同时,也提出了自己的高可用性解决方案,并且这些方案也在不断地增强和普及。本书讨论的RAC数据库就是Oracle公司针对数据库的高可用性解决方案,数据库的高可用性依赖于硬件的稳定运行和设备的冗余,软硬件高效稳定的协同工作才能够保证系统更加安全、稳定和高效地运行。

  RAC体系结构

  RAC数据库是Oracle公司数据库的集群解决方案、高可用性解决方案。两个或多个服务器之间通过一个内部的私有网络互相连接起来,使用集群软件将集群中所有的服务器融合成一个整体,构成一个集群。

  集群内部的所有服务器共享存储,所有服务器都接入公共网络,通过集群唯一的别名对外形成逻辑上单一的数据库提供服务,对内实现集群数据库的高可用性、节点间的负载均衡和Failover(失败切换)。随着11gR2(11g的第二个大版本,2009年9月29发布)的推出,这一方案在10gR2版本的基础上得到了进一步的增强。Oracle 11gR2推出的新特性能更好地满足客户对高可用性的要求,并为系统的扩展、成本的降低、性能的提升提供多方面的优势。

  下面对RAC的体系结构进行讨论。

Pliny
Pliny

创建、分享和重新组合AI应用程序

下载

  一. 整体结构

  笔者认为,RAC有广义和狭义之分,本小节讨论广义的RAC,在1.2.3节将讨论狭义的RAC。广义上讲,一个真正的应用集群纵向看是由存储阵列、数据库集群、应用集群三部分组成,横向来看,是由多台应用服务器、数据库服务器和存储设备组成。如图1-1所示。

  从图1-1可以看出,如果存储、数据库和应用这三部分任意一部分没有实现集群,都无法实现真正意义上的集群,并无法保证整个系统是高可用的。例如,数据库使用的是RAC,存储也做了镜像保护,但应用服务器却是一台单机,当这台应用服务器出现故障,那么整个系统也将处于不可用状态,对客户来说并不能感受到高可用的存在。所以,广义上的RAC只有实现存储、数据库、应用三部分的集群,整个系统才能实现真正意义上的高可用。

  Oracle推出了相应的产品来支持这三部分:存储方面有ASM(从Oracle 11g开始独立出来作为Grid Infrastructure一部分),数据库方面有集群软件Clusterware和Database的组合,应用方面有Weblogic(从BEA收购来的)。

初始Oracle RAC:产生的背景及其结构

▲图1-1 RAC结构

  RAC的构架主要实现了数据库的集群和存储的集群。随着产品的发展,原来只用于数据库的Oracle EM (Enterprise Manager)工具将能够对应用服务器、数据库服务器及存储服务器实施统一管理。

  通过图1-1还能发现一个特点,存储设备向上对数据库集群提供统一接口的服务。这种统一接口指的是,虽然数据库服务器可能有多个HBA卡连接到存储的多个控制器,但是在数据库服务器上通过多路径软件,将多个路径合成一个路径,提供对存储访问的负载均衡和失败切换,从这点来说,存储设备向数据库集群提供了统一的访问接口。

  数据库集群向上对应用集群提供统一接口服务。这里的统一接口就是Oracle 11gR2出现的SCAN,通过统一的名称来访问集群,实现集群访问的负载均衡,通过和Service的结合实现失败切换。应用集群向上对用户提供统一的服务。

  应用服务器集群可能有另外的负载均衡硬件来进行管理,如F5,对于用户来说也只有统一的访问接口,即域名,通过应用负载均衡硬件实现负载均衡和失败切换,最终形成所有用户通过统一的域名就可以访问系统,并实现系统真正意义上的高可用。

  广义的RAC纵向的每一部分对于上层都是具有高可用性能力的,并且具有集群相关特点。所有这些存储设备、数据库和应用提供的对外服务接口都是统一的,对内实现了高可用的特点,任意一部分出现小范围的问题都不会导致整个系统的瘫痪,各部分的实现对于上层或者外部来说都是透明的。这样的集群才是真正意义上的集群,只是某一部分的集群则是不完整的高可用性解决方案。

linux

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

21

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

106

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

50

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

87

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

27

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

79

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

61

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

50

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 4.2万人学习

Java 教程
Java 教程

共578课时 | 78万人学习

oracle知识库
oracle知识库

共0课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号