利用Oracle CRS搭建应用的高可用集群

合集下载

利用Oracle选件构建最大高可用数据库

利用Oracle选件构建最大高可用数据库

18
RAC案例——教育
RAC案例——教育行业
• • • • • • 南京市高级技术学校数字化校园项目 江苏省教育厅校舍安全工程 中国地质大学数字校园 浙江经济职业技术学院数字化校园 华东理工大学数字校园 ……
• • • • •
RAC案例——医疗行业
无锡市医院管理中心 上海东方医院Pacs 杭州市红十字会医院His系统 复旦大学附属妇产科医院 His系统 四川大学华西医院试验室信息资源系 统
O/S and Platforms Windows 2000, 2003, XP Linux Sun Solaris HP NonStop HP-UX HP TRU64 IBM AIX IBM z/OS
案例:中华人民共和国海关总署
全国各地41个口岸H2000应用
网络
GoldenGate 双向复制
Oracle 9i RAC
22
高可用选件2——RAC One Node
预算不够能否用RAC?
预算不够可以用RAC One Node!!! • RAC One Node VS 3rd Party 双机热备
• • • • • 基于数据库的HA方案,比基于OS的HA方案更可靠 无间断故障切换 不停机升级到RAC 不停机打数据库、操作系统补丁 统一供应商优势
目录
• • • •
Oracle最大高可用架构 利用Oracle RAC构建本地高可用数据中心架构 利用Oracle GoldenGate构建异地容灾环境 Q&A
系统运行中可能出现的问题
服务器故障 网站故障 网络问题
为提高系统可靠性,必须选择 有故障保障功能的产品
导致IT系统宕机的因素
Oracle 最大可用性体系架构(MAA)

Oracle三种高可用方案原理介绍--解决方案

Oracle三种高可用方案原理介绍--解决方案

Oracle三种高可用方案原理介绍--解决方案Oracle 三种高可用方案原理介绍一、概述Oracle因为是商用版本,所以高可用方案都已经非常成熟,主要有三种高可用方案,下边分别介绍一下。

1 RAC(Real Application Clusters)多个Oracle服务器组成一个共享的Cache,而这些oracle服务器共享一个基于网络的存储。

这个系统可以容忍单机/或是多机失败。

不过系统内部的多个节点需要高速网络互连,基本上也就是要全部东西放在在一个机房内,或者说一个数据中心内。

如果机房出故障,比如网络不通,那就坏了。

所以仅仅用RAC还是满足不了一般互联网公司的重要业务的需要,重要业务需要多机房来容忍单个机房的事故。

2 Data Guard.(最主要的功能是冗灾)Data Guard这个方案就适合多机房的。

某机房一个production 的数据库,另外其他机房部署standby的数据库。

Standby数据库分物理的和逻辑的。

物理的standby数据库主要用于production失败后做切换。

而逻辑的standby数据库则在平时可以分担production数据库的读负载。

3 MAAMAA(Maximum Availability Architecture)其实不是独立的第三种,而是前面两种的结合,来提供最高的可用性。

每个机房内部署RAC集群,多个机房间用Data Guard同步。

二、三种高可用方式工作原理1、Oracle 11G RACRAC环境与单实例最主要的区别是:.RAC的每个实例都有属于自己的SGA、后台进程。

由于数据文件、控制文件共享于所有实例,所以必须放在共享存储中。

..联机重做日志文件:只有一个实例可以写入,但是其他实例可以再回复和存档期间读取。

..归档日志:属于该实例,但在介质恢复期间,其他实例需要访问所需的归档日志。

..alter和trace日志:属于每个实例自己,其他实例不可读写。

使用CRS命令行控制集群

使用CRS命令行控制集群

ITPUB个人空间*^!m;O u.~(J S#r$yOracle10g RAC管理–第一部分:使用CRS命令行控制集群在文章的开头,我们讨论一下管理RAC数据库。

所谓管理意味着很多事情;如同Oracle DBA 所做的――备份,恢复,导出,导入,优化,制定基线等等。

无论如何管理RAC都将是一项挑战。

你需要的是可靠的工具。

CRS入门让我们先对什么是CRS以及CRS做哪些工作了解一下。

同样也介绍一下命令行参数以及如何正确使用它们。

Crs_getperm:用于核对相关资源的权限语法:crs_getperm resource_name [-u user|-g group]Crs_profile:用于建立,验证,删除,更新Oracle集群件档案文件(profile)你可以使用crs_profile来建立一个脚本模版。

在profile中,定义如何管理并监控集群。

当创建了一个应用程序profile并且使用crs_register命令向Oracle集群件注册了它,你就可以使用其他的Oracle 集群件命令行(crs_stat,crs_start,crs_stop,crs_relocate, crs_unregister)来操作这个应用程序。

这对方便的排除故障很有用。

在其他Oracle集群件命令行控制特定的应用程序之前,你必须使用crs_regiester命令行来注册它。

语法:下面的步骤将创建一个profile:crs_profile -create resource_name -t application [-a action_script][-B executable_pathname] [-dir directory] [-d description][-p placement_policy] [-h hosting_nodes] [-r required_resources][-l optional_resources]? [-o option,[...]][attribute_flag attribute_value] [...] [-f] [-q]?以下命令从模版中创建一个应用程序profile:crs_profile -create resource_name -I template_file [-f] [-q]验证profile:crs_profile -validate resource_name [-q]将应用程序profile列出:crs_profile -print [resource_name [...]] [-q]更新profile:crs_profile -update resource_name [option [...]] [-q]删除profile:crs_profile -delete resource_name [-q]crs_register:此命令将应用程序配置信息注册到OCR(译者注:Oracle Cluster Registry:一个关于集群的元数据数据库,用于维护集群内的资源跟踪,并获知资源正在哪里运行以及它们能够并应该在哪里运行,运行crs_stat所得到的信息来于此)中。

oracle RAC集群搭建

oracle RAC集群搭建

一. 安装前准备(1)系统版本CentOS-6.9-x86_64-bin-DVD1.isoopenfileresa-2.99.1-x86_64-disc1.iso (共享内存服务器版本)(2) Oracle database和Grid安装包linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.ziplinux.x64_11gR2_grid.zip(3) ASMlib安装包kmod-oracleasm-2.0.8-15.el6_9.x86_64.rpmoracleasmlib-2.0.4-1.el6.x86_64.rpmoracleasm-support-2.1.8-1.el6.x86_64.rpm(4) 依赖软件包yum install gcc gcc-c++ gcc-32bit glibc-devel glibc-devel-32bit libaio libaio-devel libaio-devel-32bit libstdc++43-devel-32bit libstdc++43-devel sysstat libstdc++-devel libcap1 libcap1-32bit libcap2 libcap2-32bit compat* libgomp unixODBC unixODBC-devel ksh(5)运行要求3G运行内存40G系统硬盘二. 系统环境配置(1) 主机hosts文件解析配置,两台主机使用相同配置[root@rac1 ~]$ vim /etc/hosts127.0.0.1 rac1::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# public ip192.168.8.33 rac1192.168.8.34 rac2# private ip192.168.9.12 rac1-priv192.168.9.13 rac2-priv# vip192.168.8.41 rac1-vip192.168.8.37 rac2-vip# scan ip192.168.8.39 rac-cluster-scan/usr/sbin/groupadd -g 505 asmdba/usr/sbin/groupadd -g 506 asmoper/usr/sbin/useradd -u 501 -g oinstall -Gdba,oper,asmdba,asmadmin oracle -m/usr/sbin/useradd -u 502 -g oinstall -Gdba,asmadmin,asmdba,asmoper,oper grid -m2. 创建密码passwd gridpasswd oracle3.修改主机名vim /etc/sysconfig/networkHOSTNAME=rac14.修改SELINUXvim /etc/selinux/configSELINUX=disabled(3) 创建安装目录mkdir -p /u01/app/{grid,oracle}chown -R grid:oinstall /u01/chown -R grid:oinstall /u01/app/grid/chown -R oracle:oinstall /u01/app/oracle/chmod -R 775 /u01/ls -l /u01/app/total 8drwxrwxr-x 2 grid oinstall 4096 Nov 16 19:09 griddrwxrwxr-x 2 oracle oinstall 4096 Nov 16 19:09 oracle(4) 配置grid、oracle用户环境变量配置rac1节点grid用户的profile,ORACLE_SID为+ASM1,rac2节点改为+ASM2,直接在配置文件后加入以下内容[root@rac1 ~]$ vim /home/grid/.bash_profileexport ORACLE_SID=+ASM1export ORACLE_BASE=/u01/app/oracleexportORACLE_HOME=/u01/app/grid/product/11.2.0export PATH=$PATH:$ORACLE_HOME/binexport TMP=/tmpexport TMPDIR=$TMPexport NLS_DATE_FORMAT="yyyy-mm-ddHH24:MI:SS"export THREADS_FLAG=nativeexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport CVUQDISK GRP=oinstallif [ $USER = "oracle" ] || [ $USER = 'grid' ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi-------------------------------------------------------------------------------------------------------配置rac2节点oracle用户的profile,ORACLE_SID为rac1,rac2节点改为rac2[root@rac1 ~]$ vim /home/oracle/.bash_profileexport ORACLE_SID=rac1export ORACLE_BASE=/u01/app/oracleexportORACLE_HOME=$ORACLE_BASE/product/11.2.0exportPATH=$ORACLE_HOME/bin:/usr/sbin:$PATHexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_TERM=xtermexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64 exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_DATE_FORMAT="yyyy-mm-ddHH24:MI:SS"export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKif [ $USER = "oracle" ] || [ $USER = 'grid' ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi(4) 修改内核参数配置//需要把原来文档中的kernel.shmmax、kernel.shmall两项注释vim /etc/sysctl.confkernel.shmmax = 1073741824 //内存的一半虚拟机使用2G内存kernel.shmall = 2097152net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576net.ipv4.ip_local_port_range = 9000 65500fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.sem = 250 32000 100 128kernel.shmmni = 4096使修改生效# sysctl –p修改/etc/security/limits.conf# vim /etc/security/limits.conforacle soft nofile 1024oracle hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768grid soft nofile 1024grid hard nofile 65536grid soft nproc 2047grid hard nproc 16384grid soft stack 10240grid hard stack 32768# vim /etc/pam.d/loginsession required pam_limits.so关闭防火墙service iptables stopchkconfig Iiptables off(5)集群时间同步服务。

Oracle数据库高可用架构与实践

Oracle数据库高可用架构与实践

03
故障转移和恢复
高可用性架构需要快速、可靠地进行故障转移和恢复,以最小化停机时
间并保持业务连续性。
高可用性技术的未来发展趋势
自动化和智能化
随着技术的发展,高可用性架构将更 加依赖自动化和智能化技术,以简化 管理和提高效率。
数据安全和隐私保护
随着对数据安全和隐私保护的需求增 加,高可用性架构将更加注重这些方 面。
oracle数据库高可用架构与实践
目 录
• Oracle数据库高可用性概述 • Oracle数据库硬件与软件架构 • Oracle数据库高可用性解决方案 • 高可用性实践与案例分析 • 高可用性架构的挑战与未来发展
01 Oracle数据库高可用性概 述
高可用性的定义与重要性
高可用性定义
高可用性是指系统在出现故障时仍能 保持正常运行的能力,以及快速恢复 到正常运行状态的能力。
05 高可用性架构的挑战与未 来发展
高可用性架构面临的挑战
01
数据一致性和完整性
在高可用性架构中,确保数据一致性和完整性是一个重要挑战。需要采
取措施来避免数据丢失或损坏,并确保在故障转移过程中数据的一致性。
02
资源管理和调度
高可用性架构通常涉及多个数据库和服务器,需要有效的资源管理和调
度策略来确保负载均衡和高效利用。
Oracle RAC
Oracle RAC(Real Application Clusters)是Oracle数据 库的另一种高可用性解决方案,通过多节点集群方式实现 数据库的高可用性和负载均衡。
Oracle GoldenGate
Oracle GoldenGate是一种数据集成和实时数据复制解决 方案,可以实现不同数据库系统之间的数据同步和集成。

一起大话OracleRAC

一起大话OracleRAC

一起大话OracleRAC在集群环境中,关键数据通常是共享存放的,比如放在共享磁盘上。

而各个节点的对数据有相同的访问权限,这时就务必有某种机制能够操纵节点对数据的访问。

Oracle RAC 是利用DLM(Distribute Lock Management) 机制来进行多个实例间的并发操纵。

1.2 健忘症(Amnesia)集群环境配置文件不是集中存放的,而是每个节点都有一个本地副本,在集群正常运行时,用户能够在任何节点更换集群的配置,同时这种更换会自动同步到其他节点。

有一种特殊情况:节点A 正常关闭,在节点B上修改配置,关闭结点A,启动结点B。

这种情况下,修改的配置文件是丢失的,就是所谓的健忘症。

1.3 脑裂(Split Brain)在集群中,节点间通过某种机制(心跳)熟悉彼此的健康状态,以确保各节点协调工作。

假设只有"心跳"出现问题,各个节点还在正常运行,这时,每个节点都认为其他的节点宕机了,自己是整个集群环境中的"唯一建在者",自己应该获得整个集群的"操纵权"。

在集群环境中,存储设备都是共享的,这就意味着数据灾难,这种情况就是"脑裂"解决这个问题的通常办法是使用投票算法(Quorum Algorithm). 它的算法机理如下:集群中各个节点需要心跳机制来通报彼此的"健康状态",假设每收到一个节点的"通报"代表一票。

关于三个节点的集群,正常运行时,每个节点都会有3票。

当结点A心跳出现故障但节点A还在运行,这时整个集群就会分裂成2个小的partition。

节点A是一个,剩下的2个是一个。

这是务必剔除一个partition才能保障集群的健康运行。

关于有3个节点的集群,A 心跳出现问题后, B 与 C 是一个partion,有2票,A 只有1票。

按照投票算法, B 与C 构成的集群获得操纵权,A 被剔除。

最佳实践-Oracle RAC结合Weblogic GridLink构建高可用环境

最佳实践-Oracle RAC结合Weblogic GridLink构建高可用环境

GridLink特性
1.简化和统一了对RAC连接配置的模块(以前是配置两个)。 2.支持Fast Connection Filover(FCF)。 3.支持Runtime Connection Load Balancing(RCLB)。 4.支持Single Client Access Name(SCAN)。 5.Oracle RAC停机的正常处理。
Node
Dispatchers
Listener
CPU Load
Node
Dispatchers

数据库启动时,向监听进程注册 节点向监听进程报告 CPU以及session 的情况 当建立连接时,监听进程选择最空闲的节点处理请求
Automatic Workload Management
监听动态负载
中间件是什么
中间件(Middleware)是一种软件,它提供系统(操作系统、 硬件和数据库等)和应用软件之间的连接,便于软件各部件之间的 沟通、特别是应用软件对于系统软件的集中逻辑。
Java 应用服务器示意图
GridLink是什么
GridLink是WebLogic Server 10.3.4新推出的Data Source类型,提 供了针对Oracle RAC数据库与WLS之间的连接功能。GridLink通过 Oracle通知服务(ONS)来获取Oracle RAC实例的状态变化。WLS可以 通过Oracle RAC灵活的数据库服务设计来满足其需求,也可以由数据 库服务的增加而扩展而不需要关注RAC 集群中的物理结构变化。
EM中央控制台
公共网络
低延迟网络互连
用户程序
高速互连网络
防止单点失败
集群数据库
高速缓存融合

Oracle的三种高可用集群方案

Oracle的三种高可用集群方案

Oracle的三种高可用集群方案一、ORACLE RAC简介RAC概述共享存储文件系统(NFS),或甚至集群文件系统(如:OCFS2)主要被用于存储区域网络(所有节点直接访问共享文件系统上存储器),这就使得节点失效而不影响来自其他节点对文件系统的访问,通常,共享磁盘文件系统用于高可用集群。

Oracle RAC的核心是共享磁盘子系统,集群中所有节点必须能够访问所有数据、重做日志文件、控制文件和参数文件,数据磁盘必须是全局可用的,允许所有节点访问数据库,每个节点有它自己的重做日志和控制文件,但是其他节点必须能够访问它们以便在那个节点出现系统故障时能够恢复。

Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。

如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。

Oracle 的主要创新是一项称为高速缓存合并的技术。

高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地降低磁盘 I/O。

高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问。

数据无需在节点间进行分区。

Oracle 是唯一提供具备这一能力的开放系统数据库的厂商。

其它声称可以运行在集群上的数据库软件需要对数据库数据进行分区,显得不切实际。

企业网格是未来的数据中心,构建于由标准化商用组件构成的大型配置之上,其中包括:处理器、网络和存储器。

Oracle RAC 的高速缓存合并技术提供了最高等级的可用性和可伸缩性。

Oracle 数据库10g 和 Oracle RAC 10g 显著降低了运营成本,增强了灵活性,从而赋予了系统更卓越的适应性、前瞻性和灵活性。

动态提供节点、存储器、CPU 和内存可以在实现所需服务级别的同时,通过提高的利用率不断降低成本。

二、Oracle的三种高可用集群方案1 )RAC(Real Application Clusters)多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储。

oracle真正应用集群的成功可扩展性低成本和高可用性

oracle真正应用集群的成功可扩展性低成本和高可用性

客户统计数据
Ÿ 待完成
PPT文档演模板
oracle真正应用集群的成功可扩展性 低成本和高可用性
RAC 的性能等于或超过 SMP
•成本却只是 SMP 的一小部分 •SMP •RAC
PPT文档演模板
•SMP •RAC
•SMP •RAC •SMP •RAC
•IBM •SUN
•x10 • HP
•x10 •SUN
– SMP 的总报价为 7,921,505 美元 – Cluster 的总报价为 2,620,866 美元**
PPT文档演模板
•*包括处理器、操作系统、内存、集群互联和支持 •**RAC 软件报价增加 1,280,000 美元
oracle真正应用集群的成功可扩展性 低成本和高可用性
客户贷款处理基准测试
客户贷款处理基准测试
Ÿ 详细信息 – 相同的 CPU (Sun 900 MHz) – 相同的总内存 (288 GB) – 相同的 Sun Solaris 操作系统
Ÿ 价格比较(未提供)
– 集群的结构为:将48 CPU的Sun Fire 15K 服务器 分区为两个 24 CPU的域
PPT文档演模板
oracle真正应用集群的成功可扩展性 低成本和高可用性
– 15 个小时内处理 3000 万个贷款申请
Ÿ 保持 2 百万/小时,即 33,333/分钟
– 各种事务的组合,例如
Ÿ T1 = 13 个读取,4 个插入,2 个更新 Ÿ T2 = 5 个读取,2 个更新 Ÿ T3 = 1 个读取,6 个更新
PPT文档演模板
oracle真正应用集群的成功可扩展性 低成本和高可用性
•SMP
•RAC
•每分钟 •处理的贷款 •申请数量

Oracle数据库高可用集群实现方案

Oracle数据库高可用集群实现方案

台 , al orce数 据 库 的 重 要 性 也 日
益 凸 显 。同 时 , 于 应 用 系 统 的 不 由
1 rc O al e双机热备集群
1. 基 本 概 念 1
以 HACMP 实 现 O a l r ce双 机 热 备 为 例 . 由 图 1可 知 . HACMP 运 行 在 AI 之 上 , 主 机 应 用 X 0r c e数 据 库 。 因 此 , a l al 0r ce数 据
本 文 在 讨 论 了 0rce双 机 热 al
21 0 1年 第 9卷 第 1 1期
RTFrT R r _ T Pn W FR T T

启豫舞辰
百 戮 疙 i













EL ECTRl P C OW ER l T
公共 网络
AS 存 储 、 M DB 数 据 库 等 :
省 电力公 司 S 8 G1 6松 耦 合 应 用 系
中 , 机 热 备 需 要 集 群 软 件 的 支 双 持 . 目前 常 用 的 产 品 是 I M 公 B 司 的 高 可 用 性 集 群 多 处 理
( HAC MP) 群 软 件 。 集
12 体 系 结 构 .
统 的数据 库集 群部 署 实现方 式 。
在 RAC 的 实 现 中 , 果 存 储 如
障 、 机 上 的操 作 系 统 故 障 、 机 主 主
上 的 网卡 故 障 、 机 网络 故 障等 , 主 同 时 也 无 法 避 免 一 些 问 题 .包 括
通 常 情 况 下 ,主 机 都 连 接 在 一 个 或 者 两 个 网 络 交 换 机 上 , 负 责 与 外 界 通 信 。 外 部 网 络 也 有 可 能 连 接 到 不 同 的 网 络 交 换 机 ,保 证 公 共 网络 的 可靠性 和失 败切 换 。

一种oracle高可用集群设计实现

一种oracle高可用集群设计实现

一种oracle高可用集群设计实现描述Vmware Workstation 平台上搭建一套Oracle RAC + DG,用来保障企业生产环境需求,可以有效的进行主备切换,负载均衡和数据同步。

Oracle RAC 是Oracle数据库推出的实时应用集群技术,DG是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现快速切换与灾难性恢复。

标签:Oracle;RAC;DG数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。

三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。

同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。

主要呈现四个特点。

1.关系型数据库为主。

众所周知,关系型数据库已经出现了近40年,并且在很长一段时间里一直是数据库领域当之无愧的王者。

2.新型数据库的不断壮大。

如今,新型数据库,包括NoSQL以及NewSQL两种主要类型,这位后起之秀正在进入越来越多的应用领域。

3.SQL与Hadoop的集成遇到了挑战。

传统的数据库厂商也在寻求能让关系型数据库完美对接Hadoop等大数据架构的方法,但是仍然没有找到能很好解决的方法。

4.大数据架构加强对NoSQL的支持。

NoSQL在数据库领域的影响力日渐壮大,领头羊MongoDB,Cassandra和Redis 已经在DB-Engine的数据库排名上进入了前十。

所以许多的大数据架构、平台也都在越来越强化对于NoSQL数据库的支持。

1、需求分析1.1稳定可靠(High-Availability)数据库保存的是企业最重要的数据,是企业应用的核心,稳定可靠的数据库可以保证企业的应用常年运行,而不会因为数据库的宕机而遭受损失。

企业的信息化可以促进生产力,但如果选择了不稳定产品,经常影响业务生產的正常运营,则实际效果很可能是拖了企业的后退。

无论是计划中(数据库维护等正常工作)还是意外的宕机都将给企业带来巨大的损失,这意味着企业要减低收入、要降低生产力、要丢失客户、要在激烈的企业竞争中丢失信心。

crs_stat_大话Oracle RAC:集群 高可用性 备份与恢复_[共3页]

crs_stat_大话Oracle RAC:集群 高可用性 备份与恢复_[共3页]

185 Chapter 6 第 6 章 RAC 维护工具集 具体的分析方法Oracle 提供了一个参考过程∗,我把这个过程用图6-4总结了出来,便于读者的学习。

图6-4 系统重启原因分析
6.5 应用层
应用层就是指RAC 数据库了,这一层是有若干资源组成的,每个资源是一个进程或者一组进程组成的完整服务,这一层的管理和维护都是围绕这些资源进行的。

这层的工具包括srvctl 、onsctl 、crs _stat 。

6.5.1 crs _stat
crs _stat 这个命令用于查看CRS 维护的所有资源的运行状态。

如果不带任何参数时,显示所有资源的概要信息。

每个资源显示是各个属性:资源名称、类型、目标、资源状态等。

比如下面的输出中共有13个资源,包括2个GSD 、2个ONS 、2个VIP 、2个ASM Instance 、2个Listener 、2个RDBMS Instance 和1个Database 。

所有资源当前状态都是在线状态。

[oracle@dbp client]$ crs _stat
NAME=ora.WXXRZXM.WXXRZXM1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on dbs
NAME=ora.WXXRZXM.WXXRZXM2.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on dbp
NAME=ora.WXXRZXM.db
TYPE=application
∗ 参考文档265769.1。

Oracle RAC环境中连接的高可用

Oracle RAC环境中连接的高可用

1、工作量分配的类型在RAC环境中,在多nodes上可以配置多个listeners来响应client对相同Database Service的连接请求。

一个multiple-listener设置可影响相应的故障转移和负载均衡:* client端的连接时间负载均衡(connect-time)* client端的连接时间故障转移* server端的连接时间负载均衡这些特性可以一个个单独实施,也可进行彼此的结合。

此外,如果使用连接池,可以获得相应的运行时间的平衡(run-time balance):首先,client的工作请求自动的通过连接池获得一定的均衡;此外,从oracle JDBC隐式的连接缓冲特性也可获得相应的收效。

2、client 端的连接时间负载均衡client端的connect-time负载均衡特性使client可以随机的连接请求列表中的可用listeners。

Oracle Net进程通过类表中的协议地址,以随机序列来均衡各个listeners上的负载。

否则,Oracle Net将总是尝试对第一个协议地址建立连接。

可以在相应的client端的TNS实体设置参数LOAD_BALANCE=ON。

具体例子:ERP =(DESCRIPTION =(LOAD_BALANCE=ON)(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=node1vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=node2vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ERP)))3、client 端的connect-time failover此特性可以使client,在初始的向第一个listener建立连接失败后,向其他listener建立连接。

在连接描述符中,listener协议地址的数量决定了将会尝试连接listener的数量。

构建高可用性oracle集群

构建高可用性oracle集群

构建高可用性oracle集群随着IT以及IT相关服务在企业里应用的越来越广泛,现代化企业也越来越依赖于他们所采用的IT架构。

如果一个关键应用的数据库不可用,不但直接影响到企业业务运行,而且会使企业面临数据丢失的危险。

因此,构建一个具有高可用性的数据库平台对于一个现代化企业来讲至关重要。

所谓数据库的高可用性是指,提供近乎连续的数据访问,将硬件和软件组件故障产生的中断降低到最少。

实现数据库的高可用性需要综合可虑,涉及到IT架构的诸多方面,包括:网络、存储、服务器、数据库软件、备份系统等。

Oracle作为被广泛使用的一种数据库系统,在实现数据库高可用方面有很多优点,本文着重讨论oracle数据库高可用性的实现方式。

在设计数据库高可用性之前,首先需要分析可能造成数据库系统不可用的原因,这样才能采取相应的办法避免因这些原因导致的数据库故障。

数据库系统停机通常包含计划停机和意外停机两种。

计划停机通常是在有计划的情况下对数据库系统或相应硬件进行维护升级,只要事先做好详细计划,计划停机通常是可以控制并减少的。

在这方面oracle提供了联机修改系统配置、联机升级等功能,可以有效的减少计划停机的时间。

我们重点需要考虑的是非计划停机,这类停机通常是由于计算机故障或者数据故障引起的,相对于计划停机,这类故障引起的数据库停机危害更大,影响也最严重,因此需要我们重点关注。

运行数据库的服务器意外故障导致服务中断,这是一种最并常见的故障,大多数情况是由于硬件故障造成。

Oracle RAC(Real Application Clusters)架构可以有效地防止这类故障的发生。

Oracle RAC是首要的数据库集群技术,在RAC环境中Oracle运行于两个或者更多的计算机节点上,并可以同时访问一个共享数据库。

这使得一个数据库系统可以跨越多个硬件系统平台,同时对应用程序而言仍是一个统一的数据库系统,从而为各中应用程序的可用性提供了极大的优势。

最佳实践:基于Oracle RAC构建WebSphere Process Server6.2高可用性

最佳实践:基于Oracle RAC构建WebSphere Process Server6.2高可用性

最佳实践:基于Oracle RAC构建WebSphere Process Server6.2高可用性田甜IBM软件测试工程师胡滨 IBM软件测试工程师1.概述Oracle RAC (Real Application Cluster,真正应用集群) 由多台Oracle数据库服务器组成,保证了单一节点宕机后失败切换,另一方面,Oracle RAC可进行并行计算和负载均衡,与单一数据库节点相比,性能更加稳定。

WebSphere Process Server提供了对Oracle RAC的配置支持,用来保证大数据量处理和系统的实时可靠性。

本文介绍使用Oracle RAC的失败切换功能来介绍WebSphere Process Server 对(以下简称WPS)高可用性的支持。

在实现此测试过程中,笔者将数据库服务器上的一个节点置为不可用的情景来触发Oracle实施失败切换(failover)功能,与此同时,事件不停息地产生并持续流经到WPS中进行正常处理。

笔者使用CitiApp 场景来完成这个事件发送过程。

为方便起见,本文以Websphere Process Server 6.2 Stand-alone单机架构为例,详细阐述配置步骤及场景测试验证。

在网络部署架构(Network Deployment)中,配置过程是类似的。

在本文中,笔者使用两台Linux机器作为Oracle节点,一台共享磁盘阵列来存放Oracle数据文件和日志文件。

拓扑图如下所示:图1:Oracle RAC拓扑结构在使用多节点的Oracle RAC拓扑结构之前,首先要确保单一节点的Oracle 数据库在WPS中正确配置,即本文第二部分所述的单点配置,在此基础上,才能继续进行针对WPS的Oracle RAC即集群配置。

2.Oracle RAC的单节点配置配置基于Oracle数据库的WPS通用配置过程包括以下几个部分。

2.1拷贝驱动文件将Oracle驱动文件(classes12.zip)从Oracle DB服务器拷贝到WPS服务器。

crsctl_大话Oracle RAC:集群 高可用性 备份与恢复_[共5页]

crsctl_大话Oracle RAC:集群 高可用性 备份与恢复_[共5页]

en0 10.0.0.0 global cluster_interconnect
然后,重启所有节点上的 CRS
# /oracle/product/crs/bin/crsctl stop crs
Chapter 6
6 RAC
# /oracle/product/crs/bin/crsctl start crs
crsctl check cssd
- checks the viability of CSS
crsctl check crsd
- checks the viability of CRS
crsctl check evmd
- checks the viability of EVM
crsctl set css <parameter> <value> - sets a parameter override
问题显然是安装过程中某个错误导致集群的网络互联信息注册到 OCR 中。没有必要把 Oracle Clusterware 重装一遍,我们通过 oifcfg 就可以解决这个问题。
3.解决办法
首先,为了避免操作过程影响数据库,先把数据库关闭:
$ srvctl stop database -d wxxrdb 第
[oracle@center-rac1 bdump]$oifcfg iflist ce0 192.168.1.0 ce1 10.0.0.0
[oracle@center-rac1 bdump]$oifcfg getif ce0 192.168.1.0 global public ce1 10.0.0.0 global cluster_interconnect
159
6.4.1 crsctl
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用Oracle CRS搭建应用的高可用集群前言:CRS的简介和由来从Oracle 10gR1 RAC 开始,Oracle推出了自身的集群软件,这个软件的名称叫做Oracle Cluster Ready Service(Oracle集群就绪服务),简称CRS。

从Oracle 10gR2开始,包括最新的11g,Oracle 将其更名为Clusterware(集群件),但通常意义上我们认为CRS = Clusterware = Oracle Cluster Ready Service = Oracle Cluster Software.CRS一般用来搭建Oracle的并行数据库,即RAC,但除了与RAC的接口之外,CRS还提供了一组高可用性的应用程序接口(API),用来搭建一般应用程序的高可用集群,即一般我们常说的双机热备,比如使用CRS实现MySQL的双机热备。

这种主备模式的双机热备还可以包括许多第三方的应用程序,比如虚拟IP、磁盘组、文件系统、MySQL数据库、Apache,或者单节点的Oracle实例,或者单节点的ASM,等等,都可以作为资源注册到CRS中去,由CRS来启动,关闭,监测应用程序的状态,还可以设置应用程序相互的依赖关系,保证多组资源正确的启动顺序。

本文就以保护单节点oracle实例为例,演示如何使用CRS来实现上述功能。

使用的主要的软件有:Solaris 10u4, Oracle CRS 10.2.0.2 , Oracle RDMBS 10.2.0.3, VxVM 5.0 ,磁盘阵列型号是AMS1000。

系统拓扑图大致如下:主要操作步骤如下:一、准备工作:软件安装,数据库创建1.安装Solaris 10, Veritas Volume Manager ,安装过程略2.创建用户组dba/oinstall,oracle用户,并修改相应profile和/etc/hosts 文件修改rhosts文件,配置oracle用户的对等连接;连接心跳网线;如果生产环境中推荐心跳网络使用千兆,推荐每台机器有两块网卡分别连接两个网络交换机;在操作系统中启动心跳网卡;准备共享磁盘,这里使用的是SAN环境下的共享盘ams_wms0_0098,大小为20G;3.下面使用静默方式来安装Oracle集群软件、数据库软件这种安装创建方式的优点是创建速度比较快,并且不需要运行图形界面,适合远程安装和建库;缺点是不直观,需要手工编写响应文件;这一步CRS的安装只需要在一个节点上做:oracle@rac01$. ./clusterware/runInstaller -silent -responsefile /tmp/shahand/crs.rspcrs.rsp 文件内容参考“五-7”部分CRS的runInstaller运行完毕以后,要手工在两个节点上运行root.sh,并要手工运行$CRS_HOME/cfgtoollogs/configToolAllCommands检查设置了正确的心跳网络:root@rac01 # $CRS_HOME/bin/oifcfg getife1000g0 10.198.88.0 global publice1000g1 192.168.2.0 global cluster_interconnect使用静默方式安装Oracle 数据库软件,这一步两个节点都要做:./runInstaller -silent -responsefile /tmp/shahand/db.rspdb.rsp 文件内容参考“五-8”部分4.创建oracle数据库文件所需要的盘组、逻辑卷、文件系统、挂载文件系统并设置权限;查看。

二、Oracle 集群软件资源的手工注册1. 注销crs本身自带的ons、gsd、vip资源root@rac01 # crs_stop -allAttempting to stop `ora.rac01.gsd` on member `rac01` Attempting to stop `ora.rac01.ons` on member `rac01` Attempting to stop `ora.rac02.gsd` on member `rac02` Attempting to stop `ora.rac02.ons` on member `rac02` Stop of `ora.rac02.gsd` on member `rac02` succeeded. Stop of `ora.rac02.ons` on member `rac02` succeeded. Stop of `ora.rac01.gsd` on member `rac01` succeeded. Stop of `ora.rac01.ons` on member `rac01` succeeded. Attempting to stop `ora.rac01.vip` on member `rac01` Attempting to stop `ora.rac02.vip` on member `rac02` Stop of `ora.rac02.vip` on member `rac02` succeeded. Stop of `ora.rac01.vip` on member `rac01` succeeded.root@rac01 # crs_unregister ora.rac01.gsdroot@rac01 # crs_unregister ora.rac01.onsroot@rac01 # crs_unregister ora.rac01.viproot@rac01 # crs_unregister ora.rac02.viproot@rac01 # crs_unregister ora.rac02.onsroot@rac01 # crs_unregister ora.rac02.gsdroot@rac01 # crs_stat -tCRS-0202: No resources are registered.2.创建虚拟IP资源:root@rac01 # crs_profile -create havip -t application -a /oracle/crs/bin/usrvip \-o oi=e1000g0,ov=10.198.94.139,on=255.255.248.0root@rac01 # crs_register haviproot@rac01 # crs_setperm havip -o rootroot@rac01 # crs_setperm havip -u user:oracle:r-xroot@rac01 # crs_stat -t -vName Type R/RA F/FT Target State Host----------------------------------------------------------------------ha_vip application 0/1 0/0 OFFLINE OFFLINEroot@rac01 # crs_start haviproot@rac01 # crs_stat -t -vName Type R/RA F/FT Target State Host----------------------------------------------------------------------havip application 0/1 0/0 ONLINE ONLINE rac013.准备控制其他资源启动、关闭、检查的脚本文件dg.sh/fs.sh/db.sh/lsnr.sh这四个脚本文件内容参考“五-3/4/5/6”部分对crs_profile命令中的选项和参数做简单说明:(1) 选项-r定义了该资源所依赖的资源,在下面的例子中,资源oradata_mount启动时依赖于disk_group先启动,需要停止disk_group的时候必须先停止资源oradata_mount,资源orcl_db的启动则同时依赖于oradata_mount/disk_group/havip/listener;(2) 参数-o 包括:ci的意思是crs对资源状态的监测间隔(check interval),单位为秒;ra : crs重启资源的尝试次数,RESTART_ATTEMPTS,次数到达以后将重新分配;fi : 资源状态出现错误以后,crs的尝试间隔,FAILURE_INTERVAL,单位是秒;ft : 资源状态出现错误以后,crs的尝试次数,FAILURE_THRESHOLD;这些参数可以使用默认值,分别是60秒/1/0秒/0。

(3) 参数-a 是指ACTION_SCRIPT,参数值为资源启动、关闭、监测的脚本,脚本固定的三个参数为start/stop/check;管理数据库监听的部分:修改$ORACLE_HOME/network/admin/listener.ora文件,将其中(HOST = rac01 )部分修改成(HOST = 10.198.94.139 ) (虚拟IP地址)crs_profile -create listener -t application -a /oracle/crs/crs/public/lsnr.sh -r havip -o \ci=180,ra=6,ft=2,fi=12crs_register listenercrs_setperm listener -o rootcrs_setperm listener -u user:oracle:r-xcrs_start listener管理磁盘组和逻辑卷的部分:crs_profile -create disk_group -t application -a /oracle/crs/crs/public/dg.sh -r havip -o \ci=180,ra=6,ft=2,fi=12crs_register disk_groupcrs_setperm disk_group -o rootcrs_setperm disk_group -u user:oracle:r-x注:本身磁盘组的启动并不依赖于虚拟IP的启动,这里之所以设置两者的依赖关系,是为了防止虚拟IP在一个节点启动,而磁盘组在另外一个节点启动,造成资源不一致的情况出现。

管理文件系统的部分:crs_profile -create oradata_mount -t application -a /oracle/crs/crs/public/fs.sh -r disk_group -o \ ci=180,ra=6,ft=2,fi=12crs_register oradata_mountcrs_setperm oradata_mount -o rootcrs_setperm oradata_mount -u user:oracle:r-x管理数据库实例的部分:crs_profile -create orcl_db -t application -a /oracle/crs/crs/public/db.sh -r \"oradata_mount listener" -o ci=180,ra=6,ft=2,fi=12crs_register orcl_dbcrs_setperm orcl_db -o rootcrs_setperm orcl_db -u user:oracle:r-xcrs_start orcl_db4.确保脚本具有执行属性,并把public 和profile的内容拷到第二个节点上。

相关文档
最新文档