ORACLERAC工作原理
在一个应用环境当中 所有的服务器使用和管理同一个数据库 目的是为了分散每一台服务器的工作量 硬件上至少需要两台以上的服务器 而且还需要一个共享存储设备 同时还需要两类软件 一个是集群软件 另外一个就是Oracle数据库中的RAC组件 同时所有服务器上的OS都应该是同一类OS 根据负载均衡的配置策略 当一个客户端发送请求到某一台服务的listener后 这台服务器根据我们的负载均衡策略 会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理 处理完请求后 RAC会通过集群软件来访问我们的共享存储设备 逻辑结构上看 每一个参加集群的节点有一个独立的instance 这些instance访问同一个数据库 节点之间通过集群软件的通讯层(munication layer)来进行通讯 同时为了减少IO的消耗 存在了一个全局缓存服务 因此每一个数据库的instance 都保留了一份相同的数据库cache RAC中的特点是 每一个节点的instance都有自己的SGA 每一个节点的instance都有自己的background process 每一个节点的instance都有自己的redo logs 每一个节点的instance都有自己的undo表空间 所有节点都共享一份datafiles和controlfiles Oracle还提出了一个缓存融合的技术(Cache fusion) 目的有两个 保证缓存的一致性IXPUB技术博客 减少共享磁盘IO的消耗IXPUB技术博客 因此在RAC环境中多个节点保留了同一份的DB CACHE 缓存融合(Cache fusion)工作原理 **************************************** 其中一个节点会从共享数据库中读取一个block到db cache中 这个节点会在所有的节点进行交叉db block copy 当任何一个节点缓存被修改的时候 就会在节点之间进行缓存修改 为了达到存储的一致最终修改的结果也会写到磁盘上 ClusterWare组件 ******************* 有四种Service Crsd 集群资源服务 Cssd 集群同步服务 Evmd 事件管理服务 oprocd 节点检测监控 有三类Resource VIP 虚拟IP地址(Virtual IP) OCR Oracle Cluster Registry(集群注册文件) 记录每个节点的相关信息 Voting Disk Establishes quorum (表决磁盘) 仲裁机制用于仲裁多个节点向共享节点同时写的行为 这样做是为了避免发生冲突 RAC的组件 ************ 提供过了额外的进程 用来维护数据库 LMS Gobal Cache Service Process 全局缓存服务进程 LMD Global Enqueue Service Daemon 全局查询服务守护进程 LMON Global Enqueue Service Monitor全局查询服务监视进程 lishixinzhi/Article/program/Oracle/201311/18345
请问oracle数据库RAC是什么意思?
RAC,全称real application clusters,译为“实时应用集群”, 通俗点讲就是数据库集群
它是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。
优点 Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
(1)多节点负载均衡;
(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
缺点 (1)相对单机,管理更复杂,要求更高;
(2)在系统规划设计较差时性能甚至不如单节点;
(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)。
在Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。
oracle rac问题
rac不是分布式数据库,rac结构无论多少个实例都是一个数据库,事务间不需要协调,而所谓的分布式数据库是多个数据库协同工作,事务间需要协调机制。
1、数据库中建立的表是在机器1还是在机器2呢?
答:机器1和机器上2看到的数据库实际上是同一个数据库,所以表既可以在机器1上看到也可以在机器2上看到。
2、如果有个表,在做机器1停机维护时(此时机器2仍可供访问),对这个机器上的表做索引重建,那么是否会影响机器2的使用?
答:如果机器1上的实例对表重建索引,其效果等于机器2上的实例对表重建索引,所以会影响机器2对该表的使用。例如你在机器1上重建索引时没有加上online关键字,重建过程中机器2不能对该表进行dml。
补充:
机器1和机器2看到的库实际上是同一个库,所以在机器1上给某表重建索引时对该表加的锁,也会影响机器2对该表的使用。就像我前面说的,假如你在机器1上重建索引时没有加上online关键字,重建过程中机器2不能对该表进行dml。再进一步说明,你在机器1上重建索引的过程中,机器2也不能将这个表drop掉,原因就是机器1在这个表上加上了ddl锁。
如何进行 Oracle 10g RAC关闭及启动
如何进行 Oracle 10g RAC关闭及启动
情况1: 保养数据库及操作系统,服务器,需要关闭DB(所有实例),OS及Server
a. 首先停止Oracle10g 环境
$ lsnrctl stop (每个节点上停止监听,也可以用srvctl来操作)
$ emctl stop dbconsole (每个节点停止dbconsole)
$ srvctl stop database -d RACDB (停止数据库所有实例)
$ srvctl stop nodeapps -n node1 (停节点1服务)
$ srvctl stop nodeapps -n node2 (停节点2服务)
# /etc/init.d/init.crs stop (root 停cluster 软件)(两节点)
或者用 $ crs_stop -all
crsctl stop crs
b. 然后# init 0 关闭服务器,或者如果重新启动#init 6
c. 关闭电源 。
d. 开启Server ,开始开启Oracle10g数据库及服务等(如果OS重新启动,那么下面的所有服务是自动打开的【除了dbconsole】,不用手工执行了)。
$ srvctl start nodeapps -n node1 (开启节点1服务)
$ srvctl start nodeapps -n node2 (开启节点2服务)
# /etc/init.d/init.crs start (root 开启cluster 软件)
或者用 $ crs_start -all
$ srvctl start database -d RACDB (开启数据库所有实例)
$ lsnrctl start (每个节点上停止监听,也可以用srvctl来操作)
$ emctl start dbconsole (每个节点开启dbconsole)
如何进行 Oracle 10g RAC关闭及启动
您好,很高兴为您解答。
情况1: 保养数据库及操作系统,服务器,需要关闭DB(所有实例),OS及Server
a. 首先停止Oracle10g 环境
$ lsnrctl stop (每个节点上停止监听,也可以用srvctl来操作)
$ emctl stop dbconsole (每个节点停止dbconsole)
$ srvctl stop database -d RACDB (停止数据库所有实例)
$ srvctl stop nodeapps -n node1 (停节点1服务)
$ srvctl stop nodeapps -n node2 (停节点2服务)
# /etc/init.d/init.crs stop (root 停cluster 软件)(两节点)
或者用 $ crs_stop -all
crsctl stop crs
b. 然后# init 0 关闭服务器,或者如果重新启动#init 6
c. 关闭电源 。
d. 开启Server ,开始开启Oracle10g数据库及服务等(如果OS重新启动,那么下面的所有服务是自动打开的【除了dbconsole】,不用手工执行了)。
$ srvctl start nodeapps -n node1 (开启节点1服务)
$ srvctl start nodeapps -n node2 (开启节点2服务)
# /etc/init.d/init.crs start (root 开启cluster 软件)
或者用 $ crs_start -all
$ srvctl start database -d RACDB (开启数据库所有实例)
$ lsnrctl start (每个节点上停止监听,也可以用srvctl来操作)
$ emctl start dbconsole (每个节点开启dbconsole)
注: srvctl 也可以用来关闭某个实例:
srvctl stop instance -d RACDB -i RACDB1
srvctl 开启关闭监听器:
srvctl stop listener -n orcl2
srvctl start listener -n orcl2
情况2: 调整数据库参数的时候,只关闭所有节点实例,不重新启动OS及Server 。
a.首先停止Oracle10g 环境
$ lsnrctl stop (在所有节点上停止监听,也可以用srvctl)
$ srvctl stop database -d tpc (停止数据库所有实例)
b. 然后开启所有实例及监听器。
$ srvctl start database -d tpc (开启数据库所有实例)
$ lsnrctl start (开启所有节点上监听,也可以用srvctl 开启监听)
情况3: 不关闭操作系统的情况下,由于问题点或调整某些服务而需要关闭然后开启某些服务程序等
关闭某些服务的时候,由于涉及到RAC运行,所以也需要先关闭数据库实例,类似于第一种情况。
附Oracle10g RAC检查命令 :
----------------------------------------------
Oracle10g RAC数据库的 nodeapps 有 VIP, GSD, Listener, ONS .
$ srvctl status nodeapps –n dbrac1 (检查VIP, GSD,ONS, Listener 等(所有节点))
VIP is running on node: dbrac1
GSD is not running on node: dbrac1
Listener is not running on node: dbrac1
ONS daemon is not running on node: dbrac1
gnd-rac01$crsctl check crs (检查Oracle Cluster 状态: CSS, CRS, EVM .)
CSS appears healthy
CRS appears healthy
EVM appears healthy
gnd-rac01$ crs_stat -t (全面检查状态 )
Name Type Target State Host
┅┅┅┅┅┅┅┅┅?br /> ora....01.lsnr application ONLINE ONLINE gnd-rac01
ora....c01.gsd application ONLINE ONLINE gnd-rac01
ora....c01.ons application ONLINE ONLINE gnd-rac01
ora....c01.vip application ONLINE ONLINE gnd-rac01
ora....02.lsnr application OFFLINE OFFLINE
ora....c02.gsd application ONLINE ONLINE gnd-rac02
ora....c02.ons application ONLINE ONLINE gnd-rac02
ora....c02.vip application ONLINE ONLINE gnd-rac02
ora.tpc.db application ONLINE ONLINE gnd-rac01
ora....c1.inst application ONLINE ONLINE gnd-rac01
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
Oracle的RAC做数据库的负载均衡,有什么优点和缺点
RAC编辑〔RAC提供的优缺点〕RAC,全称realapplicationclusters,译为“实时应用集群”,是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。OracleRACRAC提供的优缺点优点OracleRAC主要支持Oracle9i、10g、11g版本,可以支持24x7有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在OracleRAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。(1)多节点负载均衡;(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。缺点(1)相对单机,管理更复杂,要求更高;(2)在系统规划设计较差时性能甚至不如单节点;(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)。在Oracle9i之前,RAC的名称是OPS(OracleparallelServer)。RAC与OPS之间的一个较大区别是,RAC采用了CacheFusion(高速缓存合并)技术。在OPS中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cachefusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。
oracle rac是什么
RAC编辑〔RAC提供的优缺点〕
RAC,全称real application clusters,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。
Oracle RAC
RAC提供的优缺点
优点
Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
(1)多节点负载均衡;
(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;
(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;
(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;
(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
缺点
(1)相对单机,管理更复杂,要求更高;
(2)在系统规划设计较差时性能甚至不如单节点;
(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)。
在Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。