1、RAC One Node介绍
一、rac one node数据库能够转换成RAC数据库,转换过程能够在线,无需中止RAC one node数据库;
二、rac one node能够建立多个rac onde node数据库运行在不一样的节点上;
三、当运行节点须要维护,如打patch,能够手动切换(relocate)使用online database relocate,减小业务中断时间;
四、rac one node比RAC数据库减小了节点间数据传输时间以及GC类的等待事件;
五、从11.2.0.1开始就有了rac one node特性,但仅仅支持linux平台,在11.2.0.2之后支持全部平台;
参考文档:Oracle RACOne Node -- Changes in 11.2.0.2 (文档 ID 1232802.1)?
2、使用DBCA建立RAC One Node
[oracle@jzh1 ~]$ dbca
2.1 选择"Oracle RAC One Node database"
后面建立数据库与建立RAC数据库基本一致,过程省略。。。。。
2.二、RAC one数据库基本信息
$ srvctl config database -d jzh
Database unique name: jzh
Database name: jzh
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/jzh/spfilejzh.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: jzh
Database instances:
Disk Groups: DATA,ARCH
Mount point paths:
Services: jzhdb==============》新建的Service
Type: RACOneNode===========》数据库类型是 one node
Online relocation timeout: 30
Instance name prefix: jzh
Candidate servers: jzh1,jzh2
Database is administrator managed
2.三、数据库配置信息
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string jzh
db_unique_name string jzh
global_names boolean FALSE
instance_name string jzh_1==========》实例名,在RAC数据库中实例通常为jzh1,而在RAC One Node中多了"_"。
lock_name_space string
log_file_name_convert string
processor_group_name string
service_names string jzhdb
2.四、集群信息
SQL> show parameter cluster_database
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
2.五、RAC One Node切换(relocate)
查询当前实例运行状况:
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.DATA.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.LISTENER.lsnr
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.VOTE.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.asm
ONLINE ONLINE jzh1 Started
ONLINE ONLINE jzh2 Started
ora.gsd
OFFLINE OFFLINE jzh1
OFFLINE OFFLINE jzh2
ora.net1.network
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.ons
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE jzh2
ora.cvu
1 OFFLINE OFFLINE
ora.jzh.db
1 ONLINE ONLINE jzh1 Open
ora.jzh.jzhdb.svc
1 ONLINE ONLINE jzh1
ora.jzh1.vip
1 ONLINE ONLINE jzh1
ora.jzh2.vip
1 ONLINE ONLINE jzh2
ora.oc4j
1 ONLINE ONLINE jzh2
ora.scan1.vip
1 ONLINE ONLINE jzh2
数据库与service均运行在节点1上(jzh1)
2.六、使用relocate将RAC One Node数据库切到节点2上(jzh2)
$ srvctl relocate database -d jzh -n jzh2
relocate以后,再次查询RAC One Node运行状况:
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.DATA.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.LISTENER.lsnr
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.VOTE.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.asm
ONLINE ONLINE jzh1 Started
ONLINE ONLINE jzh2 Started
ora.gsd
OFFLINE OFFLINE jzh1
OFFLINE OFFLINE jzh2
ora.net1.network
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.ons
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE jzh2
ora.cvu
1 OFFLINE OFFLINE
ora.jzh.db
2 ONLINE ONLINE jzh2 Open
ora.jzh.jzhdb.svc
1 ONLINE ONLINE jzh2
ora.jzh1.vip
1 ONLINE ONLINE jzh1
ora.jzh2.vip
1 ONLINE ONLINE jzh2
ora.oc4j
1 ONLINE ONLINE jzh2
ora.scan1.vip
1 ONLINE ONLINE jzh2
此时,数据库与service切换至节点2上(jzh2)。
2.七、查看数据库配置信息
[grid@jzh1 ~]$ srvctl config service -d jzh
Service name: jzhdb
Service is enabled
Server pool: jzh
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: jzh_2
Available instances:
2.8 转换RAC One Node至RAC
注:以RAC One Node database拥有者执行如下命令:
$ su - oracle
$ srvctl convert database -d jzh -c RAC -n jzh1
$ srvctl config database -d jzh
Database unique name: jzh
Database name: jzh
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/jzh/spfilejzh.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: jzh
Database instances: jzh_1
Disk Groups: DATA,ARCH
Mount point paths:
Services: jzhdb
Type: RAC
Database is administrator managed
咱们能够看到Type类型变成RAC了。
2.九、添加节点2(jzh2)实例
$ srvctl add instance -d jzh -i jzh_2 -n jzh2
$ srvctl config database -d jzh
Database unique name: jzh
Database name: jzh
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/jzh/spfilejzh.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: jzh
Database instances: jzh_1,jzh_2
Disk Groups: DATA,ARCH
Mount point paths:
Services: jzhdb
Type: RAC
Database is administrator managed
这里咱们看到jzh_2添加进来了。
$ srvctl start database -d jzh
$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.DATA.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.LISTENER.lsnr
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.VOTE.dg
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.asm
ONLINE ONLINE jzh1 Started
ONLINE ONLINE jzh2 Started
ora.gsd
OFFLINE OFFLINE jzh1
OFFLINE OFFLINE jzh2
ora.net1.network
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
ora.ons
ONLINE ONLINE jzh1
ONLINE ONLINE jzh2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE jzh2
ora.cvu
1 OFFLINE OFFLINE
ora.jzh.db
1 ONLINE ONLINE jzh1 Open
2 ONLINE ONLINE jzh2 Open
ora.jzh.jzhdb.svc
1 ONLINE ONLINE jzh1
ora.jzh1.vip
1 ONLINE ONLINE jzh1
ora.jzh2.vip
1 ONLINE ONLINE jzh2
ora.oc4j
1 ONLINE ONLINE jzh2
ora.scan1.vip
1 ONLINE ONLINE jzh2
这里能够看到DB运行在jzh1,jzh2上。
2.十、从新配置服务
$ srvctl stop service -d jzh -s jzhdb
$ srvctl remove service -d jzh -s jzhdb
$ srvctl add service -d jzh -s jzhdb -r jzh_1,jzh_2 -P BASIC
$ srvctl start service -d jzh -s jzhdb
至此,RAC One Node配置完成!php
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------html
1. 概述前端
RAC One Node是11.2的新特性, 是RAC数据库中的一个实例运行在GRID集群中,而且能够实现failover。node
这个功能有些相似于咱们之前俗称的"HA数据库" <HA - high availability>, "HA数据库"是利用其余厂商的集群软件来管理Oracle单机数据库,实现数据库的高可用。而RAC One Node是经过ORACLE 集群软件(GRID)来管理数据库,实现数据库能够在集群中节点上切换(failover/relocate),达到数据库高可用的特色。RAC One Node是彻底由Oracle提供的一整套高可用的解决方案。linux
在11.2以前,为了实现数据库的高可用<俗称"HA数据库">,一般的作法是将单机数据库部署在其余厂商集群环境中(好比 HP MC/SG, IBM HACMP 等)管理,来实现数据库的高可用。即单机数据库运行在主节点上,当主节点须要维护或者异常中断的状况下,经过厂商集群软件将服务IP资源组和数据文件资源组切换(failover)到备节点,将数据库在备用节点从新启动。这个过程咱们通常称为cold failover,由于数据库在切换的过程当中是先shutdown再open。数据库
RAC One Node的原理与之前的HA数据库不一样,RAC One Node是基于RAC数据库,而且经过Oracle集群软件(GRID)管理实现只启动RAC数据库的一个实例,当运行实例的节点须要维护停机的状况下,能够经过online database relocation的方式将数据库实例切换到集群中的其余节点上运行。缓存
2. RAC One Node 特色安全
+ RAC One Node 数据库很容易转变成RAC数据库, 转变过程是online的,不须要停RAC One node数据库.服务器
+ 在GRID环境中能够建立多个RAC One Node数据库,分别运行在不一样的节点上,加强了硬件的利用率。网络
+ RAC One Node配置所有采用oracle产品,管理维护和故障排除也变的更加简单。
+ 若是当前运行节点须要维护(OS 打patch等)或者服务器资源不足等等,能够手动切换数据库(relocate)到备用服务器,采用online database relocation,能够减小业务中断时间(应用须要配置TAF).
+ 对比RAC数据库,RAC One Node 数据库在性能方面也有优点,好比减小了RAC实例之间消息/数据请求传输的时间以及GC等待时间。
3. 到目前为止RAC One Node 发展经历了2 个阶段,阶段一是11.2.0.1,阶段二是11.2.0.2及之后.在11.2.0.1版本上,运行脚本raconeinit.sh来配置RAC One,运行omotion 脚原本手动切换(relocate),可是到11.2.0.2及之后,安装配置集成在DBCA,切换动做也集成在srvctl命令中。
4. 参考文档:
http://docs.oracle.com/cd/E11882_01/rac.112/e16795/onenode.htm
-- 4 Administering Oracle RAC One Node
Oracle RACOne Node -- Changes in 11.2.0.2 (Doc ID 1232802.1)
RAC One Node 安装配置具体测试过程请下载附件: Oracle_11gR2_RAC_One_node_configure_and_admin(v0.2).pdf
-------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- --------------
2016年10月09日 22:50:09 阅读数:1069 更多
我的分类: Oracle RAC
Oracle RAC one node是Oracle 11gR2 中引入的特性。该特性仅在Oracle Database 11g Release 2 Enterprise Edition 中支持。而且是须要单独收费的,能够无偿使用10天,已用来作其余的迁移方案。RAC one node每一个处理器须要$10000,比RAC 的每一个处理器$23000要便宜点,对于2个节点的rac one node,只须要买一个节点的受权便可。
官网说明:
Administering Oracle RAC One Node
http://docs.oracle.com/cd/E11882_01/rac.112/e16795/onenode.htm
http://docs.oracle.com/cd/E11882_01/rac.112/e16795/whatsnew.htm
Oracle RAC onenode提供的是一种cold failover 方案。假设在2个节点的rac one node上,实例只在其中一个节点运行,另外一个节点就做为coldstandby 存在。 若是实例faild,那么RAC ONE Node 检测到后,首先会在相同的节点尝试restart。若是当前节点出现问题,或者实例不能restart,那么instance 会被relocated 到standby 的节点上去。Relocated的过程是自动实现的,不须要downtime 和人工的介入。Relocated 使用的是Omotion,使用Omotion 能够对实例进行migration 和 relocation。
简单的来讲,RAC ONE NODE 也是基于多节点来实现,多节点之间也是须要安装clusterware,多节点造成一个single cluster,而实例只在其中一个节点上运行。 当出现问题时经过Omotion技术将实例转移到single cluster中的其余节点上行。 固然也能够手工使用omotion来进行转移,从而实现零停机的升级和打补丁等操做。
Both RAC 和 RAC One Node 的区别:
(1) RAC failover:
RAC usesmultiple servers (nodes) and the tnsnames.ora file directs failover to asurviving server when a node crashes.
(2) RAC One Nodefailover:
RAC One Nodeuses "instance relocation", and when an instance fails, RAC One Nodere-starts a failed instance on another node, by re-mounting the disk on the newserver and using the pfile/spfile to re-start the instance.
Oracle RAC One Node 引入了2个新工具:
(1) OracleDatabase Resource Manager Instance Caging :
The new instancecaging features is part of the database resource manager in RAC One Node, atool to allocate server resources to multiple instances running on the sameserver.
(2) Omotiononline migration utility :
This is a newRAC One Node utility that allows for a RAC instance to be quickly"lifted" and copied to a new server node.
Oracle RAC One node 有以下优势:
(1) Built-in cluster failover for high availability
(2) Rolling patches for single instance database
(3) Proactive migration / failover of the instance
(4) Live migration of instances across servers
(5) Online upgrade to RAC
RAC one node的滚动升级是很是有用的功能,使用该特性,能够实现零停机的进行升级。
RAC one node 不适用以下环境:
(1) To load balance unlike regular RAC
(2) A true high availability solution
(3) As a DR solution; Data guard best suits the bill
(4) For mission critical applications
这里一个RAC ONE NODE的框架图:
这里有3个节点的RACone node。 其中Server A 上运行着实例DB1 和 DB2. Server B上运行实例DB3.Server C上运行实例DB4和DB5. 即每一个实例只在一个节点上运行,同一个节点上能够运行多个不一样的实例。
Omotion 进行migrate的过程以下图因此:
Omotion 适用的情景:
(1) Omotion moves aRAC One Node instance from one server to another—without any downtime
(2) Use Cases
• Load balancing
• Database + OS patching and maintenance
(3) Oracle suppliedtools control migration
• Services are not accepting connections on both nodes at the sametime
• Migrated instance shutdown transactional once services moved
• A maximum of 30 minutes allowed for connections to migrate (thenshutdown abort)
Rolling Online Patching :
(1) Rolling upgradeable RAC patches are also rolling upgradeable withRAC One Node
(2) Omotion migration followed by patching
(3) When patching complete, the primary instance is brought back onlineand the secondary instance is shutdown (reverse Omotion)
当Server B节点出现故障,经过Omotion技术将实例DB3 转移到Server C上:
参考文档:
http://dbathoughts.blogspot.com/2010/04/oracle-rac-one-node-what-is-it.html
http://www.dba-oracle.com/t_rac_one_node.htm
http://www.databasejournal.com/features/oracle/article.php/3906196/Moving-to-Oracle-RAC-One-Node.htm
http://www.oracleracsig.org/pls/apex/RAC_SIG.download_my_file?p_file=1003078
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2017年06月11日 21:08:42 阅读数:1318
时代老是在进步的,这老是得益于新的生产技术的出现,咱们老是有太多的问题须要解决,对于技术人员来讲,当一项新的技术的出现并解决了困扰已久的问题的时候,这无疑是最激动人心的,它不只把咱们从落后的生产过程当中解放出来,更重要的是,它能使生产力更大化、成本更小化。如更好的资源利用和更少的停机时间。本文主要谈谈oracle rac中的一项新技术革新,即oracle rac one node。在分析过程当中,会引用一些旧有技术作对比,如VM,FAILOVER和实例迁移等
Oracle Real ApplicationClusters One Node 是 Oracle Database 11g 第 2 版企业版的一个新选件。它对服务器虚拟化的诸多优点加以改进,并将这些优点扩展到物理服务器环境中运行的数据库。它容许在集群中的数据库以单实例的方式运行在一个节点上。对于计划和非机划的停机能提供更有效地保护。咱们老是但愿业务可以持续的运行、系统能获得更可能的保护、升级和迁移的代价最小化,而新技术是否须要被采用,须要具体分析它的技术革新性。
传统的Oracle RAC被用于多服务器架构体系,此体系中,RAC的许多分开的实例分置于不一样的服务器。这就防止了服务器非计划故障,由于透明应用程序故障切换(TAF)会重定向到另外一个服务器。可是在Oracle 11g第二版中有一个新的被称为“RAC One Node”的特性,它主张将RAC的多个实例运行在一台群集的服务器上。它有一个快速的 “实例重定向(instance relocation)”的特性 ,来防止突发的服务器故障。
Oracle RAC One Node提供的是一种cold failover 方案。假设在2个节点的rac one node上,实例只在其中一个节点运行,另外一个节点就做为cold standby存在。 若是实例faild,那么RAC ONE Node 检测到后,首先会在相同的节点尝试restart。若是当前节点出现问题,或者实例不能restart,那么instance 会被relocated 到standby 的节点上去。Relocated的过程是自动实现的,不须要downtime 和人工的介入。Relocated 使用的是Omotion,使用Omotion 能够对实例进行migration 和 relocation。
简单的来讲,RAC ONE NODE 也是基于多节点来实现,多节点之间也是须要安装clusterware,多节点造成一个single cluster,而实例只在其中一个节点上运行。当出现问题时经过Omotion技术将实例转移到single cluster中的其余节点上行。固然也能够手工使用omotion来进行转移,从而实现零停机的升级和打补丁等操做。
RAC One Node是11.2的新特性, 是RAC数据库中的一个实例运行在GRID集群中,而且能够实现failover。
这个功能有些相似于咱们之前俗称的"HA数据库" <HA - high availability>, "HA数据库"是利用其余厂商的集群软件来管理Oracle单机数据库,实现数据库的高可用。而RAC One Node是经过ORACLE 集群软件(GRID)来管理数据库,实现数据库能够在集群中节点上切换(failover/relocate),达到数据库高可用的特色。RAC One Node是彻底由Oracle提供的一整套高可用的解决方案。
在11.2以前,为了实现数据库的高可用<俗称"HA数据库">,一般的作法是将单机数据库部署在其余厂商集群环境中(好比 HP MC/SG, IBM HACMP 等)管理,来实现数据库的高可用。即单机数据库运行在主节点上,当主节点须要维护或者异常中断的状况下,经过厂商集群软件将服务IP资源组和数据文件资源组切换(failover)到备节点,将数据库在备用节点从新启动。这个过程咱们通常称为cold failover,由于数据库在切换的过程当中是先shutdown再open。
这里一个RAC ONE NODE的框架图:
从图上咱们看出,rac one node,有3个物理主机,Server A、ServerB、Server C,这3个物理主机组成一个single cluster,在3个主机上,能够有5个不一样的single instance的database,DB1和DB2host在Server A上,DB3 host在Server B上,DB 4和DB 5host在Server C上。各个数据库使用共享存储。
RAC,全称realapplication clusters,译为“实时应用集群”,是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是 Oracle 数据库 支持 网格计算 环境的核心技术。
RAC提供的优缺点:
优势:
Oracle RAC主要支持Oracle9i、10g、11g版本,能够支持24 x 7 有效的 数据库应用系统 ,在低成本服务器上构建高可用性 数据库系统 ,而且自由部署应用,无需修改代码。在OracleRAC环境下,Oracle集成提供了 集群 软件和存储管理软件,为用户下降了应用成本。当应用规模须要扩充时,用户能够按需扩展系统,以保证系统的性能。
多 节点 负载均衡;
提供高可用:故障容错和无缝切换功能,将硬件和 软件错误 形成的影响最小化;
经过 并行执行 技术提升 事务 响应时间----一般用于数据分析系统;
经过横向扩展提升每秒交易数和链接数----一般对于联机 事务 系统;
节约硬件成本,能够用多个廉价PC服务器代替昂贵的 小型机 或大型机,同时节约相应维护成本;
可扩展性好,能够方便添加删除节点,扩展硬件资源。
缺点:
相对单机,管理更复杂,要求更高;
在系统规划设计较差时性能甚至不如单节点;
可能会增长软件成本(若是使用高配置的pc服务器,Oracle通常按照CPU个数收费)。
在Oracle9i以前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中, 节点 间的数据请求须要先将数据写入磁盘,而后发出请求的节点才能够读取该数据。使用Cache fusion时,RAC的各个节点的 数据缓冲区 经过高速、低延迟的内部网络进行 数据块 的传输。
RAC中的特色 :
在一个应用环境当中,全部的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工做量,硬件上至少须要两台以上的服务器,并且还须要一个共享存储设备。同时还须要两类软件,一个是 集群 软件,另一个就是Oracle数据库中的RAC组件。同时全部服务器上的OS都应该是同一类OS,根据 负载均衡 的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据咱们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另一台服务器的RAC组件处理,处理完请求后,RAC会经过 集群 软件来访问咱们的共享存储设备.
逻辑结构 上看,每个参加集群的节点有一个独立的instance(数据库实例),这些instance访问同一个数据库。节点之间经过 集群 软件的通信层(communicationlayer)来进行通信。同时为了减小IO的消耗,存在了一个全局 缓存服务 ,所以每个数据库的instance,都保留了一份相同的数据库cacheI
每个节点的instance都有本身的SGA
每个节点的instance都有本身的background process
每个节点的instance都有本身的redo logs
每个节点的instance都有本身的undo表空间
全部节点都共享一份datafiles和controlfiles
计算机的高可用性
计算机系统的可靠性用平均无端障时间(MTTF)来度量,即计算机系统平均可以正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无端障时间越长。可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和从新恢复正常运行平均花费的时间。系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR) * 100%。因而可知,计算机系统的可用性定义为系统保持正常运行时间的百分比。
负载均衡服务器的高可用性
为了屏蔽负载均衡服务器的失效,须要创建一个备份机。主服务器和备份机上都运行High Availability监控程序,经过传送诸如“I am alive”这样的信息来监控对方的运行情况。当备份机不能在必定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主管理器就开始再次进行 集群 管理的工做了。为在主服务器失效的状况下系统能正常工做,咱们在主、备份机之间实现负载 集群系统 配置信息的同步与备份,保持两者系统的基本一致。
HA的容错备援运做过程
自动侦测(Auto-Detect)阶段由 主机 上的软件经过 冗余 侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的状况,所检查的项目有: 主机 硬件(CPU和周边)、 主机 网络、 主机操做系统 、数据库引擎及其它应用程序、主机与 磁盘阵列 连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,而且由主机的 冗余 通讯连线,将所聚集的讯息记录下来,以供维护参考。
自动切换(Auto-Switch)阶段 某一主机若是确认对方故障,则正常主机除继续进行原来的任务,还将依据各类容错备援模式接管预先设定的备援做业程序,并进行后续的程序及服务。
自动恢复 (Auto-Recovery)阶段在正常主机代替故障主机工做后,故障主机可离线进行修复工做。在故障主机修复后,透过 冗余 通信线与原正常主机连线,自动切换回修复完成的主机上。整个恢复过程完成由EDI-HA自动完成,亦可依据预先配置,选择回复动做为半自动或不恢复。
HA工做方式
u 主从方式(非对称方式)
工做原理:主机工做,备机处于监控准备情况;当主机宕机时,备机接管主机的一切工做,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性经过共享 存储系统 解决。
u 双机双工方式(互备互援)
工做原理:两台主机同时运行各自的服务工做且相互监测状况,当任一台主机宕机时,另外一台主机当即接管它的一切工做,保证工做实时,应用服务系统的关键数据存放在共享 存储系统 中。
u 集群 工做方式(多服务器互备方式)
工做原理:多台主机一块儿工做,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就能够被其它主机接管。
Oracle RAC One node 有以下优势:
u 不须要第三方的ha软件,经过oracle grid软件控制了高可用,内置集群高可用性故障转移
u 当为数据库打patch单实例数据库滚动升级
u 实例的主动迁移和故障切换
u 跨服务器的实例动态迁移
u 在线升级到RAC
u RAC的廉价版
u 为同一个主机上的各个数据库Caging不一样比例的CPU
RAC one node的滚动升级是很是有用的功能,使用该特性,能够实现零停机的进行升级。
RAC one node不适用以下环境:
u 因为之启动一个实例,所以不能实现多台主机同时使用,达到应用负载平衡,只能在多台主机部署多个数据库,人为把应用分开到多台服务器;
u 因为当一个节点down掉后,须要在另一台主机启动数据库,须要有一个启动过程,所以不能到到一个真正的高可用性解决方案;
u 因为rac one node基本也是在一个局域网内部署,所以,不能实现灾备,做为一个灾难恢复(DR)解决方案; Data guard 是比较好的解决方案。
u Rac one node 是RAC数据库中的一个实例运行在GRID集群中,它与标准 Oracle RAC 的主要区别在于 Oracle RAC One Node 数据库一般仅在一个实例上处于活动状态。RAC One Node 使用“实例重定向(instance relocation)”的特性, 当一个实例失败时, RAC One Node 在另外一个节点重启失败的实例, 在另外一个服务器经过从新挂在磁盘和使用pfile/spfile重启实例;rac是在两个节点同时运行,当一个节点出现问题,前端应用直接经过客户端切换到另外节点。
u 资源消耗,rac one node是在一个节点运行,另一个节点资源不是用,和操做系统ha基本类似,Rac数据库是多个节点同时运行一个数据库,因为多个节点同时运行一个数据库,所以,会出现内部数据传输,若是应用开发有问题,或部署有问题,那么,虽然是两个节点,可是承压能力不能达到预期目的,而且若是应用设计很差,那么使用rac后性能优于内部数据传输,会下降不少。
u rac是运行多个实例,可是对应同一个数据库,而Rac one node也能够在多个节点运行不一样的数据库实例来充分利用资源,可是多个实例分别对应不一样的数据库,不是对应同一个库,这样能够分别部署不一样应用,硬件资源也获得了充分利用,也减小了内部通信资源,性能获得了提高。
u 资源控制,若是在同一个rac集群中建立了两个库,那么每台服务器就要存在两个实例,这两个实例没法单独控制资源使用,例如cpu等,可是rac one node若是在一台机器上配置两个库,那么每一个库能够单独控制资源使用。
u Rac是数据库在多个节点启动多个实例,可是实例名称不同,rac one node是在一个节点启动一个实例,当本节点实例出现问题,oracle 经过11g oracle restart技术,在这个实例在另一台机器自动起来。
u 若是当前数据库不能知足资源要求的时候,Oracle Rac 能够在线添加节点,可是Oracle RAC One Node转成Oracle RAC以前,不能添加其余的实例。
u RAC one node每一个处理器须要的费用会比RAC 的每一个处理器要便宜点,对于2个节点的rac one node,只须要买一个节点的受权便可
u Rac 是在多台机器同时运行一个库,压力可以分担到不一样主机,而rac one node只能在一台机器访问一个库。压力只能在一台主机,只有当这台主机出现问题,才切换到其余主机。
操做系统ha和racone node不一样.Rac one node 能够在线转换成rac,可是操做系统ha软件只能实现主备的,不能转换成rac。
操做系统ha须要单独安装操做系统ha软件,软件是主备方式,必须先关闭主数据库,才能够切换到备用数据库。
Rac one node经过grid控制切换,操做系统ha经过操做系统曾资源控制。
在GRID环境中能够建立多个RAC One Node数据库,分别运行在不一样的节点上,加强了硬件的利用率
RAC One Node配置所有采用oracle产品,管理维护和故障排除也变的更加简单
若是当前运行节点须要维护(OS 打patch等)或者服务器资源不足等等,能够手动切换数据库(relocate)到备用服务器,采用online database relocation,能够减小业务中断时间(应用须要配置TAF)
操做系统ha只提供网络,主机故障切换,可是rac one node提供服务器级别和数据库级别——双重级别的failover。
操做系统ha,当一个节点出现问题,那么须要在失败节点进行关闭数据库,umount文件系统,varyoffvg等等操做,若是是因为网络出现问题,数据库正在运行很大事物,那么极可能没法切换过去;可是rac one node技术是经过oracle restart技术,因为存储使用asm,在安装完软件后,全部节点的asm是启动的,只不过数据库只在一个节点启动,所以不须要varyonvg,mount文件系统等等操做,当检测到主节点down,备用节点直接启动数据库,减小了切换时间。
若是一个节点超负荷运行,或是须要停机维护,那么Rac onenode能够经过命令在线切换到另外节点(srvctl relocate database -d hadb -n),执行relocate 命令后,GRID agent首先在节点2启动数据库实例2,当实例2启动完(reconfigure结束),agent才开始中止实例1,这个与我前面提到的RAC One Node是online relocation是一致的,可是操做系统ha,若是进行手工切换,那么和出现问题切换基本同样,都须要把数据库down,而后在另一边启动。这样down掉时间会延长。
根据技术实现原理看,rac one node技术是在不使用操做系统ha,所有使用oracle技术实现的一个主备系统,只不过切换速度比操做系统ha会快不少。
一个RAC One Node的使用案例。比方说,将许多中小型数据库整合到几台(N台)服务器上:这些数据库可能运行着关键任务,它们都很小并能够轻松地在单个节点上运行,所以它们并不须要RAC的可扩展性,但它们确实须要RAC提供的高可用性和灵活性。您能够建立一个N或N+1个节点的集群,而后能够在集群上建立您所须要个数的单节点RAC数据库(在这个例子上是N个)。您还可使用11.2提供的新特性InstanceCaging,限制每台数据库服务器上可使用的内核数量。
若是一台服务器出现故障,使用集群容错转移切换到集群中的空闲服务器(您的第N+1台或一台额外的服务器),Oracle RAC One Node 经过无人值守的集群故障切换同时响应服务器故障和数据库故障,能够从新定位受影响的数据库服务。
下面是 Oracle RAC One Node 故障切换的一个图形描述。
在上面的情形中,服务器 B 发生故障,以前运行在服务器 B 上的数据库实例 DB3 在服务器C 上启动。
Oracle RAC One Node 与 Oracle Clusterware集成,后者监视数据库的运行状况并确保数据库服务的可用性。出现故障时,Oracle RAC One Node 将检测故障,而后重启发生故障的数据库或者切换到另外一台服务器。与 HP、IBM 和 Symantec 等供应商提供的其余第三方冷故障切换解决方案相比,它一样也实现了冷切换功能,只是在集成度上,彻底由一家产品实现,这使得资源间依赖性检查变得很是紧密。例如ASM实例和数据库实例以前的依存关系。
从前面列出的特性能够看出,当运行在一个节点的时候,oraclerac one node是oracle rac的“缩版”,于是它的价格也相对下降,比较适用如下状况:
开发环境和正式环境要同样是RAC,但硬件投入要最小化。
最开始只有一台服务器,但根据业务量,会不断地扩充实例节点。
在某些状况下,咱们必须限制实例的cpu资源利用,甚至须要动态改变这种配置。若是应用系统对资源的需求增加很快,须要更多的硬件资源,咱们能够经过oracle rac one node方式联机升级到oracle rac。传统的技术必需要重建成rac,这须要停机时间。
若是须要把数据库切换到另一个拥有更好资源的服务器上,在oraclerac one node技术上是no downtime的。而传统的方式,咱们不得不花费时间迁移数据库。
另外,当咱们须要数据库所在服务器进行计划维护的时候,如打操做系统补丁、添加硬件设备等,一般的作法须要把数据库实例和数据迁移走,甚至须要一份可靠的备份,整个过程须要必定的时间。若是把数据库安装成oracle rac one node模式,它可使用srvctl命令进行实例迁移。咱们终于使cold-failover跨入了真正联机维护的时代。
传统的数据库架构中,若是把数据或实例迁移到其余服务器上,客户端不得不等待迁移完成,并从新配置链接地址。oracle rac one node和oracle rac同样,可以使用简单客户端访问名(SCAN),这样,客户端应用程序无需重配链接池,就能直接访问数据库,这个过程对于应用来讲,是透明的。这个和第三方的集群软件的VIP功能是相同的。
若是升级到oracle rac one node,不中断服务迁移实例将成为可能。接下来的分析,将引用VM进行对比。
Oracle RAC One Node 的Omotion特性容许在不中断服务的状况下将一个正在运行的实例从一台服务器迁移到另外一台服务器。
下面是 Oracle RAC One Node Omotion特性的一个图形描述。
Omotion特性能够将数据库从繁忙的服务器迁移到具备剩余容量的服务器,从而提供与 VM 相同的负载平衡优点。Omotion利用 Oracle Real Application Clusters 同时运行服务于一个数据库的多个实例。在上图中,服务器 A 上的 DB2 RAC One Node 数据库迁移到服务器 B。Oracle RAC One Node 在服务器 B 上启动另外一个 DB2 实例,很短一段时间内,Oracle RAC One Node 将以主动-主动配置模式运行。当链接完成了在服务器 A 上的事务后,它们就被迁移到服务器 B 上的实例。一旦全部链接都完成迁移,服务器 A 上的实例就关闭,迁移随之完成。
即便当系统以峰值容量运行时,Omotion也无需中止环境。而 VM 为了将中高数据库负载从一台服务器移至另外一台服务器,通常须要中止环境。停机意味着损失。
迁移 VM 时,VM 必须将它在整个网络中的完整内存状态镜像到目标主机,以便再现该虚拟机的状态。若是正在处理的数据库负载很高且数据库缓存中缓存块的变化较快,那么内存镜像功能很难跟上变化的速度。所以,成功进行内存镜像的惟一途径极可能变为:首先中止源 VM,接着镜像内存,最后切换到已迁移的 VM。有了Omotion,负载很高的实例再也不成为问题,由于迁移期间的工做实际上被拆分到两台服务器上。所以,Oracle RAC One Node 能够轻松地将更高的负载迁移到另外一台服务器上。
Omotion可以在不一样代处理器的服务器之间移动。VM 迁移要求处理器必须是相同的 — 两个处理器都是 Intel 或 AMD 还不够。两个Intel(或 AMD)处理器还必须具备彻底相同的指令集。Omotion支持迁移到新处理器(如 Nehalem),甚至支持在不一样供应商的处理器(Intel 和 AMD)之间进行迁移。
RAC One Node 提供了卓越的扩展能力,而且不会形成服务中断。经过将数据库实例移至一台更大的服务器,VM 能够增长供数据库实例使用的 CPU 的数量。然而,为使增长的 CPU 生效,VM 须要重启操做系统。另外,许多 VM 解决方案对 VM 的大小有限制,这种限制对数据库服务器来讲过小了。使用 RAC One Node,数据库能够自动适应更大的服务器并可利用额外的 CPU — 无需重启。此外,对 RAC One Node 没有 CPU 限制。
ASM的自动管理特性确实使人向往,咱们不少时候在对存储进行维护的时候,再也不须要停机了,这点很重要。而第三方集群软件并不支持存储虚拟化,如HACMP,HP SERVICEGUARD。
Oracle RAC One Node 经过一个称为自动存储管理 (ASM) 的特性提供存储虚拟化。ASM 对呈现给数据库的全部存储都进行虚拟化,使存储的管理和调优实现自动化,而且无缝地处理因为磁盘故障或磁盘添加/删除事件致使的存储从新配置。
ASM的存储池能提升存储利用率。使用该特性,运行 Oracle RAC One Node 的单个服务器(或集群)上的全部数据库将共享一个存储池。因为 ASM 确保了全部设备的 IO 始终是平衡的(即避免热点),所以数据库磁盘 IO 始终处于调整中。对空闲磁盘空间进行集中管理而不是将它们分散在多个本地存储池中。
当使用asm的时候,因为asm会自动那个进行io均衡,也就是把存放在asm中的全部disk进行条带,那么若是存放在asm中的磁盘若是是在同一个raid,那么性能就会变差,在同一个raid中的磁盘若是数量越多,那么io次数会越多,io性能就会越慢,所以,在同一个asm dg中的磁盘要保证在不一样的raid中,性能才会获得提高。