ORACLE集群概念与原理
oracle集群
数据库双机可以有两种不同的方式:双机热备份、双机集群。
双机热备份方式的集群完全通过操作系统的cluster软件来实现,在同一个时刻,只有一台机器对数据库作操作,当这台机器发生故障以后,由操作系统cluster将所有资源切换到两外一个节点,防止单节点数据库故障。
双机集群方式(RAC),在10g以后,通过ORACLE自身提供的CRS来实现集群的功能。
在同一个时刻,所有的机器都对数据库作操作,当某台机器发生故障后,其他机器接管该机器的工作。
这种方式不但能够防止单节点数据库故障,还能够实现负载均衡。
因为两个机器对同一个数据库操作,因此数据库文件一般无法使用传统的文件系统方式存储。
下表列出了两种方式的区别:注一:对于rac方式,在10G以下的版本必须要操作系统cluster的支持+oracle rac选件才能够实现,在10G以后,oracle提供了自身的cluster软件——crs,因此可以在没有操作系统cluster的情况实现RAC方式,但对于文件的存储方式有所限制,下表列出了在rac方式下可以选择的存储方式数据库双机热备方案的原理及实现以下简单说明了双机热备的原理及实现。
⏹双机热备系统又称为Cold Failover,它是oracle 数据库高可用方式的一种。
主要工作方式为主机节点运行,备用节点处于等待状态,当主机节点发生失败的时候,数据库以及虚拟IP 自动漂移到备用节点,完成用户应用透明切换。
切换操作基于操作系统Cluster 控制软件,操作系统负责监控系统的运行状况。
操作系统实现数据库的关闭、切换和启动。
⏹ 方案评价双机热备系统是单实例数据库系统,它的工作方式是一种Shared Nothing 方式,也就是同一时间段,只有一台节点对共享盘阵有操作权。
在发生节点失败时,完成切换。
应用切换对前端用户透明,主机节点失败后用户自动转接入预先定以的备用节点。
此种方式概念以及平台搭建相对简单,易于管理。
但是其主机工作,备机等待的工作方式,造成了此种工作方式对系统资源的一定浪费。
详解Oracle架构、原理、进程
详解Oracle架构、原理、进程⾸先看张图:对于⼀个数据库系统来说,假设这个系统没有运⾏,我们所能看到的和这个数据库相关的⽆⾮就是⼏个基于操作系统的物理⽂件,这是从静态的⾓度来看,如果从动态的⾓度来看呢,也就是说这个数据库系统运⾏起来了,能够对外提供服务了,那就意外着数据库系统启动了⾃⼰的⼀个实例,综合以上2个⾓度,Oracle如何定义上述描述呢?我们来引⼊第⼀个概念,Oracle服务器,所谓Oracle服务器是⼀个数据库管理系统,它包括⼀个Oracle实例(动态)和⼀个Oracle数据库(静态)。
Oracle实例是⼀个运⾏的概念(如操作系统的进程),提供了⼀种访问,Oracle数据库的⽅式,始终打开⼀个,并且只能打开⼀个Oracle数据库,Oracle实例有SGA和⼀些后台服务进程组成,在后台服务进程当中,DBWn PMON CKPT LGWR SMON是必备的后台进程,⽽ad queue、rac、shared server、ad replication则是可选的,之所以可选,要们是因为离开它Oracle也能正常运⾏,要么是⼀些⾼级的功能才可以⽤得到。
Oracle数据库是⼀个被统⼀处理的的数据的集合,从物理⾓度来看包括三类⽂件数据⽂件,控制⽂件,重做⽇志⽂件。
从逻辑⾓度来看,Oracle数据库⾄少包含⼀个表空间,表空间⾄少包含⼀个段,段由区做成,区有块组成。
需要注意的是表空间可以包含若⼲个数据⽂件,段可以跨同⼀个表空间的多个数据⽂件,区只能在同⼀个数据⽂件内。
Oracle还设计了其他的关键⽂件⽤来为整个系统服务,如配置⽂件、密码⽂件、归档⽇志⽂件,还有还有⽤户进程和服务进程,现在可以简单理解下执⾏SQL语句就要⽤到这2个进程。
SGA SHARE POOL(共享池)⽤如下命令可以调整ALTER SYSTEM SETSHARED_POOL_SIZE=64MLIBRARY CACHE(库⾼速缓存)1存储最近使⽤的SQL和PL/SQL语句信息2包括SHARED SQL和SHARED PL/SQL3⽤LRU算法管理4⼤⼩由SHARE POOL⼤⼩决定DATA DICTIONARY CACHE(数据字典⾼速缓存)1数据库中最近使⽤的定义的集合2包含数据库⽂件,表,索引,列,⽤户,权限和其他的数据库对象相关信息3在语法分析阶段,服务器进程会在数据字典中查找⽤于对象解析和验证访问的信息4将数据字典信息⾼速缓存到内存中,可缩短查询和DML的响应时间5⼤⼩由共享池的⼤⼩决定DATABASE BUFFERCACHE(数据缓冲区⾼速缓存)1存储已从数据⽂件检索到的数据的复本2⼤幅提⾼读取和更新数据的性能3使⽤LRU算法管理4主块的⼤⼩由DB_BLOCK_SIZE确定REDO LOG BUFFER(重做⽇志缓冲区)1记录对数据库数据块作的全部更改2主要⽤来恢复3其中记录的更改被称作重做条⽬4重做条⽬包含⽤于重新构建或重做更改的信息5⼤⼩由LOG_BUFFER定义LARGE POOL(⼤型池)1 SGA可选的内存区2分担了共享池的⼀部分⼯作3⽤于共享服务器的UGA4⽤于I/O服务器进程5备份和恢复操作或RMAN6并⾏执⾏消息缓冲区(前提PARALLEL_POOL_SIZE=TRUE)7不使⽤LRU列表8⼤⼩由LARGE_POOL_SIZE确定JAVA POOL(JAVA池)1存储JAVA命令服务分析要求2安装和使⽤JAVA时必须的3⼤⼩有JAVA_POOL_SIZE确定PRIVATE SQL AREA(专⽤SQL区)专⽤SQL 区的位置取决于为会PERSISTEN AREA(永久区)包含绑定信息,并且只在关闭游标时释放RUNTIME AREAPGA 话建⽴的连接类型。
Oracle RAC集群
平台的结构化数据采用业内广泛使用的Oracle 数据库管理系统进行存储和管理。
实时视频存储区部署一套RAC 集群,来承载业务处理中心相关业务。
车牌图片和事件存储区部署另一套Oracle RAC 集群来承载计费相关业务,同时为了进一步加强数据容灾,保障数据的安全性,方案通过Oracle Dataguard 工具将该部分数据传送至福建的异地灾备中心。
方案采用了Oracle Rac支持本地业务,是因为Oracle RAC具有很多数据库的高可用性优势所决定的。
1、双机并行。
RAC是一种并行模式,并不是传统的主备模式。
也就是说,RAC集群的所有成员都可以同时接收客户端的请求。
2、高可用性。
RAC是Oracle数据库产品高可用性的解决方案,能够保证在集群中只要有一个节点存活,就能正常对外提供服务。
3、易伸缩性。
RAC可以非常容易地添加、删除节点,以满足系统自身的调整。
4、低成本。
能使用较低廉的服务器来实现高可用性、高吞吐量的集群环境,这要比通过对某台高端服务器增加硬件实现高可用性、高吞吐量花费的成本低很多。
5、高吞吐量。
随着节点数的增加,整个RAC 的吞吐量也在不断增长。
一、双机并行RAC是一种充分利用服务器资源的高可用性实现方案,RAC 的并行模式实现方式与传统的双机热备实现方式截然不同。
如下图所示,两个节点在传统的双机热备环境中,始终有一台机器作为备用机,只有当主节点出现问题的时候才会切换到备用机上;如果主机一直没有出现问题,那么备用机始终处于空闲状态,这在资源的利用上以及成本方面都是巨大的浪费。
但RAC是一种并行模式的架构,也就是说,两个节点的集群节点间是一种并行运行的关系,当一台机器出现问题,请求会自动转发到另一台机器,没有任何一台机器作为备用机一直不被使用,这样就充分利用了服务器资源。
同时,传统的双机热备构架在出现问题时,常常需要数分钟的切换时间,而RAC在出现问题时,针对存在的会话只需要数十秒的时间就可以完成失败切换过程,对新会话的创建不会产生影响,在切换时间上也有比较大的优势。
ORACLE RAC集群
1、集群环境的特殊问题健忘症:这个问题发生在集群环境配置文件不是集中存放,而是每个节点都有一个本地副本。
在集群正常运行时,用户可以在任何节点修改集群的配置,并且这个更改会自动同步到其他节点。
但是考虑这样一种场景:两个节点的集群,节点1因为正常的维护需要被关闭,然后在节点2修改了某些配置,然后关闭节点2,启动节点1。
因为之前在节点2做的配置修改没有同步到节点1,所以节点1启动后,它仍然是用旧的配置文件工作,这时就会造成配置丢失,也就是所谓的“健忘症”。
要想解决“健忘”问题,最简单的办法就是整个集群只有一份配置,各节点公用这份配置,无论在哪个节点修改配置,都是修改相同的配置文件,这样就是保证修改不会丢失。
Oracle 采用的方法就是把这个配置文件放在共享存储上,这个文件就是OCR Disk。
[sql]view plaincopyprint?1.[root@racnode2 ~]# cat /etc/oracle/ocr.loc2.ocrconfig_loc=+OCR_VOTE3.local_only=FALSE脑列:在集群里,节点间需要通过某种机制(心跳)了解彼此的健康状况,以确保各节点协调工作。
假设只是“心跳”出现故障,但各个节点还在正常运行。
这时,每个节点都认为其他节点宕机,自己是整个集群环境中的“唯一健在者”,自己应该获得整个集群的“控制权”。
在集群环境中,存储设备都是共享的,这就意味着数据灾难,这样一种状况就是“脑列”。
Voting Disk这个文件主要用于记录节点中成员状态,在出现“脑列”时,仲裁哪个Parition 获得集群的控制权,而其他Parition必须从集群中剔除。
[sql]view plaincopyprint?1.[grid@racnode1 ~]$ crsctl query css votedisk2.## STATE File Universal Id File Name Disk group3.-- ----- ----------------- --------- ---------4. 1. ONLINE 660450b5dcce4f2dbff0710c018ee835 (/dev/raw/raw1) [OCR_VOTE]5. 2. ONLINE a1fe3ce9ee114f61bf35874d642db9b5 (/dev/raw/raw2) [OCR_VOTE]6. 3. ONLINE 4831bafd23404fb2bf89c2825afb9dfa (/dev/raw/raw3) [OCR_VOTE]7.找到了 3 个表决磁盘。
oracle原理
oracle原理Oracle原理是指Oracle数据库管理系统的核心架构和工作原理。
Oracle数据库是一个关系型数据库管理系统,它采用了多种技术和机制来提供稳定可靠的数据存储和访问。
Oracle数据库的核心原理包括以下几个方面:1. 数据库结构:Oracle数据库采用了基于块(block)的存储方式。
数据在物理上以块的形式存储在磁盘上,而数据库管理系统通过缓冲区(buffer cache)将数据块加载到内存中进行访问。
Oracle数据库的结构包括数据文件(datafile)、表空间(tablespace)、段(segment)和数据块(block)等概念。
2. 事务处理:Oracle数据库支持ACID(原子性、一致性、隔离性和持久性)事务模型。
在Oracle数据库中,事务是由一系列对数据库的一组逻辑操作组成的。
事务处理是通过数据的锁定机制、日志记录和重做(redo)机制来实现的。
事务的提交和回滚操作能够保证数据的一致性和完整性。
3. 多用户并发:Oracle数据库支持多用户并发访问。
对于并发访问的控制,Oracle数据库使用了多种技术,包括行级锁、表级锁和事务隔离级别。
通过这些技术,Oracle数据库能够在多用户同时访问数据库时保证数据的一致性和完整性。
4. 查询优化:Oracle数据库通过查询优化器来选择执行查询操作的最佳执行计划。
在查询优化过程中,Oracle数据库会根据查询的复杂度、数据分布和索引等因素来选择最适合的执行计划,以提高查询性能。
除了上述核心原理外,Oracle数据库还涉及到管理和维护数据的方方面面,如用户管理、权限控制、备份和恢复、性能监控和调优等。
这些原理和技术的综合运用,使得Oracle数据库能够高效地管理大量数据,并提供稳定和可靠的数据库服务。
ORACLE集群概念与原理
ORACLE集群概念与原理第⼀章集群的概念和发展1集群的概念1.1集群相关术语定义1.1.1服务硬件服务硬件是指提供计算服务的硬件,⽐如PC机、PC服务器。
1.1.2服务实体服务实体通常指服务软体和服务硬体。
1.1.3节点(node)运⾏Heartbeat进程的⼀个独⽴主机称为节点,节点是HA的核⼼组成部分,每个节点上运⾏着操作系统和Heartbeat软件服务。
在Heartbeat集群中,节点有主次之分,分别称为主节点和备⽤/备份节点,每个节点拥有⼀个唯⼀的主机名,并且拥有属于⾃⼰的⼀组资源,例如磁盘、⽂件系统、⽹络地址和应⽤服务等。
主节点上⼀般运⾏着⼀个或者多个应⽤服务,⽽备⽤节点⼀般处于监控状态。
1.1.4资源(resource)资源是⼀个节点可以控制的实体,当节点发⽣故障时,这些资源能够被其他节点接管。
在Heartbeat中,可以当做资源的实体如下:(⼀)磁盘分区、⽂件系统(⼆)IP地址(三)应⽤程序服务(四)共享存储1.1.5事件(event)事件也就是集群中可能发⽣的事情,例如节点系统故障、⽹络连通故障、⽹卡故障和应⽤程序故障等。
这些事件都会导致节点的资源发⽣转移,HA的测试也是基于这些事件进⾏的。
1.2什么是集群简单的说,集群(cluster)就是⼀组计算机,它们作为⼀个整体向⽤户提供⼀组⽹络资源,这些单个的计算机系统就是集群的节点(node)。
⼀个理想的集群是,⽤户从来不会意识到集群系统底层的节点,在他们看来,集群是⼀个系统,⽽⾮多个计算机系统;并且集群系统的管理员可以随意的增加和删改集群系统的节点。
与单⼀服务实体相⽐较,集群提供了以下两个关键的特性。
(⼀)可扩展性。
集群的性能不限于单⼀的服务实体,新的服务实体可以动态的加⼊到集群,从⽽增强集群的性能。
(⼆)⾼可⽤性。
集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。
当⼀台节点服务器发⽣故障的时候,这台服务器上所运⾏的应⽤程序将在另⼀节点服务器上被⾃动接管。
oracle 集群 原理
oracle 集群原理Oracle集群是指将多个数据库实例连接在一起,共同组成一个集群的系统。
集群的实现原理主要包括以下几个方面。
1. 共享存储:Oracle集群使用共享存储,将所有数据库实例共享一组物理数据文件。
这样,当一个实例修改了数据文件时,其他实例就能立即看到这些修改。
共享存储通常使用网络存储(如SAN)或直接连接的共享磁盘。
2. 全局资源管理器(GRD):GRD负责管理整个集群中的资源,包括数据库实例、服务、网络连接等。
GRD通过心跳机制检测实例是否正常工作,如果发现实例宕机或网络连接中断,会自动将服务迁移到其他正常实例上。
3. 数据库实例互连:集群中的数据库实例可以通过高速网络相互连接,实现数据的共享和同步。
实例之间通过监听器进行通信,监听器负责接收和传递网络请求。
4. RAC架构:Oracle RAC(Real Application Clusters)是Oracle集群的常用架构,在RAC架构中,每个数据库实例都运行在独立的服务器上,通过高速网络连接到共享存储。
RAC架构提供了可伸缩性和高可用性,多个实例可以同时处理请求,同时也可以自动故障转移。
5. 数据共享与同步:Oracle集群中的数据库实例可以共享同一组物理数据文件,实现数据的共享和同步。
当一个实例修改了数据文件时,会通过缓存和重做日志将修改的数据同步到其他实例上,保证数据的一致性。
6. 负载均衡:Oracle集群可以通过负载均衡机制,将用户请求均匀分配到不同的数据库实例上,提高系统的性能和响应速度。
负载均衡器会监控实例的负载情况,将请求路由到负载较低的实例上。
总之,Oracle集群通过共享存储、全局资源管理器、数据库实例互连、RAC架构、数据共享与同步、负载均衡等技术手段,实现多个数据库实例的协同工作,提高系统的可靠性、可用性和性能。
Oracle 12C RAC集群原理与管理实战-第一课
太阳塔科技
赵振平
DB2高可用性解决方案— CDC--Log-Based Change Data Capture
Monitoring and Configuration
Database
Web Services
TCP/IP
Message Queue
DB2, Oracle, SQL Server, Teradata,etc
赵振平
21
Oracle高可用性解决方案
RAC DataGuard
Oracle复制
GoldenGate SharePlex
2015.03.12
太阳塔科技
赵振平
22
MAA的注解
Maximum Availability Architecture (MAA)
2015.03.12
太阳塔科技
赵振平
23
Oracle高可用性解决方案--RAC(Real Application Cluster)
太阳塔科技
赵振平
37
Oracle 集群(RAC)的定义
一个Oracle集群(RAC)通常由多台服务器(每台服务器叫“节点”)和一台共享的 磁盘整列组成,他们共同形成一个整体,对外提供服务。 集群是软件和硬件的结合体,是一个整体解决方案
2015.03.12
太阳塔科技
赵振平
38
Oracle集群定义
备份失败
磁盘满 电源故障
网络故障
文件系统错误 应用程序故障
自然灾害
操作或管理失误
2015.03.12
太阳塔科技
赵振平
20
各种数据库的高可用性解决方案
Oracle高可用性解决方案 DB2高可用性解决方案 MySQL高可用性解决方案
oracle工作原理
oracle工作原理Oracle是一种关系型数据库管理系统(RDBMS),其工作原理主要包括数据存储、数据访问和数据处理。
以下是Oracle 的工作原理的详细解释:1. 数据存储:Oracle使用表(Table)来存储数据,每个表由一组列(Column)组成,列定义了每个数据项的类型。
表通过行(Row)来存储实际的数据记录。
在存储数据时,Oracle 根据定义的数据类型和大小限制,将数据按行组织成数据块(Data Block),并按照表空间(Tablespace)进行管理。
2. 数据访问:为了高效地访问数据,Oracle使用了B+树索引(Index)来加快查询速度。
索引是独立于表的数据结构,它由一组有序的键值对组成,其中键值是被索引的列的值,通过索引可以快速定位到符合条件的数据。
当查询需要访问表时,Oracle会根据查询条件选择合适的索引,然后根据索引进行快速的数据定位和检索。
3. 数据处理:在数据处理方面,Oracle采用了事务(Transaction)的概念来确保数据的一致性和完整性。
事务是一组操作的逻辑单元,可以是一个或多个数据库操作的集合。
Oracle通过使用日志(Redo Log)来记录所有事务的操作,以便实现数据库的恢复和回滚。
在进行复杂的数据处理时,Oracle还支持存储过程(Stored Procedure)和触发器(Trigger),通过预定义的逻辑代码提供更高级的数据处理能力。
此外,Oracle还具备高可用性和数据安全性的特点。
为了实现高可用性,Oracle支持数据库的冗余备份和集群技术,它可以自动将数据从一个节点复制到另一个节点,以保证数据的可靠性。
而为了保证数据的安全性,Oracle提供了用户认证、访问控制和数据加密等功能,以保护数据不被未授权的访问。
总结起来,Oracle作为一种关系型数据库管理系统,通过数据存储、数据访问和数据处理等核心功能,实现了高效、可靠和安全的数据管理。
Oracle RAC集群的简单介绍
Oracle RAC集群的简单介绍一、 Oracle集群体系结构Oracle RAC,全称是 Oracle Real Application Cluster,即真正的应用集群,是Oracle 提供的一个并行集群系统,整个集群系统由 Oracle Clusterware (集群就绪软件)和 Real Application Clusters(RAC)两大部分组成。
oracle RAC的实质是位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库,每个节点间通过私有网络进行通信,互相监控节点的运行状态,oracle 数据库所有的数据文件、联机日志文件、控制文件等均放在集群的共享存储设备上,而共享存储设备可以是 RAW、ASM、OCFS2 等,所有集群节点可以同时读写共享存储。
Oracle RAC 的基本拓扑结构如下所示:由拓扑结构可知:一个 Oracle Rac 数据库有多个服务器节点组成,每个服务器节点上都有自己独立的 OS、ClusterWare、oracle Rac 数据库程序等,并且每个节点都有自己的网络监听器。
ClusterWare 是一个集群软件,主要用于集群系统管理,oracle Rac 数据库程序用于提供 oracle 实例进程,以供客户端访问集群系统,监听服务主要用于监控自己的网络端口信息,所有的服务和程序通过操作系统都去访问一个共享存储,最终完成数据的读写。
共享存储的实现方式有很多种,可以通过使用自动存储管理(ASM)、Oracle 集群文件系统(OCFS)、裸设备(Raw)、网络区域存储(NAS)等来保证整个集群系统数据的一致性。
从 Oracle10g 起,Oracle 提供了自己的集群软件,即 Oracle clusterware,它通过 CRS(即 Cluster Ready Services)来实现,这个软件是安装 oracle rac 的前提,也是 RAC 环境稳定运行的基础,在 oracle10g 之前的版本,安装 RAC 时必须借助与第三方的集群软件,而在 oracle10g 以后,安装 oracle rac 时,可以用 oracle 自带的集群软件,也可以使用经过 RAC 认证的第三方集群软件来代替。
Oracle 集群学习笔记
1、Oracle 集群原理概述1.1 Oracle 集群的总体结构Oracle集群实质上就是使多个服务器访问同一个Oracle数据库,这样一方面可以避免一个服务器宕机时数据库不能访问(即高可用性) ,同时也可以进行并行运算和负载均衡。
要安装Oracle的集群,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。
同时至少需要两个软件:Oracle数据库软件(集成了RAC组件)和Oracle ClusterWare。
Oracle clusterware也可以使用经过了RAC认证的第三方集群软件来代替。
同时所有服务器上的OS都应该是同一类OS。
从软件组件上来讲,一个Oracle 集群由多台服务器组成,每台服务器有自己的监听器(Listener),用于监听自己的网络端口;每台服务有自己的Oracle RAC服务,用于数据库的集群访问;每台服务器有自己的集群就绪服务(clusterware) ,用于集群管理;所有的服务器通过自己的操作系统访问一个共享的存储设备,共享存储设备的存储机制可以使用裸设备(Raw)、Oracle集群文件系统(OCFS)、自动存储管理(ASM)或网络附属存储(NAS)。
当有客户端访问时,由上而下依次调用相应的软件。
从逻辑结构上来讲,集群中的每台服务器有一个实例,每台服务器上的实例都对应到同一个数据库。
关于Oracle软件和本地存档日志,既可以存储在本地磁盘上(如下图),也可以存储在共享磁盘上,这取决于在安装时选择的存储机制。
下图显示了更详细的逻辑结构。
客户端首先访问某个实例,让后再通过集群管理软件访问到数据库的数据;节点之间使用内部连接进行通讯。
1.2 Oracle Clusterware 体系结构Oracle Clusterware是一个集群软件,使用它做集群的所有操作系统必须相同。
使用Oracle Clusterware将多个装有相同操作系统的服务器捆绑到一起,当对这些集群的服务器进行访问时,就像访问一台服务器一样。
RAC_集群数据库原理
频繁从一个实例请求访问数据对象中的块,而块的资源主元数据通常位于其 他实例上
6
全局资源恢复
当一个或多个实例但不是所有实例都失败时:
失败的实例资源主元数据将丢失 必须恢复在仍正常运行的实例中具有影子的任何资源主元数据
仍正常运行的实例可以通过从仍然存在的影子元数据为同一资源收集详 细资料来重新生成该特定资源的资源主元数据。
用于内存结构的闩锁或互斥 用于资源控制的入队 用于高速缓存管理的缓冲区高速缓存插销
在 RAC 中,结构和资源可由在任何数据库实例上运行的会话访问或修改。 因此,RAC 需要额外的全局并发控制来协调各个实例间的访问。
全局锁控制库和行高速缓存访问 全局入队控制资源访问 高速缓存融合控制缓冲区高速缓存访问
首先是全局锁和入队元数据,然后是全局高速缓存元 数据。
重新生成将导致每个仍正常运行的实例主控所恢复的 资源主元数据的一部分。
7
全局资源后台进程
ACMS:内存服务的原子控制文件 LMHB:监视 LMON、LMD 和 LMSn 进程 LMD0:请求全局入队和实例锁 LMON:发出脉动并执行恢复 LMSn:处理全局高速缓存融合请求 LCK0:在库和行高速缓存锁定中调用 RCBG:处理全局结果高速缓存失效
Oracle RAC 集群数据库原理
目录
对全局并发控制的需求 全局资源目录 全局资源是如何管理的 RAC 全局资源访问协调
全局入队和实例锁管理 全局缓冲区高速缓存管理
2
对全局并发控制的需求
Oracle 需要并发控制,因为它是一个多用户系统。 单实例 Oracle 提供了以下并发控制:
3
全局资源目录 (GRD)
受制于全局并发控制的一个对象称为一个资源。 资源元数据存储在全局资源目录 (GRD) 中。
oracle_rac_12c核心技术原理__概述说明以及解释
oracle rac 12c核心技术原理概述说明以及解释1. 引言1.1 概述Oracle RAC(Real Application Clusters)是一种数据库集群技术,它允许多个数据库实例在同一个集群中运行,共享相同的物理存储。
相比于传统的单实例数据库,在RAC架构下,数据库的可扩展性、可用性和性能都得到了显著提升。
Oracle RAC 12c作为Oracle公司最新推出的版本,带来了更多的创新和改进,为企业提供了更强大的核心技术支持。
本文将对Oracle RAC 12c的核心技术原理进行概述说明和解释。
首先,我们会介绍RAC的基本概念和架构,包括多实例共享存储技术。
接着,我们将详细阐述RAC的部署和配置过程,涵盖安装Oracle Grid Infrastructure、创建RAC 数据库实例以及配置RAC集群环境。
随后,我们将重点关注Oracle RAC 12c 的故障恢复和高可用性机制,包括故障检测和恢复机制、数据保护和冗余机制以及高可用性管理和故障转移技术。
1.2 文章结构本文按照如下结构组织:首先是引言部分,简要介绍了文章的主题和结构;然后是Oracle RAC 12c核心技术原理部分,详细阐述了RAC的概念、架构和多实例共享存储技术;接着是Oracle RAC 12c的部署和配置部分,指导读者如何安装Grid Infrastructure、创建RAC数据库实例和配置集群环境;之后是故障恢复和高可用性机制部分,探讨了故障检测和恢复、数据保护和冗余以及高可用性管理和故障转移等关键内容;最后是结论部分,对文章内容进行总结,并展望Oracle RAC 12c的未来发展,并提出进一步研究的建议。
1.3 目的本文旨在传达对Oracle RAC 12c核心技术原理的深入理解,并提供一份完整的指南,帮助读者了解RAC的概念和架构,并掌握RAC的部署、配置以及故障恢复与高可用性机制。
通过本文的阅读与学习,读者将能够更好地利用Oracle RAC 12c来满足企业对于数据库可靠性、可扩展性以及高性能的需求。
Oracle RAC原理简要论述(doc 7页)
Oracle RAC原理简要论述(doc 7页)Oracle RAC原理Oracle RAC原理ORACLE RAC原理在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。
同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。
同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC 组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备。
逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。
节点之间通过集群软件的通讯层记录每个节点的相关信息Voting Disk - Establishes quorum (表决磁盘),仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。
‑RAC的组件************提供过了额外的进程,用来维护数据库LMS - Gobal Cache Service Process 全局缓存服务进程LMD - Global Enqueue Service Daemon 全局查询服务守护进程LMON - Global Enqueue Service Monitor全局查询服务监视进程LCK0 - Instance Enqueue Process 实例查询进程管理1、rac状态检查:application service状态应该都为online:HDOADB1:> crs_stat -tName Type Target State Host------------------------------------------------------------ora....s1.inst application ONLINE ONLINE hdoadb1ora....s2.inst application ONLINE ONLINE hdoadb2ora.ams.db application ONLINE ONLINE hdoadb2ora....B1.lsnr application ONLINE ONLINE hdoadb1ora....db1.gsd application ONLINE ONLINE hdoadb1ora....db1.ons application ONLINE ONLINE hdoadb1ora....db1.vip application ONLINE ONLINE hdoadb1ora....B2.lsnr application ONLINE ONLINE hdoadb2ora....db2.gsd application ONLINE ONLINE hdoadb2ora....db2.ons application ONLINE ONLINE hdoadb2ora....db2.vip application ONLINE ONLINE hdoadb2ora.orcl.db application ONLINE ONLINE hdoadb1ora....l1.inst application ONLINE ONLINE hdoadb1ora....l2.inst application ONLINE ONLINE hdoadb22、查看两台机器rac db状态:$ srvctl status database –d orcl$ srvctl status database –d ams查看一台机器的实例的状态$ srvctl status instance -d orcl -i orcl1特定节点上节点应用程序的状态社区论坛$ srvctl status nodeapps -n linux1VIP is running on node: linux1GSD is running on node: linux1Listener is running on node: linux1ONS daemon is running on node: linux13、关闭整个rac db:$ srvctl stop database –d orcl$ srvctl stop database –d ams$ srvctl stop nodeapps –n hdoadb1$ srvctl stop nodeapps –n hdoadb2用crs_stat命令来检查application service 状态应该都为offlineHDOADB1: > crs_stat -tName Type Target State Host------------------------------------------------------------OFFLINE hdoadb1ora....s2.inst application OFFLINE OFFLINE hdoadb2ora.ams.db application OFFLINE OFFLINE hdoadb2ora....B1.lsnr application OFFLINE OFFLINE hdoadb1ora....db1.gsd application OFFLINE OFFLINE hdoadb1ora....db1.ons application OFFLINE OFFLINE hdoadb1ora....db1.vip application OFFLINE OFFLINE hdoadb1ora....B2.lsnr application OFFLINE OFFLINE hdoadb2ora....db2.gsd application OFFLINE OFFLINE hdoadb2ora....db2.ons application OFFLINE OFFLINE hdoadb2ora....db2.vip application OFFLINE OFFLINE hdoadb2OFFLINE hdoadb1ora....l1.inst application OFFLINE OFFLINE hdoadb1ora....l2.inst application OFFLINE OFFLINE hdoadb24、开启整个rac db:正常情况下当机器启动时oracle rac会自动启动的。
了解数据库集群管理软件的基本原理
了解数据库集群管理软件的基本原理一、数据库集群管理软件的基本概念和作用数据库集群管理软件是一种用于管理数据库集群的工具,具有完善的功能和特性,可以大大提高数据库系统的可靠性、可用性和性能。
数据库集群是通过将多个独立的数据库服务器组合成一个整体来提供数据存储和访问服务的解决方案。
数据库集群管理软件主要用于控制和监控集群中的各个数据库节点,实现负载均衡、故障转移、数据复制和数据一致性等功能。
通过集群管理软件,可以有效地管理和分配资源,提高数据库系统的性能和扩展性,确保数据的安全性和可靠性。
二、数据库集群管理软件的基本原理1. 负载均衡负载均衡是数据库集群管理软件的基本原理之一。
通过将数据库请求分配到不同节点上进行处理,以实现数据库的负载分担,从而提高系统的处理能力和性能。
负载均衡可以根据节点的负载情况和性能指标,将请求合理地分配到各个节点上,保证数据库服务器的资源充分利用。
2. 故障转移故障转移是数据库集群管理软件的关键功能之一。
当一个节点发生故障或不可用时,集群管理软件可以自动将请求转移到其他正常的节点上进行处理,保证数据库系统的可用性和连续运行。
通过实时监控节点的状态和健康状况,集群管理软件可以及时发现故障节点,并进行故障转移操作,提高系统的容错能力。
3. 数据复制和同步数据复制和同步是数据库集群管理软件的重要特性之一。
通过在不同节点上建立数据库的副本,并实时同步数据的变化,可以提高数据库系统的可用性和数据的完整性。
当一个节点发生故障时,可以通过切换到其他节点上的数据副本来确保数据的连续访问。
同时,数据复制和同步也可以用于实现数据库的备份和恢复,提高数据的安全性和可靠性。
4. 数据一致性和事务处理数据一致性和事务处理是数据库集群管理软件的核心功能之一。
在多节点的分布式环境下,保证数据的一致性和事务的完整性是非常重要的。
数据库集群管理软件可以通过分布式锁和事务协调机制,确保在多个节点上的数据操作是有序进行的,并提供ACID 属性(原子性、一致性、隔离性和持久性)的事务处理能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章集群的概念和发展1集群的概念1.1集群相关术语定义1.1.1服务硬件服务硬件是指提供计算服务的硬件,比如PC机、PC服务器。
1.1.2服务实体服务实体通常指服务软体和服务硬体。
1.1.3节点(node)运行Heartbeat进程的一个独立主机称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和Heartbeat软件服务。
在Heartbeat集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有一个唯一的主机名,并且拥有属于自己的一组资源,例如磁盘、文件系统、网络地址和应用服务等。
主节点上一般运行着一个或者多个应用服务,而备用节点一般处于监控状态。
1.1.4资源(resource)资源是一个节点可以控制的实体,当节点发生故障时,这些资源能够被其他节点接管。
在Heartbeat中,可以当做资源的实体如下:(一)磁盘分区、文件系统(二)IP地址(三)应用程序服务(四)共享存储1.1.5事件(event)事件也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。
这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件进行的。
1.2什么是集群简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点(node)。
一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统;并且集群系统的管理员可以随意的增加和删改集群系统的节点。
与单一服务实体相比较,集群提供了以下两个关键的特性。
(一)可扩展性。
集群的性能不限于单一的服务实体,新的服务实体可以动态的加入到集群,从而增强集群的性能。
(二)高可用性。
集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。
当一台节点服务器发生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。
消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。
为了具有可扩展性和高可用性的特点,集群必须具备以下两大能力。
(一)负载均衡。
负载均衡能把任务比较均匀的分布到集群环境下的计算和网络资源,以便提高数据吞吐量。
(二)错误恢复。
如果集群中的某一台服务器由于故障或者维护需要而无法使用,资源和应用程序将转移到可用的集群节点上。
这种由于某个节点中的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程叫做错误恢复。
负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是相同的。
分布式与集群的联系与区别如下:(一)分布式是指将不同的业务分布在不同的地方。
(二)而集群指的是将几台服务器集中在一起,实现同一业务。
(三)分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。
比如互联网上访问的人多了,就可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将任务交给哪台去完成。
而分布式,从狭义上理解,也与集群差不多,但是它的组织比较松散,不像集群,有一定组织性,一台服务器宕了,其他的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点宕了,这个业务就不可访问了。
1.3集群技术实现集群无必要有以下两大技术:●集群地址集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。
具有单一集群地址(也叫单一影像)是集群的一个基本特征。
维护集群地址的设置称为负载均衡器。
负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。
有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。
只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障的时候,负载均衡器把后来的任务转向另外一个服务实体。
●内部通信为了能协同工作,实现负载均衡和错误恢复,集群各实体之间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。
具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。
内部通信是集群能够正常运转的基础,它使集群具有负载均衡和错误恢复的能力。
1.4集群分类集群主要分成三大类:●高可用集群(High Availability Cluster)。
常见的就是两个节点做成的HA集群,它还有很多通俗的不科学的名称,比如“双机热备”、“双机互备”、“双机”。
高可用集群保障用户应用程序持续对外提供服务的能力(注意高可用集群不是用来保护业务数据的,而是确保用户的业务程序对外不间断提供服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度)。
●负载均衡集群/负载均衡系统(Load Balance Cluster)集群中所有的节点都处于活动状态,他们分摊系统的工作负载。
一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器和数据库服务器。
这种集群可以在接到请求时,检查接受请求较少、不繁忙的服务器,并把请求转到这些服务器上。
从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
●科学计算集群(High Performance Computing Cluster)/高性能计算(High Performance Computing)集群。
简称HPC集群,这类集群致力于提供单个计算机所不能提供的强大的计算能力。
高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此之间没有什么关联。
这种类型的应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
2操作系统集群从单一处理机主机到多节点皆可构成高可用性之集群,可混用,且跨越系统大小及性能等级,将各种网络适配卡和磁盘子系统融合在一起来,以满足用户的应用程序、网络等方面的需求。
操作系统集群因不同的处理需求可以构成三种不同的模式:并行模式、互备模式、主备模式。
(一)同时访问模式(并行模式)适用在所有处理机必须在相同的工作负载及在相同的时间共享相同的数据之环境。
(二)相互备援模式则是集群中的各个节点分别承担应用和任务,并且各个节点之间相互备援。
(三)热待机模式则为一节点备援任何集群上的另一节点。
无论选择哪一种备援模式,集群所提供的数据访问及备援方案都将应用程序的执行及增长性在避免不正常死机状况下做了最优化处理。
3存储集群作为一项被广泛应用的技术,集群可提供按任何比例增加服务器或者存储资源的性能、容量、可靠性及可用性,突破了单机设备的种种限制。
传统的存储系统由于受到其物理组成(如磁盘驱动器的数量、所连接服务器的数量、内存大小和控制器性能)的限制,会造成很多功能上的局限(如支持文件系统的数量、快照或者复制的数量等)。
一旦遇到存储系统的瓶颈,就会不断的促使用户升级到更大的存储系统并添加更多的管理工具。
3.1集群中可调整的特性●性能(带宽、IOPS——每秒输入输出次数等)可提高到满足大型顺序读或写操作,或者是对时间敏感(Time-Sensitive)的随机读写面向事务型处理。
●可用性——消除单点故障、透明故障的转移(Failover),提高自我修复(Self-Heading)能力。
●存储容量和服务的连接访问(FC、以太网和InfiniBand接口)。
●可访问性(Accessibility)——包含块级(iSCSI、FC和InfiniBand)或者NAS(NFS、CIFS或者其他私有文件系统)和数据共享。
●基于开放或者私有的硬件和软件,使用紧密或者松散的互联技术来实现完全不共享、部分共享或完全共享架构(Shared Nothing、Shared Something or Shared Everything Architectures)。
通过下表可以看到很多不同类型的集群存储方案,其中包括集群和并行文件系统、集群文件服务器、集群NAS、集群iSCSI和FC存储等。
大多数的集群实现方式都满足了容量和可用性的需求。
一些集群存储方案也支持通过控制吞吐量和I/O操作方式来对性能进行调整,以达到简化和使用、管理的目的。
表格:集群存储的众多特征和例子件级)、可用性或者使用的难易程度几方面来考核。
集群存储并非就是那些高不可攀的、联合HPC(高性能计算)环境一起使用的大型顺序带宽(Sequential Bandwidth)或者并行文件系统代名词。
多用途的集群系统支持传统的商业应用,如电子邮件、数据库和在线事务处理(OLTP)等。
3.2满足不同应用性能和服务的需求清除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。
集群方案可以有效防止单点故障的发生,其N+1冗余特性,以及部件的热插拔特性和自我诊断能力可保证在错误造成麻烦前就将其发现、隔离并排除。
还有一种具有X+1冗余架构的存储系统一直处于灰色地带,人们对其是否属于集群还存在争议。
在N+1冗余架构模式中,存在两个或者更多个(N个)主要I/O节点或控制器,也就是所谓的NAS头和备用或故障转移节点,例如EMC的Celerra NSX和Pillar Axiom。
是厂商的命名体系才使得这种N+1模式显得十分混乱,如将包含有双控制器的RAID阵列或者双NAS头的方案称作提高可用性的集群。
一个集群就是一个Gird(网格)么?这取决于对Gird的定义,把Gird看做是一项服务、架构,还是基于硬件或软件的、跨越距离的其他能力。
对于怎样才算服务器和存储环境组成了一个Gird或者集群这件事情,存在着很多不同的厂商和行业定义和意见。
各种集群存储方案中的不同之处包括以下几个方面。
1.节点彼此之间如何连接(松散的或紧密的连接,开放或者私有)。
2.节点间的I/O性能和负载平衡。
3.适当的硬件、开发和现有产品(off-the-shelf)或支持第三方服务器或者存储。
4.文件共享,包含集群文件系统软件,基于主机的代理或者驱动。
5.本地或者远程的镜像或者复制,及时点(Point-in-time)复制或者快照。
6.具备虚拟化的存储块增长,实现自动负载均衡。
7.性能自适应顺序读写或者随机访问。
8.分布式锁管理(Distributed Lock Management)和集群特性一致。
理解集群存储间的不同的含义、类型和实现方式,将帮助用户挑选最合适的方案。
集群存储非常适合那些持续增长的所有规模的不同环境,实现即时供应(Just-in-time)存储,避免破快性升级和增加管理的复杂性。