众所周知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云基础架构很好的把这些高可用产品整合到了一起。

转://Oracle 高可用技术与云基础架构的更多相关文章

  1. 快速搭建高可用 LNMP Web应用基础架构

    云服务器费用:查看费用 产品详情                 产品介绍 本镜像是根据Azure Resource Manager模板创建的,基于资源组下的高可用web系统,主要包括前端web负载均 ...

  2. (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨

    原文:http://www.talkwithtrend.com/Article/178339 数据库建设过程中,高可用是每一个企业数据中心数据库建设过程中至关重要的一个关注点,直接关系到业务连续性和稳 ...

  3. 分享MYSQL中的各种高可用技术(源自姜承尧大牛)

    分享MYSQL中的各种高可用技术(源自姜承尧大牛) 图片和资料来源于MYSQL大牛姜承尧老师(MYSQL技术内幕作者) 姜承尧: 网易杭州研究院 技术经理 主导INNOSQL的开发 mysql高可用各 ...

  4. 分享MYSQL中的各种高可用技术

    分享MYSQL中的各种高可用技术 图片和资料来源于姜承尧老师(MYSQL技术内幕作者) mysql高可用各个技术的比较 数据库的可靠指的是数据可靠 数据库可用指的是数据库服务可用 可靠的是数据:例如工 ...

  5. Oracle 高可用作业测试

    1.RAC 是一种: A 分布式数据库B 内存共享多节点数据库C 能够保护数据安全的架构 2.RAC 和CRS 的区别是: A 前者表示一种架构,后者是一套软件B 前者表示一套软件,后者是一种架构 C ...

  6. Redis高可用技术解决方案总结

    一.常见使用方式 Redis的几种常见使用方式包括: Redis单副本: Redis多副本(主从): Redis Sentinel(哨兵): Redis Cluster: Redis自研. 二.各种使 ...

  7. 安装ORACLE高可用RAC集群11g执行root脚本的输出信息

    安装ORACLE高可用RAC集群11g执行root脚本的输出信息 作者:Eric 微信:loveoracle11g [root@node1 ~]# /u01/app/oraInventory/orai ...

  8. 安装ORACLE高可用RAC集群11g校验集群安装的可行性输出信息

    安装ORACLE高可用RAC集群11g校验集群安装的可行性输出信息 作者:Eric 微信:loveoracle11g [grid@node1 grid]$ ./runcluvfy.sh stage - ...

  9. [转]Redis学习---Redis高可用技术解决方案总结

    [原文]https://www.toutiao.com/i6591646189714670093/ 本文主要针对Redis常见的几种使用方式及其优缺点展开分析. 一.常见使用方式 Redis的几种常见 ...

随机推荐

  1. Http协议请求头、响应头、响应码

    Http部分请求头 Accept 客户机通过这个头,告诉服务器,它支持哪些数据类型 Accept-Charset 客户机通过这个头,告诉服务器,它支持的编码 Accept-Encoding 客户机通过 ...

  2. idea项目git版本回退

    idea项目git版本回退 一.查询提交历史 项目上右键,点击Git,点击Show History 二.复制版本号 我这里有两个测试的版本,我的当前版本是[二],所以我选择[一],右键,选择Copy ...

  3. Async/Await是这样简化JavaScript代码的

    译者按: 在Async/Await替代Promise的6个理由中,我们比较了两种不同的异步编程方法:Async/Await和Promise,这篇博客将通过示例代码介绍Async/Await是如何简化J ...

  4. Codeforces389D(SummerTrainingDay01-J)

    D. Fox and Minimal path time limit per test:1 second memory limit per test:256 megabytes input:stand ...

  5. 协程与Epoll的配合

    想快速了解协程与网络调用的原来么,那么请赶紧关闭本页,因为下面都是在扯淡. 这几天是端午假期,第一天大算照着网上一大堆基于ucontext来写协程的文章自己也写一个简单的协程实现.于是第一天我就开始动 ...

  6. 洛谷P3245 [HNOI2016]大数(莫队)

    题意 题目链接 Sol 莫队板子题.. 维护出每个位置开始的字符串\(mod P\)的结果,记为\(S_i\) 两个位置\(l, r\)满足条件当且仅当\(S_l - S_r = 0\),也就是\(S ...

  7. python with open as f写中文乱码

    python3和python2的写法不一样具体如下: python3: with open(r'd:\ssss.txt','w',encoding='utf-8') as f: f.write(u'中 ...

  8. MySQL 基本语句(2)

    1.创建数据库 :create database 名称 [charset 字符集 collate 校对规则] ;  如: drop database if exists `mydb` ; # 若存在就 ...

  9. LeetCode题解之 Assign Cookies

    1.题目描述 2.问题分析 使用贪心算法. 3 代码 class Solution { public: int findContentChildren(vector<int>& g ...

  10. Linux中对swap分区的配置

    swap分区的安装与正常分区的安装大致相同,我这里就只说一下不同 大家可先看我上一篇的安装:https://www.cnblogs.com/feiquan/p/9219447.html 1.查看swa ...