转://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)三级容灾机制,同机房最大保护机制(网络环境好),同城最大可用机制(传输距离适中),异地最大性能机制(网络环境差)。

 

 

 

 

 

233154319.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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云基础架构的演进模型

 

 

233242781.jpg

 

 

 

 

 

 

 

 

 

 

Oracle有自己丰富的云基础架构平台

PAAS:面向服务的

IAAS:面向基础架构的

VAAS:面向虚拟化的

云基础架构可以说是Oracle高可用产品的综合展示舞台,在云平台中Oracle整合了自己的高可用产品。例如现在云服务器一体机Exadata就有RAC版DG版自己还有强大的SSD冗余技术,还有实现高性能的timesten内存数据库集群。我觉的Oracle云基础架构很好的把这些高可用产品整合到了一起。

posted @ 2017-12-07 16:55  zfox  阅读(812)  评论(0编辑  收藏  举报