转://Oracle 高可用技术与云基础架构
众所周知Oracle云基础架构已经在越来越多的行业里应用。大家了解云基础架构是如何演进的嘛?可能有人会说Oracle高可用技术是组成云架构的基础,那它们的关系是怎么样的?大家又了解Oracle高可用技术有哪些,每种技术又有何相同点与不同点,它们各自的应用场景是哪些?为什么有些地方可以用,有些地方不可以用?good~今天我就来和大家一起分享这些问题的答案,让大家有一个系统化的理解和思路,同时在选择Oracle高可用技术时不在迷茫,不在困惑。这是成为“一名数据架构师”的必经之路。
一列出你知道的Oracle高可用技术,并说明它们在高可用方面的特点。
我们分为单实例数据库高可用技术和集群数据库高可用技术,我想这样总结起来会使读者思路更清晰,层次更分明
单实例数据库高可用技术
1.FlashBack 闪回技术
我认为这个技术在单实例数据库中可以算做一种高可用,因为它恢复数据的时间非常短,代价也非常小,并且不怎么会影响系统性能。这是跟RMAN方式恢复相比。
闪回方式灵活
(1)闪回查询
(2)闪回表
(3)闪回版本
(4)闪回事务
(5)闪回归档
(6)闪回数据库
2.ASM 自动存储管理
ASM组件可以自动帮你管理运维存储空间,如果你的存储设备是一台磁阵的话
ASM可以自动进行数据条带化,打散数据防止热点
ASM自动进行数据的冗余,防止数据丢失
ASM自动在线扩容存储空间和缩小存储空间
ASM可以调整存储单元AU,达到最佳IO状态
ASM可以同时支持多个数据库平台
3.Oracle Restart组件
Oracle Restart是单实例数据库的福音,在没有Oracle Restart之前数据库进程终止之后必须手动重启来恢复。在安装Oracle Restart组件之后可以实时监控数据库各种服务进程,包括但不限于数据库实例、监听、ASM实例、ASM磁盘组、自建service、DB自动启动脚本。当这些服务进程发生意外终止时可以自动重启恢复。在安装完Oracle Restart组件之后就可以很方便的使用srvctl命令来管理这些资源了。
(1)在安装数据库之后需要配置随操作系统启动而启动的dbstart与dbstop脚本现在也由Oracle Restart来代替了
(2) Oracle Restart组件是集成在Oracle Grid Infrastructure网格基础结构软件中,如果没有ASM环境,在安装时“仅安装网格基础结构软件”即可跳过ASM配置步骤。
(3) 安装Oracle Grid Infrastructure之后再安装数据库和监听服务,这两个服务会自动添加到Oracle Restart配置中,如果先安装数据库和监听后安装Oracle Grid Infrastructure,那么需要手工添加这两个服务。
集群数据库高可用技术
1.RAC:基于实例级的高可用产品
RAC可以有效防止实例级的单点故障,例如4个节点的数据库集群,无论哪个节点出现问题都不会影响系统正常使用。RAC有效冗余级别是N-1个节点,也就是说最少有一个节点存活系统就不会瘫痪。
2.DG:基于存储级别的高可用产品
DG可以有效防止存储级的单点故障,DG提供了三种级别的保护模式(保护最大化、可用最大化、性能最大化)分别对应不同需求的系统要求。DG机制有两种logical standby 和physical standby,建议使用physicalstandby保护的更严谨。在要求较高的系统环境中可以实现实时数据复制。
3.GG:基于异构平台的高级复制产品
(1)GG可以自由的在不同平台不同数据库之间同步数据,GG是oracle收购过来的高级复制产品它比oracle自己的复制产品性能更好。
(2)GG拥有自己独立的服务进程,不会影响数据库的运行状态,也就是说它们两个在物理上是独立分开的,各做各的事
(3)直接扫描redo_log_buffer,不用分析文件,支持实时性,秒一级延迟
(4)以事务为单位复制维护事务的一致性,保证数据引用完整性
(5)GG按照提交的顺序作为数据在目标库应用的顺序,未提交的数据不加入传输队列
(6)GG只收集提交过的redo数据因此占用内存少
(7)GG支持DDL语句复制
4.Streams:基于同构平台的流复制产品
(1)Oracle流复制产品我想在实际生产中使用的不多,因为大多数都被OGG代替了,但我想说Sreams技术是一个非常实用的技术,在同构平台集群之间可以实现跨版本数据容灾和数据共享。免费是其最大优点
(2)Oracle流复制是oracle自从9iR2开始提供的一种信息流复制技术,经过10GR1、10GR2、11GR1、11GR2几个版本的完善,逐渐走向成熟
(3)Streams思想来源于Oracle高级队列,是其应用的延伸,它还可以传递消息队列
(4)Streams随Oracle数据库安装而安装,不需要单独安装
(5)Streams服务是Oracle后台进程之一,拥有自己的Streams Pool,当使用Streams功能时需要分配内存空间给StreamsPool,Streams Pool大小需要根据业务量实时监控并调整,Streams收集所有redo数据因此占用内存多
(6)Streams支持DDL语句复制
5.Advanced Replication:高级复制产品
(1)高级复制是Oracle最早的容灾方案,诞生于8i,但11g官方文档现还在支持
(2)高级复制原理分为基于多主节点的复制(使用内部触发器)和基于物化视图两种,前两种的混合架构复制
(3)高级复制不支持DDL语句复制
(4)高级复制基于分布式事务,当事务一开始复制就开始了,当事务出现问题复制也会出现问题,当事务回滚复制也会回滚。由于与事务关系紧密,可能会出现阻塞、争用、锁定现象,对用户操作影响较大。
(5)高级复制自动处理事务的依赖关系,自动解决数据的约束关系,自动维护分布式事务的一致性,比GG、Streams对事务的控制力更强,对用户操作参与更多,我们应该尽量把用户操作和数据复制分离开来,不要混淆在一起,提高系统的稳定性、健壮性。
二你认为什么场景下应该使用RAC?给出你的理由。
(1)业务非常依赖数据库,防止单实例崩溃,应该使用RAC,这是刚性需求
(2)预算足够的前提下,可以选择RAC,以防万一
(3)RAC的节点数尽可能的少,一般是两个节点,节点数越多实例之间传递的数据量越大,性能反而下降越快
(4)资源动态分配,每个节点根据自己的资源使用情况可以分配不同的并行度
(5)业务分割,一个节点加载另一个节点查询,双方互不影响,减少之间的信息传递影响,提高性能
(6)如果RAC因为cache fusion机制导致系统性能巨差,可以不使用
三如果你是项目经理,你认为在什么业务场景下,应该分别考虑使用DG,OGG,Streams,Advanced_Replication这些高可用技术?
1.DG使用场景
(1)强调数据的绝对一致性场景下使用,例如块-块级复制拷贝,数据库的任何变化都原封不动的拷贝到备库,备库就是主库的一个影子。而且还支持统计信息的自动拷贝,不仅拷贝表本身内容还会拷贝表分析完的统计信息,也就是说记录和数据字典是完全级的复制。即主库与备库在结构上和内容上一模一样。
(2)负载分担,11G中已经实现了Active DG,备库允许在read only状态下open对外提供查询服务,从而减轻主库负担,提高系统整体性能。
(3)三级容灾机制,同机房最大保护机制(网络环境好),同城最大可用机制(传输距离适中),异地最大性能机制(网络环境差)。
2.OGG使用场景
(1)在两个异构节点间同步数据必须选择GG,高性能属于轻量级软件 88MB大小,可以实现Active-Active双业务中心架构
(2)只传递commit后的redo数据,这样就大大降低了数据的传输量,并且支持断点续传,不影响系统连续运行
(3)不占用SGA系统全局区资源,直接使用操作系统内存,不受Oracle资源调度影响,对数据库性能没有影响
(4)灵活的拓扑结构,一对一、一对多、多对一、多对多、双向复制
(5)支持数据过滤和转换,可自定义基于表和行的过滤规则,实时在异构环境下转换数据
(6)提供数据压缩和加密,降低传输带宽,提高传输安全性
(7)跨多版本数据库升级,均衡负载,容灾
(8) GG一般应用在银行、股票、订票、证劵,数据量大又实时性高的场景
(9)收费的
3.Streams使用场景
(1) Streams只支持同构平台,只能在Oracle集群中进行数据同步
(2)因为Streams会收集所有事务包括提交的与未提交的,按照SCN的顺序应用。未提交的事务也会传递到远端,比GG传递的数据量大很多网络压力也大很多。因此Streams适合应用在数据量较小,对时效要求不高的场景
例如 物流 彩票 小说网站,这种实时性不高的场景
(3)Streams没办法对数据流进行压缩和加密
(4)Streams是基于log miner日志挖掘的,因此效率会慢些
(5)Streams是数据库功能之一,所以是免费的
4.Advanced Replication使用场景
(1)需要稳定的网络环境,当网络因故障中断时会发生丢包现象
(2)适用于数据量小的场景,由于使用的是内部触发器原理,会消耗大量系统资源,当数据量很大的时候,会处理不过来
(3)高级复制支持Master to Master容灾方案,每个节点都是对等的,数据也是对等的,当其中一个Master不可用时,可以直接切换到其他Master
(4)高级复制支持负载均衡,用户可以分别连接到不同的Master节点查询数据
(5)可以实时推送,也可以定时推送
(6)高级复制功能是免费的
四你怎样理解Oracle高可用产品和云基础架构的关系?
Oracle云基础架构的演进模型
Oracle有自己丰富的云基础架构平台
PAAS:面向服务的
IAAS:面向基础架构的
VAAS:面向虚拟化的
云基础架构可以说是Oracle高可用产品的综合展示舞台,在云平台中Oracle整合了自己的高可用产品。例如现在云服务器一体机Exadata就有RAC版DG版自己还有强大的SSD冗余技术,还有实现高性能的timesten内存数据库集群。我觉的Oracle云基础架构很好的把这些高可用产品整合到了一起。