Oracle 11g RAC features
<一,>
oracle 11g r2 RAC提供了以下功能:
- 高可用:shared-everything 模式保证了单节点的故障不会停止服务,集群中的其他节点将快速接管
- 可扩展性:多节点分担负载,可以提供远超单机数据库能提供的处理能力。且增删节点可以在线完成,不需要停机
- 易用性:多个数据库可以加入到一个集群中
- 低成本:RAC可以部署在标准硬件上,硬件上节省的成本抵消了购买license的成本
Failover的连接配置
1. TAF(Transparent Application Failover)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dyora)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
failover_mode参数 | 说明 |
BACKUP | 备用连接的网络服务名。若使用了preconnect的连接方法,则需要指定这个参数 |
DELAY | 连接重试的时间间隔(秒)。如果指定了RETRIES参数,若不指定该参数,默认为1秒。若注册了callback,该参数将被忽略 |
METHOD | 设置failover方法。basic: failover时才尝试连接备用实例的监听;preconnect: 每次连接数据库时,都会在备用实例上也产生一个连接,以实现更快的切换 |
RETRIES | failover后,尝试连接的次数。如果指定了DELAY参数,则RETRIES默认为5次。若注册了callback,则该参数将被忽略 |
TYPE | OCI默认提供了3种类型:session: 若用户连接丢失,将在备用节点上重新创建;select: 除了重建连接外,将继续从打开的游标中获取数据,如果采用这种方式,普通select操作也将在客户端产生开销;none: 默认值,也可显示指定来禁用failover功能 |
2. FCF(Fast Connect Failover)
connection cache)协同工作提供更高的连接性能和高可用;可以在应用代码中设置,无需另外配置
Notification Service
(ONS);JDBC例程运行的java虚拟机必须包含oracle.ons.oraclehome并指向ORACLE_HOME
ods.setUrl(
"jdbc:oracle:oci:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias)
(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))");
ods.setUser("scott");
ods.setConnectionCachingEnabled(true);
ods.setFastConnectionFailoverEnabled(true):
ctx.bind("myDS",ods);
ds=(OracleDataSource) ctx.lookup("MyDS");
try {
cache
catch (SQLException SE {
}
}
JVM中的后台线程找出所有受到该RAC事件影响的所有连接,通过sql异常(ORA-17008)通知它们关闭连接,并回滚事务
FCF支持应用级别的连接重试,由应用来决定failover时如何处理,是重新执行,还是抛出异常;TAF只能在OCI/NET的层面进行重新连接
FCF与连接缓存很好地结合起来,让连接缓存管理器来管理缓存,失败的连接在缓存中会自动失效。而TAF在网络层面做预连接,当一个连接失效,连接缓存不能检测到
Grid Infrastructure共享组件
OCR和OLR
OCR为所有节点所共享,包含了集群资源的所有信息和 Grid Infrastructure需要的操作许可。为了实现共享,OCR需要存放在裸设备、共享块设备、类似OCFS2的集群文件系统或者ASM上。在Grid Infrastructure中,只有通过升级而来的系统才支持非ASM管理的OCR,如果是新的安装,你必须使用集群文件系统或者ASM。在RAC10和11.1中,OCR可以有1个镜像,而到了11.2,则增加到了5个拷贝。
Grid Infrastructure每4个小时自动备份一次OCR,并保留一些备份用以恢复。RAC11.1中引入一个选项来手动备份Cluster Registy,以root用户运行诊断程序时将执行附加的完整性检查。Clusterware11.1通过Oracle Universal Installer简化了Cluster Registry在共享的块设备上的部署,在此之前,需要手动进行一个移动OCR到块设备上的过程。当你在Red Hat 4或SLES10上,在RAC11.1中使用裸设备,需要通过udev来手动对裸设备进行配置。Oracle Support中对这个配置过程提供了说明,单路径和多路径连接共享存储的方法有所不同。
在一些罕见的情况中,OCR可能会被毁坏,此时就需要从备份中来还原。根据毁坏的严重性,可能从一个镜像中来还原就足够了,也可能需要从备份中来还原。只能通过Oracle提供的工具来管理和维护OCR,如果直接对OCR中的内容进行转储和修改,造成的配置问题Oracle将不予支持。
Oracle 11.2中引入另一个集群配置文件,叫OLR。这个文件在每个节点的Grid Infrastructure安装目录中都有自己单独的拷贝。OLR存储了集群启动初期OHAS使用的重要的安全环境。定位voting盘时需要用到OLR和网格即插即用配置文件,如果它们存储在ASM中,GPnP 的profile中的discovery相关字符串将被集群同步进程用来寻找它们。在集群软件启动的后期,cssd进程将启动ASM实例来连接OCR文 件。然而,它们的路径存储在/etc/ocr.loc文件中,和RAC11.1中一样。当然,如果voting文件和OCR如果存储在一个共享的集群文件 系统上,ASM实例不需要也不会启动,除非其他资源需要使用到ASM。
配置Voting Disks
disks,11.2中增加到15个)。和OCR一样,Grid
Infrastructure只在升级的系统上支持裸设备,新安装的只支持集群文件系统或ASM。块设备和裸设备在Oracle12中将不再支持。
disks时,你需要注意磁盘组和故障组的冗余级别。注意,voting disk的所有拷贝都在一个磁盘组里面,你不能将voting
disks分布在多个磁盘组中。当使用外部冗余的磁盘组,你只能有1个voting disk。使用normal
redundancy冗余级别需要至少3个故障组来存储3个voting disks,high
redundancy冗余级别更加灵活,它支持多达5个voting disks。
使用ASM
ASM是oracle10.1中开始引入的,它是Oracle的物理数据库结构上的一个支持集群的逻辑卷管理器。可以存储在ASM中的文件包括控制文件、数据库文件和在线重做日志(还有spfile和归档日志)。直到11g
r2,都不能存储任何类型的操作系统文件
ASM建立在ASM disk、Failure groups、ASM disk groups概念的基础上的。
几个ASM disk构成一个ASM disk group。与LVM类似,一个ASM disk就相当于LVM里的一个physical volume。与LVM不同的是,共享一个共同的故障点(例如磁盘控制器)的几个ASM disk可以组成一个failure group。一个ASM disk group可以用来存储物理数据库结构:数据文件、控制文件、redo日志和其他一些文件类型。与linux里的逻辑卷管理器(LVM)相比较,disk group上面没有再创建逻辑卷,取而代之的是,数据库中的所有文件进行了逻辑分组放在disk group上的一个目录里。ASM中不需要文件系统,这也是为何ASM相对传统的LVM更具性能优势。
Grid Infrastructure引入了ASM集群文件系统(ACFS),消除了存储通用用途文件的限制。ASM使用stripe-and-mirror-everything方式来提供最佳性能。
ASM和ACFS的使用不受集群的限制;单实例oracle同样可以通过它得到很多好处。技术上,Oracle ASM被应用为一种特殊的Oracle实例,它有自己的SGA,但没有持续的字典。在RAC中,每个集群节点有且只有一个单独的ASM实例。当启动的时候,每个实例会通过集群软件中的初始化参数在Grid Infrastructure检测到ASM磁盘组资源。每个实例将挂载这些磁盘组。通过赋予正确的权限(ASM11.2中引入了访问控制列表 (ACLs))数据库可以访问它们自己的数据文件。使用ASM需要应用OMF,这意味着不同的数据库文件管理方式。RDBMS实例中的初始化参数,例如 db_create_file_dest和db_create_online_dest_n,还有db_recovery_file_dest,指定了相 关的文件存储在哪个磁盘组中。当需要创建一个新的文件时,OMF将以以下格式来创建:+diskGroupName/dbUniqueName/file_type/file_type_tag.file.incarnation 给个例子:+DATA/oradb/datafile/users.293.699134381
ASM允许你执行许多在线操作,在ASM11.1及更高版本中,可以以滚动方式(rolling fashion)进行升级,最小化对数据库的影响。
ASM在裸分区级别上进行操作;为了降低产品系统的开销,应该避免使用LVM2逻辑卷。在NFS上ASM同样是被支持的。但是,代替直接挂载文件管理器给出的目录,需要用dd工具创建的零填补文件作为ASM卷。使用NFS的时候,你需要和供货商协商,让他们提供最佳实践的文档。
有特殊需求的环境,比如大于10TB数据量的海量数据库,可以在磁盘组级别从可定制的盘区(extent)大小上得到好处。一个通用的存储优化技术包括只使用磁盘边缘位置,比使用其他位置能提供更高的性能。ASM的智能数据分布允许管理员来定义具备更高速度和带宽的热点区域。经常访问的文件可以放置到这些位置来提高性能。硬盘制造商即将推出扇区大小为4k的硬盘,存储密度增加,且更快,容量更大。ASM为此做好了准备,它提供了磁盘组的一个属性,叫sector size,可以设置为512字节或4k。
大部分安装中,一个典型的工作流程:存储管理员提供集群的所有节点上用来做ASM disk的存储;系统管理员为这些新的块设备创建分区,做多路径配置,使用ASMlib或udev将这些分区后的块设备标记为候选磁盘;移交到数据库小组后,Oracle管理员可以配置ASM disk和ASM磁盘组。这些操作都可以在线完成,不需要重启服务器。
ASM disk
ID是xxxx的LUN中。udev的主要问题是,它的配置不够直观和易用。由于udev不能复制配置,在集群中的每个节点上管理员都需要去维护udev配置。(我们可以使用udevinfo
-q path -n /dev/sda1 来查看/dev/sda1对应的udev设备名,该路径在/sys下)
disk前,你可以使用ASMLib工具通过将元数据信息添加到磁盘头部来标记它,然后ASMLib就可以识别出这个新的LUN,将其作为添加到ASM
disk group的一个可能的候选。重启的时候,ASMLib将扫描磁盘头部的信息来识别ASM
disk,不管物理设备名在启动过程中变成了什么。它保证了设备名的稳定性,而且成本非常低。ASMLib是一个内核模块,在内部分配自己的内存结构,它可以在单路径和多路径下配置。
ASM Disk Group
disk间做默认盘区大小为1M的条带。写入错误会迫使ASM磁盘被卸载。这将产生严重的后果,因为该磁盘上的盘区没有任何可用的拷贝,整个磁盘组都会变得不可用。
Failure Group
group是一个逻辑的磁盘组,当其中一个组件发生故障,整个磁盘组都将不可用。打个比方,属于一个SCSI控制器的磁盘组成一个failure
group,如果这个控制器发生故障,所有的磁盘都不可用。在normal和high冗余中,ASM使用failure
group来存储数据的镜像拷贝。如果没有明确配置,每个ASM disk组成自己的failure group。Normal
redundancy磁盘组需要由至少2个failure group来组成,high
redundancy磁盘组需要至少3个。然后,建议使用比这个最小值更多的fail group来提供额外的数据保护。
disk group中的primary extent中读取,在一个extended distance集群中,如果primary
extent在远程的存储阵列上,可能会导致性能问题。ASM
11.1引入了一个首选的镜像读取来解决这个问题:每个ASM实例都可以被指定从本地extent的拷贝中读取,不管它是primary
extent还是copied extent。
ASM安装与管理选项
11.1以前,最佳实践是以单独地安装ASM,这提供了可以单独升级集群软件和ASM的好处。比如,集群软件和ASM可以升级到11.1.0.7,而数据库还保留在原来的版本。这个最佳实践中,有三个标准的Oracle安装目录:集群软件、ASM、数据库
11.1可以安装在与安装RDBMS不同的操作系统用户下,Oracle对此解释说,数据库与存储管理间的角色独立是很多站点的通用实践。
Release 2中,ASM现在已经是Grid
Infrastructure的一部分,不管在单实例还是RAC环境中。一个新的配置助手asmca接受并扩展了11.1的DBCA中提供的功能。ASM也不再可以从RDBMS
Oracle home以外的地方启动。asmca增加了对另一个叫做ASM Cluster File
System的ASM新特性的支持。
9i以后的SYSDBA一样。你可以将SYSASM权限绑定在不同于SYSOPER和SYSDBA用户的角色中。
Oracle 11g RAC features的更多相关文章
- [转帖]Oracle 11G RAC For Windows 2008 R2部署手册
Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次) https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 ...
- 【Oracle 集群】Oracle 11G RAC教程之集群安装(七)
Oracle 11G RAC集群安装(七) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总. ...
- Oracle 11g RAC 应用补丁简明版
之前总结过<Oracle 11.2.0.4 RAC安装最新PSU补丁>, 这次整理为简明版,忽略一切输出的显示,引入一些官方的说明,增加OJVM PSU的补丁应用. 环境:RHEL6.5 ...
- Oracle 11g RAC停止和启动步骤
关闭前备份控制文件/参数文件: sqlplus / as sysdba alter database backup controlfile to '/home/oracle/control.ctl ...
- oracle 11g RAC安装节点二执行结果错误CRS-5005: IP Address: 192.168.1.24 is already in use in the network
[root@testdb11b ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInvento ...
- Oracle 11g RAC环境下Private IP修改方法及异常处理
Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 ...
- Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh
Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh前,要先清除之前的crs配置信息 # /u01/app/11.2.0/grid/crs/install/rootcr ...
- 安装Oracle 11g RAC R2 之Linux DNS 配置
Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集 ...
- Oracle 11g RAC oc4j/gsd Offline
Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形.即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, ...
随机推荐
- 修改host文件的P处理
notepad C:\WINDOWS\system32\drivers\etc\hosts 用文档创建hosts文件,添加上面代码.把文件后缀修改为 .bat 就不用每次很麻烦的查找host文件了.
- WEB开发之如何改善PHP开发方式
改善PHP开发方式一般可以分为以下几种实现方式: 1.组织和样式 找出一种适合你的组织方法和编码样式,并且一直坚持下去,这样的话,你的代码的组织和布局会变得十分有条理.我们不应该轻视代码的组织 ...
- js 中 setTimeout()的用法
setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间)setTimeout(表达式,交互时间)延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...
- php多维数组按用户自定义顺序排序uasort()
多维数组如果需要按照某个字段值进行排序,可以尝试array_multisort().但有一个前提,这个字段值的排序是要一定规律的,如字符升序a-z,或者数字降序等等. 现有多维数组如下: $arr = ...
- c语言中的制表符\t与空格
(本文不讨论制表符与空格缩进问题) 编程过程中,我们常常用多个空格或制表符分隔两个字符串,那么这两个在显示效果上有什么区别呢? 比较如下两行代码的输出效果 代码1: printf("1\t1 ...
- 安装solaris_11.2与windows双系统(VM10模拟实现)(一)
感慨:这周刚接触solaris,装solaris很蛋疼,一个字:慢! 在上面安装软件包依然很慢,无线网也很不稳定. 在上面搭建环境更蛋疼,一个字:惨! 什么环境之类的废话就不多说了,一般的电脑都可以. ...
- Python核心编程笔记--随机数
#第一步引入模块 import random #第二步生成随机数 print random.randint(1,3);#[1,2,3]注意这里是闭区间.
- IIS应用程序池监控
最近发现公司运行的web网站应用程序池会突然停止,做的负载均衡(路由负载)又无法监测到IIS应用程序池的情况,就想着通过某一种监控方式监测IIS应用程序池的情况,如果处关闭状态则立刻重新启动.所说的I ...
- 7816的报文结构——APDU
命令APDU 包括头和主体(这可以在上面的图中看到).头包括CLA,INS,P1 和P2 域.同T0 协议一样,CLA 和INS 说明了应用的分类和指令.P1 和P2 用来详细说明具体指令,并由每一条 ...
- 通过案例掌握Spring 管理事务的步骤及配置
案例描述 通过完成生成订单业务,掌握事务处理. 需要d_order表和d_item表 订单生成时的业务逻辑:向d_order插入1条数据的同时,向t_item中插入若干条数据 这就是一个独立的 ...