开发者社区> 华章计算机> 正文

《高并发Oracle数据库系统的架构与设计》一1.3 在Oracle的世界里

简介:
+关注继续查看

本节书摘来自华章出版社《高并发Oracle数据库系统的架构与设计》一书中的第1章,第1.3节,作者 侯松,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.3 在Oracle的世界里

如果你是一位Oracle数据库的使用者,那么我们说你将是立足在Oracle的世界里的。本书的主旨也是以此为出发点,立足Oracle的世界,以海纳百川的胸怀选择性吸收各种数据库的使用。
立足点的不同,同样会影响到我们视角不同,那么在Oracle的世界里的高并发数据库系统架构设计将会是怎么样的呢?这也将是本书需要给读者们介绍的。
相信在每一个Oracle数据库用户的眼中都有其独特的风景,对Oracle的理解可以是技术的,更可以是艺术的。在讨论中,我经常提及的一个观点:“将技术的东西当成一种艺术去做,那你将不再是简单的技术者,而是更富创造力的艺术家。”

1.3.1 数据库森林体系

在这里,我们也不妨东施效颦一回,模仿经济学里的“布林顿森林体系”,架构一个属于数据库领域的“数据库森林体系”。
数据库森林体系,是指以Oracle数据库为核心的多种数据库集群工作的生态体系。该体系的特点应该是:
应用系统核心内容和性能直接与Oracle数据库挂钩;
其他类别和功能的数据库与Oracle核心库挂钩;
其他类别和功能的数据库与Oracle数据库按业务需求实现数据同步与交互;
其他类别和功能的数据库作为Oracle核心库的扩展,分摊前端或外围业务支持。
图1-5所示为一套比较完备的数据库森林体系架构图。秉承以Oracle核心库为中心,从业务逻辑层面、数据库功能层面两个维度展开纵横方向的扩展。

image

Oracle核心库与Oracle子系统库、MySQL子系统库之间,使用GoldenGate实现即时的数据同步,MySQL子系统库是单向同步,它的角色更像是一只伸出去的手,处理前置业务。
Oracle核心库与灾备库之间通过Data Guard功能实现异步同步,起到灾难备份的作用,特殊情况下,也是可以临时打开使用的。
同样,在核心库与ADG库、T-1交易库之间也是通过Data Guard功能实现数据同步。ADG库可以看成是核心库即时的映像,服务于只读业务;T-1交易库则可视为过期的核心库映像,可以给时效要求不高的业务提供读写服务。如果必要的话,通过ADG库衍生出一些开源数据库的业务应用,就像伸出去的另一只手,处理前置业务。
对于前面提到的Oracle核心库的高并发热点争用问题,可以将这部分业务分离到前置的TimesTen内存数据库中,提高高并发会话的响应速度,其可通过TimesTen提供的方法和接口实现与Oracle核心库的即时数据同步。
当然,数据库森林体系也可以视为一种高并发热点争用问题的解决方法论,不要求全盘实现,可以选择性地搭建,满足了需求就是最佳的架构设计。
说到高并发处理能力的提升,就会不只一次地被问及Oracle数据库的RAC架构。我只能说RAC只是一种高可用的解决方案,对于高并发问题,它未必擅长。高并发热点问题,往往成了它的短板,RAC环境甚至会加剧问题的影响程度。举个例子来说,我们将会在高效索引设计章节提到的高并发会话导致主键索引分裂的等待事件——“enq:TX-index contention”,如果这个问题不先解决掉,从单节点到RAC的迁移后,问题将更加显著。
从历史来看,国人好像都很喜好RAC数据库架构,并无形中夸大了RAC数据库的作用,集高可用、高可靠、高并发、高性能的光环于一身。RAC一度风行的时候,技术人员如果不会RAC都不好意思说自己是Oracle数据库的DBA,公司如果没有RAC数据库都不好意思说自己的业务量大。这和前面提到的盲目夸大去IOE的现象是一样的,光环效应是要不得的。
然而,RAC确实也是一个不错的东西,如果在节点应用之间尽可能地实现了业务的独立,也就是说按节点完全区分业务应用,其处理并发的能力是有一定的优势的,但是是在解决了数据库结构分散的前提下。
为什么这么说呢?我们知道不论是RAC数据库还是单节点数据库,物理存在的数据库只有一套,如果数据库内部实现了业务逻辑上的必要隔离,各节点就能各行其道,反之,各节点的争用会更加剧烈。与其纠结在这个问题上,不如跳出来看问题,为什么不干脆将其按业务逻辑拆成多个库呢?必要的共享数据,可以通过即时同步来实现。
如图1-6所示,在左边RAC架构中,实例1对应业务1,有其独有的数据部分,实例2对应业务2,也有其独有的数据部分,两种业务有一定的关联性,所以还存在共享数据部分。演变成右边的架构,将其拆分成两个独立的单节点数据库,其中数据共享时效要求较低的进行数据库间即时同步,时效要求很高的冗余到各自业务数据库中。这样做虽然数据库的总容量大了,但是架构简单了,少了内存的即时同步,业务并发处理能力也提高了。回过头再来看一下我们的数据库森林体系,核心库、子系统库以及各种功能库,不就是数据库按业务逻辑拆分的结果吗?

image

近年来,大家也能更加理性地看待RAC数据库架构了,与其面对额外的采购成本和运维成本,不如干脆拆开来,用简单的架构来取而代之,这也正是大道至简的精神。
我们说高并发处理未必是RAC的强项,但高可用就一定是了。当一套数据库应用系统提出如下需求的时候,我们将毋庸置疑地给出RAC的解决方案:
业务7×24小时在线;
尽可能短的故障停机修复时间,10分钟以内、5分钟以内,甚至更短。

1.3.2 大道至简

在此我们不得不先提到一个概念,就是数据库架构师的“术”与“道”。业内很多数据库架构师往往是技术水平比较高的DBA的升级版,这是一个比较典型的以“术”为导向的结果,一切以技术说话,这往往造就了架构的局限性,甚至凡事唯技术论。好比很多项目在制定目标的时候,会把某项新技术的实现作为目标之一,造成驴唇不对马嘴的后果。一个成功的数据库架构师应该是以“道”为导向,那何为数据库架构师的“道”呢?在这里我先卖一个关子,将在本书的第9章中展开讨论。
我曾经在一次技术沙龙上跟几位朋友讨论过一个话题:如何看待数据库五花八门的新特性呢?当说起需求是高并发处理的数据库的时候,大家达成一种共识,就是架构需要设计得充分简单,简单了才能灵活地扩展,对于一些不熟悉或者没有实战经验的新特性,可以不用就不要用。
然而,设计简单的架构并不意味着架构简单的设计,越是简单的东西越是考验设计者的思想,需要对简单的东西充分细化。立足在Oracle的世界里,有哪些是至简而至要的东西呢?就是数据库森林体系中蕴藏的设计的大道。
数据库森林体系看似复杂的架构背后,至简的大道无外乎就是对表、索引、优化器设计的把握,以及以核心库为中心的功能数据库与前置数据库的纵横扩展。本书将分作两个部分,对这两项内容具体展开阐述,其目的不在于帮助读者解决某个具体的高并发问题,而是旨在分享一种方法论,开辟一种思路。或许你在阅读的时候能够得到一点启发,演化出更高明的观点,那么我写作本书的目的也就达到了,也正是我的大道。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Nebula 架构剖析系列(一)图数据库的存储设计
在讨论某个数据库时,存储 ( Storage ) 和计算 ( Query Engine ) 通常是讨论的热点,也是爱好者们了解某个数据库不可或缺的部分。每个数据库都有其独有的存储、计算方式,今天就和图图来学习下图数据库 Nebula Graph 的存储部分。
1614 0
数据系统架构——Lambda architecture
传统系统的问题 “我们正在从IT时代走向DT时代(数据时代)。IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和管理,DT则是激活生产力,让别人活得比你好”——阿里巴巴董事局主席马云。 数据量从M的级别到G的级别到现在T的级、P的级别。数据量的变化
8092 0
Linux AS4 系统下安装Oracle 10g完整篇
http://www.linuxidc.com/Linux/2008-02/11275.htm
614 0
Oracle中常用系统表
dba_开头..... dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces 数据库表空间信息 dba_data_files 数据文件设置信息 dba_temp_files 临时数据文件信息 d
1124 0
oracle使用自治事务记录系统日志
在我们对表记录执行DML操作时,一方面,我们需要把错误记录到数据库的日志表中,另一方面,由于错误我们需要回滚核心事务,此时我们可以在记录日志的存储过程中使用自治事务 1.
600 0
阿里云数据库专家田英鹤:云数据库系统容灾架构设计和实战
8月30-31日20:00-21:30,一场别开生面的技术大会—— “蚂蚁金服&阿里云在线金融技术峰会”将在线举办。本次将聚焦数据库、应用架构、移动开发、机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践。
4751 0
10057
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载