Oracle RAC方案
高可用相关的技术——RAC
多个实例同时提供服务,一个实例崩溃不会影 响数据库的可用性。 设计合理的RAC环境可以避免单点故障对系统 的影响。
高可用相关技术——DATA GUARD
和RAC环境搭配是高可用系统的最佳配置 解决了人力不可抗拒的灾难发生后系统的可用 性问题 逻辑STANDBY可以用来进行快速升级
直接拷贝物理数据文件的迁移方式,迁移速度 很快 支持原数据库和目标数据库版本不同 迁移结束后,保留原始环境,一旦迁移失败, 不会对原有系统产生影响 对操作系统和平台有一定要求
高可用之升级、迁移方案——迁移表空间
源数据库 目标数据库
设置只读 设置只读
拷贝
导出源数据
导入源数据 加载数据文件
高可用之升级、迁移方案——ROLLING UP升级
高可用之升级、迁移方案——物化视图迁 移方式
源数据库
导入
创建物化视图 初始化数据
目标数据库
数据同步
除表、索引外的其他对象
表和数据
表结构
物化视图日志
高可用之升级、迁移方案——单实例数据 库迁移到RAC环境
利用STANDBY数据库的SWITCHOVER切换, 实现单实例数据库到RAC环境的迁移 减少了迁移所需的时间 迁移失败不会造成对源系统造成损害 迁移结束后,源数据库环境自动配置了 STANDBY环境 一旦系统在RAC环境下工作异常,可以迅速的 切换回单实例模式,且不会造成数据丢失。
高可用之维护——充分利用新特性
闪回(FLASHBACK) 不可见索引(INVISIBLE INDEX ) 添加非空字段 细粒度依赖性判断
高可用之升级、迁移方案——物化视图迁 移方式
利用ON PREBUILT TABLE物化视图来实现快 速迁移或升级 迁移或升级所需停机时间很短 可以实现跨版本、跨操作系统、跨平台的迁移 逻辑迁移方式,对源和目标库几乎没有限制, 用户可以不同、存储参数可以不同、表结构也 可以不同 要求表必须包含主键
高可用之升级、迁移方案——单实例数据 库迁移到RAC环境
INSTANCE
INSTANCE1
INSTANCE2
STANDBY
SWITCHOVER UNDOTBS2 REDO LOGS THREAD2
STANDBY DATABASE PRIMARY
STANDBY DATABASE PRIMARY
高可用之升级、迁移方案——迁移表空间
打造企业级高可用环境
杨廷琨
何为高可用
狭义的高可用:在出现硬件、网络、系统或人 为故障的时候,数据库仍然可用,或者数据库 可以在很短的时间内恢复对外提供服务。一般 在提到高可用时,首先会想到RAC和 STANDBY技术。 广义的高可用:除了上面提到的故障处理方面, 还涵盖数据库的各个方面。小到数据库日常维 护对系统可用性的影响。大到数据库的迁移、 升级等等。
逻辑STANDBY数据库进行ROLLING UP升级 RAC数据库进行ROLLING UP升级 STREAM环境进行ROLLING UP升级
高可用之维护——合理利用ONLEDEFINITION可以降低表、索 引的维护操作对系统可用性的影响 适用情况
– –
表的物理、逻辑结构的改变 索引的创建
高可用之维护——充分利用STANDBY数 据库
利用STANDBY数据库实现读写分离,避免大 的查询操作对在线系统的影响。STANDBY数 据库可以只读打开,类似报表查询等只读操作 可以部署到STANDBY数据库 11G中STANDBY数据库可以在只读打开的同 时应用日志,查询可以随时看到最新的修改 利用STANDBY进行备份,可以降低备份操作 对主环境的影响
高可用相关技术——ADVANCED REPLICATION
高级复制实现了数据的多点备份,配合TNS中 的FAILOVER设置可以在一个数据库故障时仍 然提供服务 物化视图经常用在对停机时间要求比较高的升 级、迁移操作中。
高可用相关技术——STREAM
和高级复制一样可以提供主环境崩溃后的 FAILOVER服务 利用STREAM配合进行迁移,可以极大的缩 短迁移停机时间 比STANDBY数据库提供更多的灵活性
高可用相关技术——FLASHBACK
FLASHBACK可以快速解决人为错误 当发生错误的DML语句后,可以通过 FLASHBACK QUERY来获取操作发生之前的 数据 FLASHBACK TABLE可以恢复误删除的表 FLASHBACK TRANSACTION可以恢复指定 的事务 FLASHBACK DATABASE可以将整个数据库 恢复到指定的时刻
高可用相关技术——ONLINE REDEFINITION
通过在线重定义功能,可以为表重新设置物理 存储参数。比如普通表转换为分区表。 在线重定义功能可以改变表的逻辑结构 有效的降低了表、索引的维护操作对系统可用 性的影响
高可用之设计
高可用是设计出来的
– – –
RAC/DATA GUARD等高可用环境需要在系统设计 时就详细考虑 合理利用高级复制、流等功能产生的数据冗余,提 高系统的可用性 用户、表空间等逻辑结构的设计会直接影响系统日 后迁移、升级过程。
Oracle RAC 10.2.0.1升级到10.2.0.4-安装配置参考手册
数据库RAC版本升级方案一、概述数据库做版本升级,版本从oracle10g 10.2.0.1 升级到oracle10g10.2.0.4。
本次操作因为涉及到生产数据库系统,须停止生产服务应用,所以升级需要在业务量尽可能少的环境下操作。
升级操作大概需要3~4个小时,具体安排如下表。
二、数据库升级操作如下操作步骤实现数据库由Oracle10.2.0.1版本到Oracle10.2.0.4版本的升级,建议有数据库应用经验者操作。
1.1 升级前准备1.1.1 升级背景Oracle升级介质:Oracle10.2.0.4补丁包。
下载地址:ftp:///6810189/p6810189_10204_Linux-x86-64.zip在升级包内有关于RAC升级英文说明文档(README.html),供参考。
用oracle用户上传下载的升级包到节点1的/home/oracle目录下。
Oracle当前版本:Oracle10.2.0.1计划升级到版本:Oracle10.2.0.4应用服务器节点名字:rac1、rac2应用数据库全局服务名:rac应用数据库实例名:rac1、rac21.1.2 停止业务系统(一)停止业务应用系统。
登陆两台web服务器其中一台,执行clpcl -t -a命令停止业务系统HA。
确定两台web服务器没有业务在运行[root@web1 ~]# ps –ef |grep java[root@web2 ~]# ps –ef |grep java没有进程在运行,否则需要把当前运行的进程kill掉。
1.1.3 备份应用数据库数据一、执行rman命令对数据库进行完全备份用oracle用户登陆节点1(rac1)。
执行如下命令,备份全局数据库[oracle@rac1 ~]$/opt/app/oracle/backup_scripts/full_backup.sh > rac_full_backup.log确认备份成功。
Oracle-RAC以及ASM安装全过程整理
RAC以及ASM安装全过程整理RAC以及ASM安装全过程整理更改主机名第一步:#hostname oratest第二步:修改/etc/sysconfig/network中的hostname第三步:修改/etc/hosts文件设置hosts文件可参考:[root@amdocs01 mapper]# cat /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.localhostamdocs02amdocs02-vipamdocs02-priv设置IPeth01eth1绑定裸设备先在逻辑卷组上分出逻辑卷,全部为裸设备,必须包含:逻辑盘:ocrlv ,votelv 是必须的,因为后面安装ASM要用到data01,data02,data03,data04,data05,softlv,oralv可选1、裸设备定义:一块没有分区的硬盘,称为原始设备(RAWDEVICE)或者是一个分区,但是没有用EXT3,OCFS等文件系统格式化,称为原始分区(RAWPARTITION)以上两者都是裸设备2、裸设备的绑定有文件系统的分区是采用mount的方式挂载到某一个挂载点的(目录)而裸设备不能mount,只能绑定到/dev/raw/下的某一个设备名比如/dev/raw/raw13、裸设备的绑定方法先介绍第一种方法:修改/etc/sysconfig/rawdevices,添加以下内容,这里sdd1和sdd2是原始分区名或者原始设备(硬盘)名,raw1和raw2是/dev目录下的原始设备名,编号从raw1到raw8191,也就是最多可以绑定255个裸设备/dev/raw/raw1/dev/sdd1/dev/raw/raw2/dev/sdd2然后修改裸设备的属主和访问权限chown oracle:dba /dev/raw/raw1chown oracle:dba /dev/raw/raw2chmod 660 /dev/raw/raw1chmod 660 /dev/raw/raw2最后使得裸设备生效,并且在机器启动的时候就自动加载执行/sbin/chkconfig rawdevices on保证机器启动的时候裸设备能够加载,这一步很重要裸设备的绑定方法第二种方法,修改文件的方法#!/bin/sh## This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff.touch /var/lock/subsys/localraw /dev/raw/raw1 /dev/mapper/vg00-ocrlvraw /dev/raw/raw2 /dev/mapper/vg00-votelvraw /dev/raw/raw3 /dev/mapper/vg00-data01raw /dev/raw/raw4 /dev/mapper/vg00-data02raw /dev/raw/raw5 /dev/mapper/vg00-data03raw /dev/raw/raw6 /dev/mapper/vg00-data04chmod 775 /dev/raw/raw1chmod 775 /dev/raw/raw2chmod 775 /dev/raw/raw3chmod 775 /dev/raw/raw4chmod 775 /dev/raw/raw5chmod 775 /dev/raw/raw6chown oracle:dba /dev/raw/raw1chown oracle:dba /dev/raw/raw2chown oracle:dba /dev/raw/raw3chown oracle:dba /dev/raw/raw4chown oracle:dba /dev/raw/raw5chown oracle:dba /dev/raw/raw6chown oracle:dba /dev/raw/raw7modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=1804、裸设备的读写不能用cp等命令操作,写入内容用dd命令,可以参阅相关资料5、清空裸设备相当于格式化啦bs是快的大小,blocksizecount是快的数量,这两者相乘大于裸设备的容量即可ddif=/dev/zeroof=/dev/raw/raw1bs=8192count=12800ddif=/dev/zeroof=/dev/raw/raw2bs=8192count=12800-------另外,注意:rhel4使用udev来管理设备手动修改/dev/raw/raw1不能永久生效要想使得权限持久生效raw/*:root:disk:0660改成raw/*:oracle:dba:0660重启机器如果/dev/下没有/raw/目录,可以自己手工建立。
Oracle RAC存储多路径的设置案例
Oracle RAC存储多路径的设置案例以redhat6、centos6、oracle6及Asianux4为例1.安装多路径的客户端如果是FC SAN: yum install device-mapper device-mapper-multipath -y如果是IP SAN: yum install iscsi-initiator-utils device-mapper device-mapper-multipath -y2.设置一个多路径的配置文件:/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf 的文件拷贝到/etc目录下面:3.启动multipath服务/etc/init.d/multipathd restart4.将所有/etc/multipath/bindings 设置为一致,两边的内容一样[root@rac81]# cat /etc/multipath/bindings# Multipath bindings, Version : 1.0# NOTE: this file is automatically maintained by the multipath program.# You should not need to edit this file in normal circumstances.## Format:# alias wwid#mpatha 3600605b005c1b03019ae96a616049c04mpathb 3600143801259f9320000500000360000mpathc 3600143801259f9320000500000420000mpathd 3600143801259f9320000500000460000mpathe 3600143801259f93200005000004a0000mpathf 3600143801259f93200005000003e0000mpathg 3600143801259f93200005000003a0000mpathh 3600143801259f93200005000004e0000mpathi 3600143801259f9320000500000520000mpathj 3600143801259f9320000500000560000mpathk 3600143801259f93200005000005a0000mpathl 3600143801259f93200005000005e0000mpathm 3600143801259f93200005000007a00004.配置multipath.conf 文件的磁盘项目devices {device {vendor "HP"product "HSV2[01]0|HSV300|HSV4[05]0"getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"prio aluahardware_handler "0"path_selector "round-robin 0"path_grouping_policy group_by_priofailback immediaterr_weight uniformno_path_retry 18rr_min_io_rq 1path_checker tur}}上述的内容根据磁盘柜的型号定制,如HP...blacklist {#wwid "3600605b005c192d019aeb93a121ef663"wwid "3600605b005c1b03019ae96a616049c04"devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^hd[a-z]"}上述的内容要将本地磁盘的wwid号放入blacklist中,避免产生多路径multipaths {multipath {wwid 3600143801259f9320000500000360000alias disk1}multipath {wwid 3600143801259f9320000500000420000alias disk2}multipath {wwid 3600143801259f9320000500000460000alias disk3}multipath {wwid 3600143801259f93200005000004a0000alias disk4}multipath {wwid 3600143801259f93200005000003e0000alias disk5}multipath {wwid 3600143801259f93200005000003a0000alias disk6}multipath {wwid 3600143801259f93200005000004e0000alias disk7}multipath {wwid 3600143801259f9320000500000520000alias disk8}multipath {wwid 3600143801259f9320000500000560000alias disk9}multipath {wwid 3600143801259f93200005000005a0000alias disk10}multipath {wwid 3600143801259f93200005000005e0000alias disk11}multipath {wwid 3600143801259f93200005000007a0000alias disk12}}上述的内容是设置multipath别名项defaults {udev_dir /devpolling_interval 10path_selector "round-robin 0"path_grouping_policy multibusgetuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"prio aluapath_checker readsector0rr_min_io 100max_fds 8192rr_weight prioritiesfailback immediateno_path_retry failuser_friendly_names yes}上述defaults一定要打开,一般为默认即可;5.执行multipath -F命令将原来生成错误的多路径删除[root@rac81 ~]# multipath -F6.执行multipath -v2命令生成新的多路径[root@rac81 ~]# multipath -v27.使用multipath -ll查看生成多路径的情况[root@rac81 ~]# multipath -lldisk9 (3600143801259f9320000500000560000) dm-16 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:9 sdj 8:144 failed faulty running|- 6:0:1:9 sdv 65:80 failed faulty running|- 8:0:0:9 sdah 66:16 active ready running`- 8:0:1:9 sdat 66:208 active ready runningdisk8 (3600143801259f9320000500000520000) dm-14 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:8 sdi 8:128 failed faulty running|- 6:0:1:8 sdu 65:64 failed faulty running|- 8:0:0:8 sdag 66:0 active ready running`- 8:0:1:8 sdas 66:192 active ready runningdisk12 (3600143801259f93200005000007a0000) dm-18 HP,HSV360 size=100G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:12 sdm 8:192 failed faulty running|- 6:0:1:12 sdy 65:128 failed faulty running|- 8:0:0:12 sdak 66:64 active ready running`- 8:0:1:12 sdaw 67:0 active ready runningdisk7 (3600143801259f93200005000004e0000) dm-12 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:7 sdh 8:112 failed faulty running|- 6:0:1:7 sdt 65:48 failed faulty running|- 8:0:0:7 sdaf 65:240 active ready running`- 8:0:1:7 sdar 66:176 active ready runningdisk11 (3600143801259f93200005000005e0000) dm-20 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:11 sdl 8:176 failed faulty running|- 6:0:1:11 sdx 65:112 failed faulty running|- 8:0:0:11 sdaj 66:48 active ready running`- 8:0:1:11 sdav 66:240 active ready runningdisk6 (3600143801259f93200005000003a0000) dm-6 HP,HSV360 size=1.0G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:2 sdc 8:32 failed faulty running|- 6:0:1:2 sdo 8:224 failed faulty running|- 8:0:0:2 sdaa 65:160 active ready running`- 8:0:1:2 sdam 66:96 active ready runningdisk10 (3600143801259f93200005000005a0000) dm-22 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:10 sdk 8:160 failed faulty running|- 6:0:1:10 sdw 65:96 failed faulty running|- 8:0:0:10 sdai 66:32 active ready running`- 8:0:1:10 sdau 66:224 active ready runningdisk5 (3600143801259f93200005000003e0000) dm-4 HP,HSV360 size=1.0G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:3 sdd 8:48 failed faulty running|- 6:0:1:3 sdp 8:240 failed faulty running|- 8:0:0:3 sdab 65:176 active ready running`- 8:0:1:3 sdan 66:112 active ready runningdisk4 (3600143801259f93200005000004a0000) dm-10 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:6 sdg 8:96 failed faulty running|- 6:0:1:6 sds 65:32 failed faulty running|- 8:0:0:6 sdae 65:224 active ready running`- 8:0:1:6 sdaq 66:160 active ready runningdisk3 (3600143801259f9320000500000460000) dm-8 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:5 sdf 8:80 failed faulty running|- 6:0:1:5 sdr 65:16 failed faulty running|- 8:0:0:5 sdad 65:208 active ready running`- 8:0:1:5 sdap 66:144 active ready runningdisk2 (3600143801259f9320000500000420000) dm-0 HP,HSV360 size=500G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:4 sde 8:64 failed faulty running|- 6:0:1:4 sdq 65:0 failed faulty running|- 8:0:0:4 sdac 65:192 active ready running`- 8:0:1:4 sdao 66:128 active ready runningdisk1 (3600143801259f9320000500000360000) dm-2 HP,HSV360 size=1.0G features='0' hwhandler='0' wp=rw`-+- policy='round-robin 0' prio=10 status=active|- 6:0:0:1 sdb 8:16 failed faulty running|- 6:0:1:1 sdn 8:208 failed faulty running|- 8:0:0:1 sdz 65:144 active ready running`- 8:0:1:1 sdal 66:80 active ready running[root@rac81 ~]#。
rac failover的实现方式
rac failover的实现方式RAC(Real Application Clusters)是Oracle数据库的一种高可用性和可扩展性解决方案,它允许多个数据库实例在同一集群中同时运行。
在RAC环境中,如果一个节点(即数据库实例)发生故障,就需要使用Failover机制将受影响的服务迅速切换到其他健康的节点上,以保证系统的连续性和可用性。
本文将介绍RAC Failover的实现方式。
1. 数据库连接的Failover在RAC环境中,应用程序的数据库连接需要具备Failover功能,即当当前连接的节点发生故障时,能够自动切换到其他节点上。
实现数据库连接的Failover有以下几种方式:- 使用TAF(Transparent Application Failover):TAF是Oracle 提供的一种透明的应用程序Failover解决方案,应用程序不需要对代码进行修改,只需在连接字符串中配置相应的TAF参数即可实现连接的Failover。
- 使用FAN(Fast Application Notification):FAN是Oracle RAC提供的一种事件通知机制,当节点发生故障或恢复时,FAN可以向应用程序发送相关的通知。
应用程序可以通过监听FAN事件来实现连接的Failover。
- 使用连接池:连接池是一种管理数据库连接的技术,通过连接池可以实现数据库连接的复用和Failover。
连接池可以监测节点的可用性,并在节点发生故障时自动切换到其他可用节点上。
2. 数据库服务的Failover在RAC环境中,数据库服务是提供给应用程序使用的,因此需要保证数据库服务的高可用性。
实现数据库服务的Failover有以下几种方式:- 使用Oracle Grid Infrastructure提供的服务管理功能:Oracle Grid Infrastructure可以对数据库服务进行管理,当节点发生故障时,Grid Infrastructure可以自动将服务切换到其他可用节点上。
rac集群scanip运行原理
rac集群scanip运行原理RAC (Real Application Clusters) 是Oracle数据库提供的一种高可用性和可伸缩性解决方案,它允许将多台服务器连接在同一个集群中,共享一个数据库。
在RAC集群中,每台服务器被称为一个节点,每个节点都可以运行数据库的一个实例。
这些实例可以同时访问和处理共享的数据库。
RAC集群的scanip (Single Client Access Name) 功能充当了前端应用程序和后端数据库之间的中间人,它提供一个虚拟的IP地址,应用程序可以使用该IP地址连接到RAC集群中的任何一个节点。
scanip的主要工作原理如下:1. IP地址管理:在RAC集群中,多个节点共享一个数据库,每个节点都有自己的私有IP地址。
scanip负责管理这些私有IP地址并为它们提供一个共享的虚拟IP地址。
应用程序连接到scanip时,它会将连接请求转发到正在提供服务的节点上。
2. 节点监控:scanip通过定期PING命令来监控集群中的节点是否可用。
如果一些节点不可用,则扫描IP将不再将请求转发给该节点,从而确保应用程序的连续性。
3. 加载均衡:scanip通过动态分配连接请求到不同的节点来实现负载均衡。
它根据节点的负载情况和可用性来决定将连接请求发送到哪个节点上。
这样可以确保集群中的每个节点都能够平均地处理查询请求,并最大限度地提高整个系统的性能和可用性。
4. 透明重定向:如果一个节点从集群中移除或添加到集群中,scanip可以自动地将连接请求重定向到新的节点上,而不需要应用程序进行任何修改。
这种透明的重定向功能可以最大限度地减少应用程序的停机时间和不可用性。
5. 高可用性:scanip本身也是一个高可用性组件,它可以动态分配虚拟IP地址到集群中的多个节点。
如果一些节点或者网络发生故障,scanip可以自动重新分配虚拟IP地址到其他正常工作的节点上。
这样可以确保应用程序的连续性和高可用性。
Oracle数据库双活Extended RAC实现技术对比(EMC VPLEX Metro,Oracle IOE,一体机)
网络心跳和磁盘心跳都走IB网络,带宽达40-56Gbps, 可实现端到端延迟<200ns。
★
IB网络比传统以太网的延时 低很多
理论值:<100km公里 ★ 实际案例:<80KM。超过10KM要借助波分复用设备来延 依托IB设备的扩展RAC能支 伸距离。经实测,80KM网络RTT值在0.45-0.5ms
每个站点均配备统一存储。整个双活中心仅有一套数据库(一个 磁盘组内须创建2个及以上故障组,故障组分别在不同的站点)
双份,数据在所有VPLEX存储上做条带化。由vplex实现数据冗 余,一般不再设置ASM磁盘组冗余级别。 不同站点之间的副本利用vplex metro存储复制技术实现双向复 制,任何站点的写操作将同时发给另一个站点的副本执行,属于 同步模式的复制。(双活解决方案不提供异步模式,该模式用于 传统容灾) (参考实际案例数据:经过VPLEX设备,会比第一种方案的延时 还增加1MS) ORACLE RAC: 1、网络心跳走以太网,要求带宽至少1G,延时在毫秒级; 2、磁盘心跳走裸纤,要求带宽至少10G; VPLEX: 3、存储网络至少需8G链路; 在本方案中RAC的磁盘心跳走VPLEX存储网络,带宽至少要满足 10G 理论值:<100km,网络延迟不超过5ms; 实际案例:oracle官方建议不超过10KM,网络延迟不能超过 1ms;超过该距离性能会随着距离增加呈线性衰减。超过10KM要 借助波分复用设备来延伸距离。
相关技术资料
ORACLE原厂白皮书 \\10.194.50.44\平台运维科\8-其它\平台组台帐\双活技术 \oracle
基于VPLEX Metro的Extended RAC (EMC公司)
读/写---读/写 硬件平台最少配备: 2台EMC VPLEX设备 2台独立存储设备 光纤网络交换设备2台(用于连接VPLEX设备、服务器、存储设 备) 4台Oracle数据库服务器 1台VPLEX Witness仲裁服务器 1台位于第三站点的仲裁服务器(挂载仲裁盘) 网络:以太网路由及交换设备则包括广域网互联设备(10KM以上 使用波分复用设备)、每个站点的核心、汇聚、接入层设备
ORACLE RAC的五大优势及其劣势
详述Oracle RAC的五大优势及其劣势2012年08月15日00:05it168网站原创作者:刘炳林编辑:王玉圆评论:0条【IT168技术】不同的集群产品都有自己的特点,RAC的特点包括如下几点:·双机并行。
RAC是一种并行模式,并不是传统的主备模式。
也就是说,RAC集群的所有成员都可以同时接收客户端的请求。
·高可用性。
RAC是Oracle数据库产品高可用性的解决方案,能够保证在集群中只要有一个节点存活,就能正常对外提供服务。
·易伸缩性。
RAC可以非常容易地添加、删除节点,以满足系统自身的调整。
·低成本。
能使用较低廉的服务器来实现高可用性、高吞吐量的集群环境,这要比通过对某台高端服务器增加硬件实现高可用性、高吞吐量花费的成本低很多。
·高吞吐量。
随着节点数的增加,整个RAC的吞吐量也在不断增长。
下面详细讨论这五大特点。
一、双机并行RAC是一种充分利用服务器资源的高可用性实现方案,RAC的并行模式实现方式与传统的双机热备实现方式截然不同,图1-4是两者的比较。
如图1-4所示,两个节点在传统的双机热备环境中,始终有一台机器作为备用机,只有当主节点出现问题的时候才会切换到备用机上;如果主机一直没有出现问题,那么备用机始终处于空闲状态,这在资源的利用上以及成本方面都是巨大的浪费。
但RAC是一种并行模式的架构,也就是说,两个节点的集群节点间是一种并行运行的关系,当一台机器出现问题,请求会自动转发到另一台机器,没有任何一台机器作为备用机一直不被使用,这样就充分利用了服务器资源。
同时,传统的双机热备构架在出现问题时,常常需要数分钟的切换时间,而RAC在出现问题时,针对存在的会话只需要数十秒的时间就可以完成失败切换过程,对新会话的创建不会产生影响,在切换时间上也有比较大的优势。
▲图1-4双机热备与RAC并行模式对比二、高可用性RAC是Oracle数据库高可用性解决方案。
OracleRAC存储多路径的设置案例
Oracle RAC存储多路径的设置案例以redhat6、centos6、oracle6及Asianux4为例1.安装多路径的客户端如果是FC SAN: yum install device-mapper device-mapper-multipath -y 如果是IP SAN: yum install iscsi-initiator-utils device-mapper device-mapper-multipath -y2.设置一个多路径的配置文件:/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf的文件拷贝到/etc目录下面:3.启动multipath服务/etc/init.d/multipathd restart4.将所有/etc/multipath/bindings 设置为一致,两边的内容一样[root@rac81]# cat /etc/multipath/bindings# Multipath bindings, V ersion : 1.0# NOTE: this file is automatically maintained by the multipath program.# Y ou should not need to edit this file in normal circumstances.## Format:# aliaswwid#mpatha 3600605b005c1b03019ae96a616049c04mpathb 3600143801259f9320000500000360000mpathc 3600143801259f9320000500000420000mpathd 3600143801259f9320000500000460000mpathe 3600143801259f93200005000004a0000mpathf 3600143801259f93200005000003e0000mpathg 3600143801259f93200005000003a0000mpathh 3600143801259f93200005000004e0000mpathi 3600143801259f9320000500000520000mpathj 3600143801259f9320000500000560000mpathk 3600143801259f93200005000005a0000mpathl 3600143801259f93200005000005e0000mpathm 3600143801259f93200005000007a00004.配置multipath.conf文件的磁盘项目devices {device {vendor "HP"product "HSV2[01]0|HSV300|HSV4[05]0"getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" prioaluahardware_handler "0"path_selector "round-robin 0"path_grouping_policygroup_by_priofailback immediaterr_weight uniformno_path_retry 18rr_min_io_rq 1path_checkertur}}上述的内容根据磁盘柜的型号定制,如HP...blacklist {#wwid &quo {multipath {wwid 3600143801259f9320000500000360000alias disk1}multipath {wwid 3600143801259f9320000500000420000alias disk2}multipath {wwid 3600143801259f9320000500000460000alias disk3}multipath {wwid 3600143801259f93200005000004a0000alias disk4}multipath {wwid 3600143801259f93200005000003e0000alias disk5}multipath {wwid 3600143801259f93200005000003a0000alias disk6}multipath {wwid 3600143801259f93200005000004e0000alias disk7}multipath {wwid 3600143801259f9320000500000520000alias disk8}multipath {wwid 3600143801259f9320000500000560000alias disk9}multipath {wwid 3600143801259f93200005000005a0000alias disk10}multipath {wwid 3600143801259f93200005000005e0000alias disk11}multipath {wwid 3600143801259f93200005000007a0000alias disk12}}上述的内容是设置multipath别名项defaults {udev_dir /devpolling_interval 10path_selector "round-robin 0"path_grouping_policymultibusgetuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" prioaluapath_checker readsector0rr_min_io 100max_fds 8192rr_weight prioritiesfailback immediateno_path_retry failuser_friendly_names yes}上述defaults一定要打开,一般为默认即可;5.执行multipath -F命令将原来生成错误的多路径删除[root@rac81 ~]# multipath -F6.执行multipath -v2命令生成新的多路径[root@rac81 ~]# multipath -v27.使用multipath -ll查看生成多路径的情况[root@rac81 ~]# multipath -lldisk9 (3600143801259f9320000500000560000) dm-16 HP,HSV360 size=500G feat ures=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:9 sdj 8:144 failed faulty running|- 6:0:1:9 sdv 65:80 failed faulty running|- 8:0:0:9 sdah 66:16 active ready running`- 8:0:1:9 sdat 66:208 active ready runningdisk8 (3600143801259f9320000500000520000) dm-14 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:8 sdi 8:128 failed faulty running|- 6:0:1:8 sdu 65:64 failed faulty running|- 8:0:0:8 sdag 66:0 active ready running`- 8:0:1:8 sdas 66:192 active ready runningdisk12 (3600143801259f93200005000007a0000) dm-18 HP,HSV360 size=100G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:12 sdm 8:192 failed faulty running|- 6:0:1:12 sdy 65:128 failed faulty running|- 8:0:0:12 sdak 66:64 active ready running`- 8:0:1:12 sdaw 67:0 active ready runningdisk7 (3600143801259f93200005000004e0000) dm-12 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:7 sdh 8:112 failed faulty running|- 6:0:1:7 sdt 65:48 failed faulty running|- 8:0:0:7 sdaf 65:240 active ready running`- 8:0:1:7 sdar 66:176 active ready runningdisk11 (3600143801259f93200005000005e0000) dm-20 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:11 sdl 8:176 failed faulty running|- 6:0:1:11 sdx 65:112 failed faulty running`- 8:0:1:11 sdav 66:240 active ready runningdisk6 (3600143801259f93200005000003a0000) dm-6 HP,HSV360 size=1.0G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:2 sdc 8:32 failed faulty running|- 6:0:1:2 sdo 8:224 failed faulty running|- 8:0:0:2 sdaa 65:160 active ready running`- 8:0:1:2 sdam 66:96 active ready runningdisk10 (3600143801259f93200005000005a0000) dm-22 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:10 sdk 8:160 failed faulty running|- 6:0:1:10 sdw 65:96 failed faulty running|- 8:0:0:10 sdai 66:32 active ready running`- 8:0:1:10 sdau 66:224 active ready runningdisk5 (3600143801259f93200005000003e0000) dm-4 HP,HSV360 size=1.0G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:3 sdd 8:48 failed faulty running|- 6:0:1:3 sdp 8:240 failed faulty running|- 8:0:0:3 sdab 65:176 active ready running`- 8:0:1:3 sdan 66:112 active ready runningdisk4 (3600143801259f93200005000004a0000) dm-10 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:6 sdg 8:96 failed faulty running|- 6:0:1:6 sds 65:32 failed faulty running|- 8:0:0:6 sdae 65:224 active ready running`- 8:0:1:6 sdaq 66:160 active ready runningdisk3 (3600143801259f9320000500000460000) dm-8 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:5 sdf 8:80 failed faulty running|- 6:0:1:5 sdr 65:16 failed faulty running|- 8:0:0:5 sdad 65:208 active ready running`- 8:0:1:5 sdap 66:144 active ready runningdisk2 (3600143801259f9320000500000420000) dm-0 HP,HSV360 size=500G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:4 sde 8:64 failed faulty running|- 6:0:1:4 sdq 65:0 failed faulty running|- 8:0:0:4 sdac 65:192 active ready runningdisk1 (3600143801259f9320000500000360000) dm-2 HP,HSV360 size=1.0G features=‘0’ hwhandler=‘0’ wp=rw`-+- policy=‘round-robin 0’ prio=10 status=active|- 6:0:0:1 sdb 8:16 failed faulty running|- 6:0:1:1 sdn 8:208 failed faulty running|- 8:0:0:1 sdz 65:144 active ready running`- 8:0:1:1 sdal 66:80 active ready running[root@rac81 ~]#。
Oracle RAC技术概述及应用
配 置的环境 中使 用多个 节点拳 访 问一 个单一 的数据库 ,从而 防止应 用和数据 库 用户 由于 硬 件或是软件 导致 的操作 失败 ,并且能 方便
剞 甩硬件 的扩 展拳提 高系统性能
咖 琵c ^ ;技 术 概 述 ; 应 用
使得 企业 可 以构 建 支持 多个 操 作 系统 的 服
的高速缓存合并技 术,与 Orc 数据库中 al e 提供 的 If ia d支持 ,使您能够以近线 n nB n i
何修改 。
务器 ,并 可提 供 出色 的可 用性和 可 伸缩 环境 中,Orce al 可在一个集群中运行于两 个或 更 多个 系统之 上 ,并 可以 同时 访 问
网或 与 网络 断开 ,以进 行维 护 ,而 同时
其它节 点能 够继 续提供 数据 库服 务。
RAC借 助 Or ce a l 应用服务器 ,为连接池
0RAcLE的参 考资料很 多 ,但是有 关
O al r ce RAC的介绍往往一笔带过 ,以下
故障 切换提 供 了内置 的集 成特性 。借 助 这 一 特 性 ,应 用 可 立 即 了解 发 生 的 故 障 ,而 无需等待数十 分钟直到 发生 TCP
商 业 组 件 构 成 ,包 括 :处 理 器 、 服 务
业相机 联 网使 用,虚拟成一 台性能更加
服 务 。这一 体 系结构 允许 将一组 节 点联
出色的 。 高级相机 要用好这台 。 相 , 高级
机 ,用户必须充分理解其原理。目前有关
器、网络和存储 设备 。RAc是唯一一种
可将 这些 组件 整 合成可 供企 业 使用 的技 术。O a l a piain C u tr r ce Re lAp l t lse s c o 和 网格 能够 动 态降 低运 营成 本 ,并 可带
OracleRAC的几个重要参数
Oracle RAC的几个重要参数Oracle 数据库启动时会根据参数文件中提供的相关参数启动Oracle实例。
这些参数包括数据库名字、sga,pga的分配,控制文件的位置,undo,process等等。
Oracle RAC数据库同样依赖于这些参数。
除了所有单实例情形下的参数值外,RAC数据库还多出了一些重要的参数。
本文主要描述RAC环境下的相关参数。
一、单实例下参数文件的重要参数db_namedb_block_sizeControl Files name and locationInitialization Parameters that affect the size of the SGAMaximum Number of ProcessesMethod of Undo Space Managementcompatibledump location二、RAC环境下的参数RAC环境由多个instance组成,除了象db_name,contorl_file 等参数之外,对于一些参数,每一个实例可以有自己的参数值。
DBA可以根据不同实例上所拥有资源的多少来分配不同的SGA,process,等从而提高资源的利用率。
同时也有一些参数在所有实例上必须具有唯一值。
总的来说,RAC上的参数大致分为以下几类。
a、所有实例必须相同的参数,我们不妨称为一致性参数,如db_nameb、所有实例上必须唯一的参数,也可以说叫唯一参数,如instance_numberc、所有实例上可以有不同值得参数,如sga, process,我们可称为可变参数下面分别来描述这几种参数1、一致性参数全局相同参数是一些比较关键的参数,如在数据库创建阶段或RAC系统运行阶段指定或可修改。
对于集群特性而言,这些参数必须始终可见。
参数描述------------------------ ----------------------------active_instance_count 用于两个节点时,设置一个数据库为主实例,一个为备用实例。
