rac

Oracle数据库HA架构方案介绍

左心房为你撑大大i 提交于 2019-12-03 11:22:07
摘要 : Oracle 数据库在 各类应用 系统中负责存储平台所有的用户数据,数据库的可靠性及安全性直接影响平台的安全运行 ,目前采用的 Oracle Replication 方式来实现的数据库高可靠性已经显示出了弊端,本文介绍并分析了目前比较流行的几种数据库高可用性的架构: Oracle Replication 、 Oracle Rac 、 Oracle 主机 HA 等,希望给大家一个参考。 1 什么是高可用性( High Availability) 高可用(HA)性有两种不同的含义,在广义环境中是指整个系统的高可用性,在狭义方面一般指主机、服务的冗余,如主机HA、应用程序的HA等,无论那种情况,高可用性都可以包含如下一些方面: Ø 系统失败或崩溃 Ø 应用层或者中间层错误 Ø 网络失败 Ø 介质失败:指一些存放数据的媒体介质故障 Ø 人为错误 Ø 系统的容灾备份 Ø 计划内的维护或者重启 可见,高可用性不仅包含了系统本身故障、应用层的故障、网络故障、认为操作的错误等,还包含数据的冗余、容灾及计划的维护时间等,也就是说一个真正的高可用环境,不仅能避免系统本身的问题,还应该能防止天灾、人祸,并且有一个可靠的系统升级及计划维护操作。 本文探讨的Oracle 数据库层面的高可用性,不可避免也会涉及到一些主机、存储、操作系统方面的高可用性

测试:Oracle 19c RAC添加私网

拜拜、爱过 提交于 2019-12-03 08:28:22
最近有个客户需求是在某12.2版本的RAC环境上添加心跳网络,顺便考虑将之前的心跳网络改为asm专用。我目前只有19c的RAC的测试环境(19c是12c的最终稳定版本),直接测试验证下过程备忘。 1.测试环境概述 2.添加心跳网络 3.修改asm网络 4.重启has集群 5.检查心跳状态 1.测试环境概述 首先我的测试环境是这样的: [grid@db195 ~]$ oifcfg getif enp0s3 192.168.1.0 global public enp0s8 10.10.1.0 global cluster_interconnect,asm 2.添加心跳网络 主机层面添加新的网卡enp0s9,配置对应的IP地址后,可以将enp0s9添加为心跳网络: [grid@db195 ~]$ oifcfg setif -global enp0s9/10.10.1.0:cluster_interconnect [grid@db195 ~]$ oifcfg getif enp0s3 192.168.1.0 global public enp0s8 10.10.1.0 global cluster_interconnect,asm enp0s9 10.10.1.0 global cluster_interconnect 3.修改asm网络 如果确认需要将之前的设置为asm专用,可以再修改:

Oracle RAC 内存融合

匿名 (未验证) 提交于 2019-12-03 00:41:02
LMS:这个进程负责完成GCS的大部分工作,它会维护GRD中数据块资源的信息,完成数据块在实例之间的传递工作,相关消息的发送和接收工作。每个数据库实例中会存在多个LMS进程,名称为LMS<x>,默认的LMS进程数量是根据节点的CPU数量计算出来的。 LMD:这个进程主要负责GES相关资源的管理工作,GES资源主要指Oracle中的排队(Enqueue)资源,由于RAC数据库包含很多实例,每个实例都能够对相同的数据进行操作,所有需要LMD进程对这些队列资源进行管理和协调,每个数据库实例只包含一个LMD进程。 LCK:这个进程主要负责实例锁(实例锁的含义并不是实例级别的锁,而是指这种锁管理的资源仅限于本地实例)管理,实例级别的锁包括:library cache lock,row cachelock等,实例级别的锁是由LCK进程通过广播的方式进行管理的,当一个进程需要持有一个实例锁时,LCK进程会以广播方式向所有远程实例的LCK进程发送这个请求,而远程实例收到这个请求之后,更新自己的信息并反馈信息(如果远程实例的某个进程以不兼容的方式持有了这个锁,对应实例的LCK进程会通知持有者进程释放对应的锁,然后再返回),每个实例默认情况下只包含一个LCK进程。 GRD:在shared pool与buffer cache中保存和组织内存融合相关的所有资源的一种方式,每个数据库实例中都包含GRD的信息

Oracle RAC 实例管理(Cluster Group Service)

匿名 (未验证) 提交于 2019-12-03 00:40:02
CGS是Oracle RAC 实例管理的实现方法,负责实现如下功能 1)实例之间的心跳机制 2)当实例离开或者加入集群时完成数据库集群的重新配置 3)解决数据库层面出现的脑裂 1,网络心跳 数据库层面的网络心跳是通过LMON进程实现的,每个实例的LMON进程会定期通过数据库的私网与所有远程实例进行通信,以确认其他实例的状态,如果,某一个实例一段时间之内不能够响应其他节点发送的网络心跳信息,那么数据库集群就需要进行重新配置,用户能够看到的最直观的信息就是ora-29740错误。 2,磁盘心跳 数据库层面的磁盘心跳和GI层面的磁盘心跳实现的功能基本相同,但是,由于数据库层面并没有VF存在,所以,实现方式会有所不同,对应RAC数据库,LMON进程会将网络心跳中包含的远程节点的状态信息发送给CKPT进程,CKPT进程默认每3s向数据库的控制文件写入本地实例能够访问的其他实例信息,从而完成数据库实例的磁盘心跳。如果数据库实例的磁盘心跳出现了问题,用户能够看到的最直观的信息就是ora-494错误。 3,本地心跳 LMHB进程会定期监控LMON,LMS,LMD,LCK0等于cache fusion相关的重要后台进程,如果LMHB进程发送某一个重要的后台进程在一段时间之内没有更新自己的状态信息,就会进行分析,如果有必要通过重启本地节点的方式来解决问题 重新配置的阶段 阶段1

jdbc连接oracle rac数据库的写法

匿名 (未验证) 提交于 2019-12-03 00:38:01
jdbc连接oracle rac数据库的写法: 1、方法之一 datasource.jdbcUrl=jdbc:oracle:thin:@//192.168.1.43:1521/orcl 注意是=号后面的内容。其中orcl是rac 数据库的service_name, 192.168.1.43是rac 的scan-ip地址。如果scan-ip的别名好用,就用别名。 此时要注意你的数据库账号/密码是可用的(别被锁了不知道)。 2、方法之二 datasource.jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.43)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl))) 注意@后面的是参考tnsnames.ora的写法 3、方法之三 datasource.jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.43)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=off))(CONNECT_DATA= (SERVICE_NAME

11G RAC 节点删除与添加

匿名 (未验证) 提交于 2019-12-02 23:43:01
RAC删除节点并添加节点 oracle用户更新Inventory O R A C L E H O M E / o u i / b i n / r u n I n s t a l l e r u p d a t e N o d e l i s t O R A C L E H O M E = ORACLE_HOME/oui/bin/runInstaller -updateNodelist ORACLE_HOME= O R A C L E H O M E / o u i / b i n / r u n I n s t a l l e r u p d a t e N o d e l i s t O R A C L E H O M E = ORACLE_HOME “CLUSTER_NODES=zycdbtst3” -local 删除db软件 $ORACLE_HOME/deinstall/deinstall -local 再在其他主机oracle 用户更新Inventory O R A C L E H O M E / o u i / b i n / r u n I n s t a l l e r u p d a t e N o d e l i s t O R A C L E H O M E = ORACLE_HOME/oui/bin/runInstaller -updateNodelist

All nodes in Oracle RAC cluster reboot when SAN controller fails on Red Hat Enterprise Linux 5.10

匿名 (未验证) 提交于 2019-12-02 21:59:42
Environment kernel-2.6.18-371.6.1.el5 Oracle RAC 10G environment with two or more nodes Oracle RAC's voting disk timeout is 200 seconds Device-mapper-multipath SAN environment suffering controller failure (for example, director board failure) Similar symptoms may be seen if a failure on the fabric occurs and RSCN's are not sent to alert targets of the change. Raw devices used for some Oracle devices Issue A SAN event resulted in all eight nodes in a RHEL 5.10 Oracle 10g cluster rebooting simultaneously. The director board failure caused one of two paths per LUN to fail. The kernel logs from

实战Oracle 11g RAC到单实例DataGuard环境搭建

隐身守侯 提交于 2019-12-02 08:49:27
Oracle RAC集群是双机热备架构,可以实现主机层面的高可用自动切换,但其缺点就是只有一份共享存储文件,所以为了保证数据的安全性,在RAC的前提下增加dataguard主备数据冗余很有必要,下面方案是对源端是RAC集群架构,并且处于上线的生产库,不能停机的情况下如何配置RAC到单机的DG热备。 1 环境说明 源端Primary Database 是一个两节点的RAC,存储采用ASM 方式,具体如下图: DG目标端配置规划: 2 主库设置为 force logging 模式(若已是归档模式,请忽略设置) rac 节点1 执行 SQL > alter database force logging ; Database altered . SQL > select force_logging from v$ database ; FOR --- YES 3 修改主库为归档模式 SQL > archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 30 Current log sequence 31 切换归档,将所有节点都必须处于 mount

第1章Oracle RAC介绍----RAC结构和进程概览

佐手、 提交于 2019-12-02 04:31:40
至少,Oracle RAC要求Oracle Clusterware软件环境提供一个集群中所有结点对同一份存储和同一套数据文件的并发访问,能实现集群中跨结点进程间通信,实现多个数据库实例处理数据如同数据在本地,并提供一种机制监控集群中结点的状态和联络。以下部分更详细地描述了这些概念: 理解有集群意识的存储解决方案 使用服务和VIP地址连接到Oracle数据库概览 关于Oracle RAC软件组件 关于Oracle RAC后台进程 理解有集群意识的存储解决方案 一个Oracle RAC数据库是一个共享一切的数据库。Oracle RAC环境中的所有数据文件、控制文件、SPFILEs和重做日志文件必须存在于有集群意识的共享磁盘中,以便所有的集群数据库实例能访问这些存储。因为Oracle RAC数据库使用一种共享一切的结构,因此Oracle RAC要求有集群意识的存储保存所有数据库文件。 在Oracle RAC中,Oracle数据库软件管理磁盘访问并经认证在多种存储结构中使用。由用户选择如何配置存储,但是用户要使用一种受支持的有集群意识的存储解决方案。Oracle数据库为Oracle RAC提供以下文件存储选择: Oracle ASM,Oracle公司推荐使用此解决方案来管理用户存储 一种经过认证的集群文件系统,包括OCFS2和OCFS 经认证的NFS文件服务器

ReactiveCocoa入门教程——第一部分

血红的双手。 提交于 2019-12-01 16:57:53
作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如action、delegate、KVO、callback等。 ReactiveCocoa 为事件定义了一个标准接口,从而可以使用一些基本工具来更容易的连接、过滤和组合。 如果你对上面说的还比较疑惑,那还是继续往下看吧。 ReactiveCocoa结合了几种编程风格: 函数式编程( Functional Programming ):使用高阶函数,例如函数用其他函数作为参数。 响应式编程( Reactive Programming ):关注于数据流和变化传播。 所以,你可能听说过ReactiveCocoa被描述为函数响应式编程(FRP)框架。 这就是这篇教程要讲的内容。编程范式是个不错的主题,但是本篇教程的其余部分将会通过一个例子来实践。 Reactive Playground 通过这篇教程,一个简单的范例应用 Reactive Playground ,你将会了解到响应式编程。下载 初始工程 ,然后编译运行一下确保你已经把一切都设置正确了。 Reactive Playground是一个非常简单的应用,它为用户展示了一个登录页。在用户名框输入user,在密码框输入password