Oralce系列十八:Oracle RAC

news2024/11/28 14:36:31

Oracle RAC

  • 1. Oracle RAC介绍
    • 1.1 基本概念
    • 1.2 Oracle RAC应用场景
    • 1.3 Oracle RAC的优缺点
  • 2. Oracle RAC架构
  • 3. Oracle RAC 的安装

1. Oracle RAC介绍

1.1 基本概念

Oracle RAC(Oracle Real Application Server Cluster)是一种分布式数据库解决方案,它允许多个Oracle数据库实例在多台服务器上共享同一个数据库存储空间,并通过集群来保证高可用性和容错性。简单来说,RAC就是将多个数据库实例连接起来,形成一个“集群”,可以在任何节点上访问到完整的数据库内容。

在这里插入图片描述
Oracle RAC由多个数据库实例组成,其中每个实例都运行在不同的服务器节点上。节点之间通过网络通信,每个实例都可以访问数据文件、控制文件、归档日志和参数文件等共享资源。在RAC架构中,数据库和应用程序是分离的,应用程序只需要连接到任何一个数据库实例即可,当有节点故障时,连接会自动定向到其他节点上。

1.2 Oracle RAC应用场景

Oracle RAC被广泛用于大型、高性能的企业级应用系统中,如在线交易处理、数据仓库和业务智能分析等。

(1)交易处理
在交易处理系统中,Oracle RAC可以提供高可用性、负载均衡和性能优化的支持。采用Oracle RAC可以避免因单点故障而导致的系统不可用或性能下降,保障了在线交易系统的连续性和稳定性。

(2)数据仓库
在数据仓库系统中,Oracle RAC可以提供强大的查询优化功能,以满足业务对数据挖掘和商业智能分析的需求。同时,Oracle RAC还支持在线报表生成和实时数据分析,可以大大提升业务决策的速度和准确性。

(3)业务智能分析
Oracle RAC还广泛应用于业务智能分析系统中,以满足大规模数据量、复杂查询和多维分析等业务需求。通过引入Oracle RAC,可以有效提高系统的响应速度和并行处理能力,以满足业务对实时性和可靠性的需求。

1.3 Oracle RAC的优缺点

(1)优点

  • 高可用性:Oracle RAC 具有高可用性,因为它可以在多个节点上运行数据库实例。如果一个节点出现故障,其他节点可以自动接管其职责,从而避免了单点故障。
  • 高容错性:Oracle RAC提供故障检测和自动恢复技术,在节点故障、网络故障以及存储设备故障等情况下,自动地协调数据库实例之间的交互。Oracle RAC 具有故障转移功能,因为它可以自动将客户端请求路由到可用的节点上。这可以确保系统的连续性和可用性,从而避免了业务中断的风险。
  • 可扩展性:Oracle RAC 具有可扩展性,因为它可以通过增加节点来扩展性能,以满足不断增长的业务需求。Oracle RAC提供在线扩展的功能,可在不中断服务的情况下添加或删除节点。
  • 负载均衡:Oracle RAC 具有负载均衡功能,因为它可以将客户端请求路由到可用的节点上。这可以确保每个节点都能充分利用其资源,从而提高性能和可靠性。
  • 数据共享:Oracle RAC 具有数据共享功能,因为它可以让多个节点共享同一个物理存储。这可以确保数据的一致性和完整性,从而避免了数据冲突和数据丢失的问题。

(2)局限性

  • 成本高昂:Oracle RAC需要购买专门的硬件和软件支持,以及专业人员的维护和管理。这使得采用Oracle RAC的成本较高,对于中小型企业而言可能不划算。
  • 复杂性:Oracle RAC的构建和配置比单机数据库复杂得多,需要考虑多个节点之间的数据同步、连接管理、资源管理以及故障恢复等问题。这可能需要更为复杂的系统架构、详细的设计和测试过程。
  • 可扩展性有限:尽管Oracle RAC可以通过添加和删除节点来实现线性扩展,但这种可扩展性也有一定的局限性。如果要进一步提高性能,可能需要采用更为复杂的方案,如分布式数据库或云计算架构。
  • 资源占用:由于Oracle RAC需要在每个节点上运行多个实例,因此它需要更多的计算资源和内存容量。这可能会影响整个系统的性能和稳定性。

2. Oracle RAC架构

Oracle RAC的架构包括两个主要组件:共享存储实例集群

  • 共享存储指多个节点可以访问的单个存储池,其中包括共享的磁盘或SAN设备等。所有节点都可以访问共享的存储空间,包括数据文件、控制文件、归档日志和参数文件等。这些存储资源通常由一个专门的存储阵列设备提供支持,以确保容错性和高可用性。
  • 实例集群指运行在集群中各个节点上的多个Oracle实例,每个实例都运行在不同的服务器节点上,它们可以协同工作,共享相同的数据库存储空间。

Oracle RAC 的体系结构包括多个关键组件,它们共同协作来实现多节点并行处理、故障检测和自动恢复等功能。

(1)Oracle Database 软件
Oracle Database 软件是 Oracle RAC 的核心组成部分,它必须在每个节点上进行安装和配置,并且需要连接到共享存储设备,以确保节点之间可以相互访问数据库存储。

(2)共享存储
共享存储对于 Oracle RAC 来说是至关重要的。它由一个或多个存储设备提供支持,以确保各个节点之间可以相互访问数据库存储资源。共享存储通常采用 SAN 存储设备或 NAS 设备来实现。

(3)Oracle Clusterware
Oracle Clusterware 是 Oracle RAC 中的关键组件之一,它可以跨节点协调各个实例之间的交互,并且提供自动故障转移和恢复功能,以确保数据库始终可用。此外,Clusterware 还提供了动态资源管理功能,确保每个节点上的进程可以均衡利用系统资源。

(4)共享缓存
Oracle RAC 采用了共享内存架构的方式来实现多个实例之间的数据共享。即各个节点的实例都可以在内存中共享部分数据块(Synchronized Global Cache)。这些数据块可以被多个实例同时访问和修改,不同实例之间进行数据同步和数据冲突检测,保证数据的一致性。通过共享内存架构,Oracle RAC 可以避免访问磁盘的等待时间,从而提高系统的性能。

(5)连接管理器
连接管理器负责将客户端请求路由到可用的节点,以实现负载均衡。此外,连接管理器还提供了一些额外的功能,例如自动重试和会话故障检测等,以提高应用程序的可用性和可靠性。

(6)集群文件系统
集群文件系统用于支持 Oracle RAC 的共享存储。它可以允许多个节点同时访问同一个文件系统,同时确保文件系统的安全性和一致性。Oracle RAC 支持多种集群文件系统,包括 ASM(Automatic Storage Management)和 OCFS2(Oracle Cluster File System)等。

(7)全局资源管理器
全局资源管理器(Globally Enqueue Service)是 Oracle RAC 中实现并发控制的重要组件之一。它负责在多个节点之间协调并发事务的操作,包括锁定、解锁和排队等。同时,全局资源管理器还提供故障检测和自动恢复技术,可以动态地重新分配资源,以适应系统的变化。

3. Oracle RAC 的安装

Oracle RAC 的安装过程通常可以分为以下几个步骤:准备环境、安装 Oracle 软件、创建数据库、配置 RAC 组件、进行测试等。

(1)准备环境

主要包括以下方面:

  • 硬件和操作系统要求:确保所有节点都满足 Oracle 的硬件和软件要求。
  • 共享存储:准备好共享存储设备,并确保所有节点都可以访问该设备。
  • 软件下载:从 Oracle 官方网站下载最新版本的 Oracle Database 软件和 Patchset。
  • 网络配置:为每个节点配置网络接口,并确认所有节点之间的网络连接是正常的。

(2)安装 Oracle 软件

安装步骤如下:

  • 解压下载的 Oracle Database 软件包,并将其复制到所有节点上。
    运行runInstaller 脚本,启动 Oracle Database 安装程序。
  • “选择安装选项”页面上,选择“Install Database software only”选项,然后单击“Next”按钮。
  • “选择系统类别”页面上,选择“Cluster database”选项,然后单击“Next”按钮。
  • “选择集群配置”页面上,选择“Advanced installation”选项,然后单击“Next”按钮。
  • “选择集群节点”页面上,选择要安装 Oracle RAC 的所有节点,并设置每个节点的 Oracle 安装目录和共享存储位置。然后单击“Next”按钮。
  • “选择 Grid Infrastructure 基本目录”页面上,设置 Grid Infrastructure 软件的基本目录和组别。然后单击“Next”按钮。
  • “选择兼容性模式”页面上,选择需要的兼容性模式(Oracle Database 18c 或 Oracle Database 19c)。
  • “指定管理密码”页面上,设置 Grid Infrastructure 和数据库的管理员密码。然后单击“Next”按钮。
  • “审查所选配置”页面上,确认所选配置。然后单击“Install”按钮,开始安装 Oracle RAC。

(3)创建数据库

创建步骤如下:

  • 在每个节点上运行 dbca 命令,启动 Oracle Database Configuration Assistant 工具。
  • “选择操作”页面上,选择“Create Database”选项,然后单击“Next”按钮。
  • “选择模板”页面上,选择“General Purpose or Transaction Processing”选项,然后单击“Next”按钮。
  • “定义数据库标识符”页面上,设置数据库名称、实例名称和 SID 等参数。然后单击“Next”按钮。
  • “配置数据库选项”页面上,设置数据库字符集、语言等选项。然后单击“Next”按钮。
  • “指定数据库文件位置”页面上,设置数据库的数据文件、控制文件和归档日志文件等位置。通常情况下,这些文件应该存储在共享存储中。然后单击“Next”按钮。
  • “指定数据库管理选项”页面上,设置管理员密码、监听器端口等选项。然后单击“Next”按钮。
  • “选择配置选项”页面上,选择需要的配置选项,例如是否启用 ASM 等。然后单击“Next”按钮。
  • “审查所选配置”页面上,确认所选配置。然后单击“Finish”按钮,开始创建数据库。

(4)配置 RAC 组件

在创建数据库后,需要配置 Oracle RAC 的各个组件,包括监听器、OCR(Oracle Cluster Registry)和 ASM(Automatic Storage Management)等。配置步骤如下:

  • 配置监听器:在每个节点上运行 netca 命令,启动网络配置助手,然后创建一个新的监听器。
  • 配置 OCR:使用 crsctl 命令管理 OCR,可以将 OCR 备份到共享存储中,以实现故障恢复和高可用性。
  • 配置 ASM:在每个节点上运行 asmca 命令,启动 ASM 配置助手,然后创建 ASM 实例,并将数据库文件存储在 ASM 中。

(5)进行测试

在完成 Oracle RAC 的配置后,需要进行一些测试来验证系统是否正常运行。可以通过以下方式进行测试:

  • 使用 SRVCTL 命令管理集群组件,例如启动、停止数据库实例和 ASM 实例等。
  • 使用 SQLPLUS 工具连接到数据库,并执行一些 SQL 查询语句,以验证数据库是否正常工作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

涂鸦T2-U开发板快速入门

文章目录 T2-U模组概述特性 1、环境搭建2、SDK下载3、编译3.1、 命令编译3.2、 命令编译清除3.3、 Wind-IDE 编译3.4、编译完成 4、下载4.1、 GUI工具4.2、Wind IDE一键下载 5、 运行 涂鸦 T2-U 开发板 是一款专为开发者打造的智能硬件产品原型开发板。它可与其他功能电路模组或…

App的回归测试,有什么高效的测试方法?

直接抛出观点:高效的测试方法当然有,那就是采用【接口自动化】。 为了系统阐述这个问题,让你能有较强烈的获得感,本篇文章将采用下列结构进行展开: 1、回归测试,测哪些东西? 2、传统的回归测试…

容器认证有什么等级?考试内容是什么?

信息通信行业是进几十年新兴起的一个行业,对我们的生活产生了巨大的影响,传统的购物、出行方式发生了巨大的变化,而且我们的眼界更加开阔。可以了解到世界各地的风土人情,这一切都离不开信息通信技术的发展,同时市场为…

拥有Android开发经验? 走出焦虑圈,车载应用开发正好合适你!

行业前景 当前,车联网已成为智能交通的重要发展方向之一。车载Android应用可以为车辆提供智能化服务,帮助驾驶者增强车辆控制和安全,提供大量娱乐和信息服务,如导航、音乐、天气预报、电子地图等。而且,车联网相关政策…

为什么APP安全很重要?APP盾如何提供帮助?

为什么APP安全很重要? APP安全是流程、功能、控制、功能、最佳实践和工具的有效和高效组合,用于通过主动查找和保护各种漏洞来确保各类APP/软件的安全。 应用安全非常重要的4个主要原因 1.确保关键数据资产的安全 数据是新的石油,攻击者最…

抖音seo矩阵号源码开发分享(一)

抖音SEO矩阵系统源码开发,需要遵循一下步骤: 1. 确定需求和功能:明确系统的主要目标和需要实现的功能,包括关键词研究、短视频制作、外链建设、数据分析、账号设置优化等方面。 2. 设计系统架构:根据需求和功能确定系…

运维圣经:DDos攻击应急响应指南

目录 DDos攻击简介 DDos攻击应急响应指南 一. 问题排查 二. 临时处置 三. 研判溯源 四. 清楚加固 DDos攻击简介 分布式拒绝服务是种基于DoS的特殊形式的拒绝服务攻击,是一种分布、 协作的大规模攻击方式,主要瞄准比较大的站点,像商业公…

MFC没有IMEMode 想软件自动切换到英文状态以便扫码时不会变成汉字。 MFC-自定义控件Edit control。MFC禁用中文输入法

0、直接说最终解决方法&#xff1a;MFC禁用中文输入法 #include <Imm.h> // Function for Disabling IME 禁用中文输入法 void DisableIME(HWND hWnd) {HIMC m_hImc; // 全局或者成员变量//HWND hWnd pWnd->GetDlgItem(IDC_EDIT1)->m_hWnd;if (hWnd &&am…

ffmpeg 编译android mac环境编译 或者centos

ndk版本:ndk21 (可使用android studio内部下载的ndk) /Users/XXXX/Library/Android/sdk/ndk/21.4.7075529 ffmpeg下载 ffmpeg6.0 1:git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg 2:或者直接点击下面按钮下载 http://ffmpeg.org/releases/ffmpeg-6.0.tar.xz 环…

极致呈现系列之:Echarts雷达图的魅力与价值

目录 什么是雷达图vue3中引入雷达图绘制简单的雷达图雷达图的数据处理什么是数据归一化处理对chartData的数据进行归一化将归一化后的数据应用到雷达图中 美化雷达图 什么是雷达图 雷达图是一种基于极坐标系的可视化图表&#xff0c;用于展示多维数据之间的关系。它通过设置不…

Cross-modal Moment Localization in Videos论文笔记

Cross-modal Moment Localization in Videos论文笔记 0.来源1.摘要2.介绍3.模型3.1语言-时间注意网络3.2损失函数3.2.1对齐损失3.2.2位置损失3.2.2损失函数 4.实验4.1数据集4.2性能比较4.3 ROLE的几种变体 5.未来工作 0.来源 2018年 Cross-modal Moment Localization in Video…

MFC-皮肤颜色集组合界面程序DlgSkinBase

虽然是小程序,编辑的源代码也很少&#xff0c;但其中的编程思想却是大型工程项目的配色经典基础。就如万丈高楼的基础中的钢筋般重要。 或者很多程序员一辈子也难接触到大型项目程序...还是那句话&#xff0c;既然缘分来了&#xff0c;不妨共享出来&#xff0c;希望能对有缘人有…

卖课软文怎么写,揭秘知识付费软文写作技巧

随着互联网的发展&#xff0c;知识付费已经成为了一种趋势。越来越多的人开始关注自我提升和职业发展&#xff0c;而知识付费也成为了他们获取知识和技能的重要途径。在这个背景下&#xff0c;卖课软文也成为了知识付费领域一种重要的推广方式。本文伯乐网络传媒将为大家揭秘卖…

hadoop本地化windows部署

文章目录 前言1. hadoop on windows1.1 安装jdk1.2 安装hadoop1.2.1 解压1.2.2 备用目录1.2.3 修改配置1.2.4 安装winutils-master1.2.5 格式化namenode1.2.6 启动hadoop1.2.7 web-ui登陆hadoop hdfs 2. spark on windows2.1 安装scala2.2 安装spark2.2.1 解压2.2.2 环境变量2.…

2年点工月薪10k,自学自动化年薪突破30W

我是农村出生的家庭&#xff0c;经济并不富裕&#xff0c;一个人奔波在大城市&#xff0c;总是很自卑。那段时间父亲身体不好&#xff0c;家里打电话说要花很多钱&#xff0c;于是我辞掉了一个月薪7k的功能测试&#xff0c;去了一个电子厂&#xff0c;每天加班加满月薪也能拿到…

【SpringCloud-3】Hystrix熔断器

通常情况下&#xff0c;一个请求可能会调用很多个服务。 如果下游某个服务异常&#xff0c;不能正常返回结果&#xff0c;导致上游所有服务等待&#xff0c;最终可能导致大量服务资源耗尽&#xff0c;造成雪崩。 说简单点&#xff0c;撸代码时&#xff0c;一定要保护好自己的服…

【vue3】vue3组件通信方式

一、props 可以实现父子组件通信&#xff0c;子组件通过defineProps获取父组件传递的数据&#xff0c;且在子组件内部不需要引入defineProps方法就可以直接使用&#xff01; 1、父组件给子组件传递数据 <Child hobby"学习" :money"money"></Chil…

Sui Builder House首尔站精彩集锦

6月3–4日&#xff0c;超过400人参加了Sui Builder House首尔站活动&#xff0c;近距离地了解了Sui网络的最新情况和路线图中提供的相关计划。作为主网推出后的第一个Builder House活动&#xff0c;参与者在现场体验了Sui的实现。 此次活动在首尔江南区举行&#xff0c;共设有…

分享一个玉质按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>* {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;bo…

SpringBoot用线程池ThreadPoolExecutor处理百万级数据

SpringBoot用线程池ThreadPoolExecutor处理百万级数据 更多优秀文章&#xff0c;请扫码关注个人微信公众号或搜索“程序猿小杨”添加。 一、背景&#xff1a; 使用JDK线程池ThreadPoolExecutor多线程异步执行批量插入、更新等操作方法&#xff0c;提高百万级数据插入效率。 二…