分布式数据库设计方案_第1页
分布式数据库设计方案_第2页
分布式数据库设计方案_第3页
分布式数据库设计方案_第4页
分布式数据库设计方案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 大型分布式数据库解决方案企业数据库的数据量很大时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响最终用户的体验;当数据量很大的时候,对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响数据库的可用性和易管理性。分区表技术让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理能力,达到优化查询性能的目的。但是分区表只能把数据分散到同一机器的不同磁盘中,也就是还是依赖于一个机器的硬件资源,不能从根本上解决问题。分布式分区视图分布式分区视图允许用户将大型表中的数据分散到不同机器的数据库上,用户不需要知道直接访问哪个基础表而是通过视图访问数据,在开发上有一定的透明性。但是并没有简化分区数据集的管理、设计。用户使用分区视图时,必须单独创建、管理每个基础表(在其中定义视图的表),而且必须单独为每个表管理数据完整性约束,管理工作变得非常复杂。而且还有一些限制,比如不能使用自增列,不能有大数据对象。对于全局查询并不是并行计算,有时还不如不分区的响应快。库表散列在开发基于库表散列的数据库架构,经过数次数据库升级,最终采用按照用户进行的库表散列,但是这些都是基于自己业务逻辑进行的,没有一个通用的实现。客户在实际应用中要投入很大的研发成本,面临很大的风险。面对海量数据库在高并发的应用环境下,仅仅靠提升服务器的硬件配置是不能从根本上解决问题的,分布式网格集群通过数据分区把数据拆分成更小的部分,分配到不同的服务器中。查询可以由多个服务器上的CPU、I/O来共同负载,通过各节点并行处理数据来提高性能;写入时,可以在多个分区数据库中并行写入,显著提升数据库的写入速度。价值所在 通过分区把数据放到不同的机器中,每次查询可以由多个机器上的CPU,I/O来共同负载,通过各节点并行处理数据来提高性能。 冗余的数据结构(矩阵列)消除了单点故障,任何一个机器出现故障后都不会影响系统的正常运行,数据库集群能提供不中断的服务。 无共享磁盘架构节省了硬件,利用中小型的服务器取代大型服务器大幅降低了硬件的成本,系统中不再有闲置的资源,降低了系统TCO(总体拥有成本)。 分区把数据分成更小的部分,提高了数据库的可用性和可管理性。 根据业务的需要,访问层和数据层都可以增加,集群具有良好的扩展性。 中间件宿主在数据库中的创新使集群变得更透明,数据库的管理成本,以及面向数据库的开发成本都最小化。2. 数据实时复制解决方案经过分析,大多数应用系统以查询操作为主,造成数据库压力迅速增加的主要因素也是复杂的查询操作,为了能够得到同一份数据的多个副本来响应用户的查询,SQL Server 提供了复制技术(Replication),主要有合并复制、事务复制、快照复制等,这些技术可以有效缓解查询的压力。伴随着企业发展的需要,企业对信息实时性要求越来越高,如股票、航空票务、连锁店甚至是一些服务系统等等,这些系统的用户希望更新的数据马上就可以查询到。 SQL Server数据库的复制/订阅技术复制/订阅数技术可以实现读、写分离,数据先写到中心数据库上,写成功即返回给应用程序;通过复制将数据复制到只读服务器,查询时从只读服务器查。意味着订阅端的数据和中心数据库的数据不同步,是个异步的过程,所以数据滞后严重,数据同步的实时性得不到保障,中心数据库在正常的压力下10秒左右。当访问负荷很高或者中心数据库在整理数据时,将出现大量DML操作延迟时间比较长或者出现堵塞的情况;某些修改操作需要重新建立复制关系并初始化,这期间需要停止数据库的读取服务,规模越大的应用停止的时间越长,严重影响了数据库的可用性。结论:复制订阅技术的实时性差,初始化时对系统的影响非常大;在数据复制过程中没有采用智能的策略,数据的复制速度慢;中心数据库仍然为失败转移集群模式。构建数据库集群,节点间数据同步都是实时的,数据是一致性的,可以部署为读、写分离,也可以部署为所有节点可读可写;中间件监测到数据库变化并同步数据,数据同步完成后客户端才会得到响应,同步过程是并发完成的,所以同步到多个数据库和同步到一个数据库的时间基本相等;另外同步的过程是在事务的环境下完成的,保证了多份数据在任何时刻数据的一致性。中间件在同步数据时采用了多项智能同步策略,满足了不同类型的应用模式,可以同步数据,同步SQL语句,并行执行SQL语句,升级数据库的锁,启用数据压缩等。同步过程是在SQL Server的执行环境中进行的,整个操作是在事务的环境下完成的,解决了数据实时性问题,满足了用户对数据实时性的要求。中间件在同步数据时采取了智能同步策略,同步速度更快;提供了多种人工干预的机制,对数据库表结构的调整、批量更改数据等操的时间大幅缩减。无需搭建失败转移集群,中心数据库Cluster中闲置的一台机器被利用起来,提高了整个系统的使用率;系统支持无共享磁盘架构,可以节省共享的存储设备。连接数据库,提供专门针对数据库系统的负载均衡软件,无需使用昂贵的均衡硬件,无需程序员自己实现。提供故障检测及失败转移功能。3. 数据库选择在SQL中使用Oracle链接服务器,因为是异地数据,在SQL中的更新,删除等是隐式事务,而在Oracle中是显示的,所以直接调用速度是很慢的.并且很容易崩掉。4. 数据查询1秒钟时间,在几千亿条话单数据中找到用户想要的数据,在分区、并行查询、列存、集群等技术统统粉墨登场仍无法满足响应要求时,数据压缩和索引技术成为了致胜的关键。无论是使用传统的B树索引,或通用的压缩算法,都不是问题的正解,在如此大的数据量下,需要使用更加专业高效的技术方法。基于特定条件(产品型号、产品名称、起止时间等)组合的详单查询,绝大多数查询只会返回少量的结果l 压缩总体结构压缩的主要目的不是减少空间占用,而是提高查询性能CPU平均处理带宽3.6GB/秒(7000万行/秒/核),I/O平均处理带宽300MB/秒,通过压缩提升I/O带宽,实现CPU与I/O处理均衡,提高查询性能列内规则使用通用压缩算法LZMA:CPU处理带宽太低压缩比18.9:1,解码速度171MB/秒/核(折算后)CPU处理带宽991MB/秒,I/O处理带宽5.7GB/秒LZOP:压缩率太低压缩比7.2:1,解码速度891Mb/秒/核(折算后)CPU处理带宽2.4GB/秒,I/O处理带宽2.2GB/秒列内规则对压缩的要求压缩率不低于15:1CPU处理带宽不低于5GB/秒索引查询高选择率的特点适合选择索引传统索引空间占用大维护成本高,对装载速度影响大对索引的要求占用空间对压缩率贡献可忽略不计维护开销对装载速度无明显影响选择率接近于数据的实际选择率,远快于表扫描列内规则传统索引的不足维护成本高对数据装载速度影响极大先建模式下:索引需要同步维护,随机插入影响性能,插入过程中无法引入压缩后建模式下:需要大规模的排序,创建成本高空间占用大以B树为例, 二元组,按照键值顺序排列,按列压缩ROWID随机性强,难以被压缩,整体空间成本 6字节/分片索引技术要点:将表按照一定行数据分成多个数据包为每个压缩包建立其中各列的摘要信息(如最大值、最小值),所有数据包上的属于特定列的全部摘要信息,构成该列的分片索引利用摘要信息,来判定对应的数据包中是否包含满足特定的查询条件的行,如确定不存在这样的行,则整个数据包无须被解压主要优点:索引在每个数据包生成之后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论