Oracle 关系型分布式内存数据库

Oracle 关系型分布式内存数据库

作者:杨常水 2018-06-07 08:31:33

存储

存储软件

分布式 Oracle的内存TimesTen内存数据库为有高并发,低延时和高可用要求的关键业务系统提供了一个接近完美的解决方案:把数据放进内存,使用SQL简化开发,应用开发者可以更加专注在业务实现上而不用关心底层的内存分配。

 内存计算那点事

迄今为止,内存还是我们目前能用到的最快的存储设备,把数据尽可能放进内存成为各种应用提高数据访问性能的最有效途径。对于很多关键业务系统而言,内存又是一种“挥发性”的和大小非常有限的存储设备,如何在保证性能的同时使数据能持久化,如何把有限的内存投入到***的待处理数据上是程序设计的一个重大课题。

Oracle的内存TimesTen内存数据库为有高并发,低延时和高可用要求的关键业务系统提供了一个接近***的解决方案:把数据放进内存,使用SQL简化开发,应用开发者可以更加专注在业务实现上而不用关心底层的内存分配。TimesTen在大并发的环境中还能提供媲美Oracle数据库的数据完整性,一致性和可恢复性,内存的“挥发性”缺点也被克服,维护工作也极大地简化了。因此Oracle TimesTen被广泛地应用于电信,金融等行业已经有20多年的历史。

[[232005]]

基于内存计算的另外一个问题始终困扰着业内人士——内存有限而数据相对***:单一服务器的内存远远不足以存储需要处理的数据,频繁的内存交换消耗太多资源,用户不得不使用手工分库的方式把数据分散到多个服务器上来处理,这又带来了管理、开发复杂,扩展性差等诸多问题。

随着技术的发展,分布式内存网格技术也开始被用于加速数据访存的速度,比如Redis,Oracle Coherence等。分布式内存网格技术采用key-value的内存数据存储方式可以方便把磁盘型数据库的数据分布到集群系统的各个节点上缓存,为简单的数据查询和事务提供了很高的性能。但这类技术的问题是:数据的强一致性,数据持久化,复杂报表和统计,大并发事务处理等。

分布式的关系型内存数据库——理想的内存数据库

对于一个高并发,实时响应需求的关键业务系统而言,一个分布式的关系型数据库是最理想的选择:它既具有关系型数据ACID的特性,可以处理高并发的用户请求,可以实时响应业务的数据访问请求,拥有完善的备份恢复和容灾机制,同时和NoSQL的内存网格技术一样,可以把需要处理的数据分散到一个集群上的所有节点上,可以根据需要扩展集群中的数据处理节点。今年5月初,Oracle分布式内存数据库——这个理想中的,综合了内存计算,分布式处理,关系型数据库的分布式内存数据库终于正式推向市场。

TimesTen 18.1 Scaleout的特点

Oracle的分布式内存数据库使用了已经20多年历史的TimesTen的内核来构建,正式发行版为被称为TimesTen 18.1 Scaleout,版本号的含义为2018年的***个主要发行版。

首先TimesTen 18.1 Scaleout是一个严格意义上的关系型数据库;它拥有和Oracle 数据库一样的ACID特性,比如:事务的原子性和持久性,事务的提交和回滚,基于版本的并发控制,读写操作互不阻塞等等。

其次,作为一个分布式的内存数据库它是一个逻辑上单一,物理上分散的分布式内存数据库,TimesTen 18.1 Scaleout中的数据分散存储到数据库集群的各个节点中,应用从任何一点接入数据库都可以访问到全部数据,应用不需要知道数据存放的位置。这一点也不同于市场上的分片式数据库,这样的设计极大地简化了应用开发和数据库管理的难度。

TimesTen Scaleout的几个基本概念

一组内部互联的运行Oracle TimesTen Scaleout的服务器我们称为一个Grid,运行中TimesTen Scaleout代码称为实例,TimesTen Scaleout的实例又分为数据实例和管理实例,数据实例的的概念和Oracle数据库的实例是非常类似的,它包括数据缓存和后台进程。

每个TimesTen Scaleout数据实例包含一个我们称之为Element的数据持久化最小的单位,Element拥有整个数据库中一部分数据和这个数据库中完整用户信息和 schema信息;每个element有自己的持久化检查点文件和事务日志文件, Element可以使用副本来实现高可用性和容灾。

在一个集群中,一般配置有1到2个管理实例来跟踪监控整个集群的运行状态。

数据分布的方式

那么如何把所有数据分配到每一个Element中呢?通常来说有以下方法:

  • DISTRIBUTE

基于一致性哈希算法分布,通常用于大数据库表,比如:基于Cust_ID 的哈希值,比如我们把CUSTOMER表中各行分布到所有elements 当中可以使用如下语句:

  1. CREATETABLE CUSTOMER ( 
  2.      ID NUMBER NOT NULL PRIMARY KEY, 
  3.      NAME VARCHAR2(100), 
  4.   … 
  5.  ) DISTRIBUTE BY HASH; 

  • REFERENCE

子表与父表相关联的行共存于相同element,优化本地事务将 ORDERS 表中与CUSTOMER相关联的行存放于相同element当中。

  • DUPLICATE

查询为主的小表在每个element存放完整数据,优化本地事务。如将 PRODUCT 表在所有 elements 当中都存一份全量数据,这种情况适用于比较小的,同时变更不是很频繁的表

高可用的实现

前面提到了TimesTen 18.1 Scaleout是通过Element的多副本方式实现高可用性的,这种机制称为K-Safety(K>1),见下图:

一个完整的数据集称为Data Space, 它包含这个数据库所有的Elements,上图的Dataspace Group1 包含的Element 1和Element 3 构成了一个完整的数据库。拥有相同的Element的集合被称为Replica Set,它们互为对方的拷贝,比如上图的 Replica Set1包含的Element 1和Element 2,它们位于不同的机器上从而实现数据的高可用性。

互为拷贝的Element是双活的,也就是说应用可以在其中任意一个Element上发起读写的事务操作而不相互影响,数据库系统负责这两个Element的数据同步。

在这种架构下,即使多个Element发生异常,只要有一套完整可用的副本对应用就不会有影响。如果整个replica set 发生异常,应用也可以选择接受只返回剩余数据的结果集。

集中化安装与管理

TimesTen 18.1 Scaleout的管理操作都均可通过一个主机用图形界面或者命令行的方式通过一个接入点完成集群地所有操作,包括:

  • 软件安装
  • 补丁应用
  • 配置管理
  • 数据库创建与管理
  • 数据库监控
  • 备份与恢复
  • 日志搜集

Oracle的几种内存缓存技术的比较

随着TimesTen 18.1 Scaleout的推出,Oracle进一步完善了实时内存数据处理的拼图,传统的面向OLTP的TimesTen也升级了到了18.1,这个版本称为TimesTen 18.1 Classic。让我们看一下他们之间使用场景有什么不同:

 1.TimesTen18.1 Classic

使用场景: 用于实时,准实时的OLTP系统加速。如果TimesTen18.1 Classic的机器内存足够存放需要处理的数据,TimesTen 18.1 Classic可以提供更高的数据处理实时性。

部署:可以单独运行或者作为Oracle数据库的缓冲,使用CacheGroup 或者其它方式和Oracle数据库同步数据。

2.TimesTen 18.1 Scaleout

使用场景:分布式、容错、弹性伸缩的关系型内存数据库 ,用于高并发,低延时的OLTP 为主的关键业务系统;单机内存无法存放需要实时处理处理的全部数据,不得不手工分库的场景。

部署:使用服务器集群部署。

 3.Oracle Database In-Memory Option

使用场景:Oracle12.1.02数据库引入的数据列式内存技术,主要用于加速数据分析和报表的速度。

部署:用户可以把数据库中需要做分析和报表的数据库表加上列式内存存储的选项,数据会在数据库启动或者***次查询这个表的时候把数据以列式或者列式压缩的方式缓存到Oracle数据库的SGA区的In Memory Area中:优化器会自动优化SQL的访问路径,让需要访问列式内存数据的SQL从In Memory Area中获取数据。

 4.Oracle Coherence

使用场景:Oracle Coherence是分布式内存网格技术,一般用于中间层数据访问加速。

部署:数据以Key Value的方式存放在内存中,使用RESTAPI访问。

总结

在大数据和云时代,实时数据处理有多种方式,Oracle 提供了多种内存技术的产品和技术加速数据访问和处理的速度,这次TimesTen 18.1 Scaleout的推出进一步完善了Oracle 内存计算产品家族,它继承了久经考验的TimesTen内存数据库的内核,又吸收了No SQL数据库的一些设计理念,必将在很多对实时数据处理有很高要求的关键业务系统上得到应用。 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/282356.html<

(0)
管理的头像管理
上一篇2025-05-13 10:30
下一篇 2025-05-13 10:32

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注