为您推荐:
精华内容
最热下载
问答
  • 本文从个人项目经历来说一点自己对ddbs的理解,包括催生ddbs的原因,ddbs的基本原理,其解决了哪些问题,还有哪些不足。欢迎大家讨论、斧正。业务规模较小时,使用单机mysql作存储。但伴随业务发展,存储容量和并发...

    本文从个人项目经历来说一点自己对ddbs的理解,包括催生ddbs的原因,ddbs的基本原理,其解决了哪些问题,还有哪些不足。欢迎大家讨论、斧正。

    业务规模较小时,使用单机mysql作存储。但伴随业务发展,存储容量和并发能力会有瓶颈。

    首先,假设单机的硬盘为1.8T,也可以挂更大容量硬盘,但仍有限。

    其次,单机的读写并发能力有限,假设峰值写入qps1000,峰值读取qps3000,网卡对读取时流量也有要求,单次访问的读取量不应过大。

    单机的链接数也有限。

    那么,当使用单机mysql的业务发展,受到以上瓶颈时,一般的思路会是什么呢?一台机器不行,用两台呢,再不行,扩展更多台。

    一台扩展为两台,磁盘容量扩大了,通过分表,将表打散在不同机器上,共同承担写入任务,并发也提高了,感觉这个思路是对的。

    那么在这个过程中,我们需要做什么?

    业务发展到单机无法承受,即使在单机上,很多表应该也做过分表了。一般会根据业务选择分表键。单个表的大小mysql也有一定要求,一般存储量不大于1G,单条记录小一些,一般不超过1k,条数一般不超过1000万条,最多不超过5000万条,否则表的使用和维护效率都很低。假设业务已经做了足够多的分表,满足三年的数据增长需要,第一年过后,每个分表的条数达到200万条,整机存储容量使用了一半,此时我们想拆分为两台机器。

    此时我们可以将原机器上部分表数据同步到新机器上,并在model层抽象一个路由层,将对数据库的操作发到不同的机器上,上层业务仍可以认为在使用单机。此时可以将原机器上不归属自己管理范围的表删除,腾出空间。

    一台变成了两台,向分布式走了一步。此时存储容量和并发都提高了,由路由层管理两台机器。如果两台或今后的多台机器,并发数高于路由层处理能力怎么办?那还要把路由层机器也扩一下,把路由规则都写进去,大家按一个格则办事。

    经过上面的一番折腾,数据库机器水平扩展,解决了单机存在的一些问题。在这个扩展的过程中,是否会对业务产生中断影响呢?

    会有一点影响。至少在路由层改路由表时,会中断数据库的写入,读取此时可以不中断。

    ddbs中,使用到的多台机器,都叫做分片。分片提高了系统存储容量和并发能力,引入分片,也是系统的复杂度提高了,需要引入路由层机器,路由机器也可能需要扩展,复杂操作,还需要添加更多逻辑功能。但至少可以可业务逻辑区分开,业务可以把ddbs当做单机在使用。

    那么ddbs有哪些不足呢?

    ddbs还是要基于分表、分片实现的。那么对数据库的任何操作,首要条件是需要指明操作的分表键。没有这个维度的准确值,就不能对数据库操作,当然除非是备用库,那你随便扫表,因为备用库可以转为冗余安全,不走线上流量,可以做统计任务。

    单指明分表键还不行,还要注意操作的数据可能会分布在不同分表、不同分片中,这样的操作会引发ddbs产生大量并发操作,业务的一个请求就会占用多个机器多个链接,使ddbs得并发能力大打折扣。比如‘where 分表键 in ()’操作,这种操作要慎重,in中个数不可太多。

    分表键最好选用整形,字符串型,可能hash后分配不均,表大小不均衡。

    事物操作在ddbs中的实现,非常耗费系统性能。事务类操作需要路由控制层控制整个操作过程,期中可能涉及多个分片,多个不同的表的操作,对系统整体可用性要求高。

    原文:http://12659710.blog.51cto.com/12649710/1903182

    展开全文
    weixin_29100399 2021-02-06 17:08:41
  • 分布式数据库系统(DDBS:DistributedDatabaseSystem)是在集中式数据库系统的基础上发展来的。是数据库技术与网络技术结合的产物。 分布式数据库系统有两种:一种是物理上分布的,但逻辑上却是集中的。这种分布式...

    一、什么是分布式数据库

    分布式数据库系统(DDBS:Distributed Database System)是在集中式数据库系统的基础上发展来的。是数据库技术与网络技术结合的产物。

    分布式数据库系统有两种:一种是物理上分布的,但逻辑上却是集中的。这种分布式数据库只适宜用途比较单一的、不大的单位或部门。另一种分布式数据库系统在物理上和逻辑上都是分布的,也就是所谓联邦式分布数据库系统。由于组成联邦的各个子数据库系统是相对“自治”的,这种系统可以容纳多种不同用途的、差异较大的数据库,比较适宜于大范围内数据库的集成

    分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。

    在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。

    一个分布式数据库在逻辑上是一个统一的整体:即在用户面前为单个逻辑数据库,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。 这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。

    分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性。

    分布式数据库系统是一个客户/服务器体系结构。

    在系统中的每一台计算机称为结点。如果一结点具有管理数据库软件,该结点称为数据库服务器。如果一个结点为请求服务器的信息的一应用,该结点称为客户。在ORACLE客户,执行数据库应用,可存取数据信息和与用户交互。在服务器,执行ORACLE软件,处理对ORACLE数据库并发、共享数据存取。ORACLE允许上述两部分在同一台计算机上,但当客户部分和服务器部分是由网连接的不同计算机上时,更有效。

    分布处理是由多台处理机分担单个任务的处理。在ORACLE数据库系统中分布处理的例子如:

    客户和服务器是位于网络连接的不同计算机上。

    单台计算机上有多个处理器,不同处理器分别执行客户应用。

    参与分布式数据库的每一服务器是分别地独立地管理数据库,好像每一数据库不是网络化的数据库。每一个数据库独立地被管理,称为场地自治性。场地自治性有下列好处:

     ◆系统的结点可反映公司的逻辑组织。

     ◆由局部数据库管理员控制局部数据,这样每一个数据库管理员责任域要小一些,可更好管理。

     ◆只要一个数据库和网络是可用,那么全局数据库可部分可用。不会因一个数据库的故障而停止全部操作或引起性能瓶颈。

     ◆故障恢复通常在单个结点上进行。

     ◆每个局部数据库存在一个数据字典。

     ◆结点可独立地升级软件。

    可从分布式数据库的所有结点存取模式对象,因此正像非分布的局部的DBMS,必须提供一种机制,可在局部数据库中引用一个对象。分布式DBMS必须提供一种命名模式,以致分布式数据库中一个对象可在应用中唯一标识和引用。一般在层次结构的每一层实施唯一性。分布式DBMS简单地扩充层次命名模型,实施在网络上唯一数据库命名。因此一个对象的全局对象名保证在分布式数据库内是唯一。

    ORACLE允许在SQL语句中使用全局对象名引用分布式数据库中的模式对象(表、视图和过程)。在ORACLE中,一个模式对象的全局名由三部分组成:包含对象的模式名、对象名、数据库名,其形式如:

      SCOTT.EMP@SALES.DIVISION3.ACME.COM

    一个远程查询为一查询,是从一个或多个远程表中选择信息,这些表驻留在同一个远程结点.

    一个分布式查询可从两个或多个结点检索数据.一个分布式更新可修改两个或两个以上结点的数据.

    一个远程事务为一个事务,包含一个或多个远程语句,它所引用的全部是在同一个远程结点上.一个分布式事务中一个事务,包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据.

    在分布式数据库中,事务控制必须在网络上直辖,保证数据一致性.两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句.

    ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性,利用视图、同义词、过程可提供ORACLE分布式数据库系统中的位置透明性.

    ORACLE提供两种机制实现分布式数据库中表重复的透明性:表快照提供异步的表重复;触发器实现同步的表的重复。在两种情况下,都实现了对表重复的透明性。

    在单场地或分布式数据库中,所有事务都是用COMMIT或ROLLBACK语句中止。

     

    二、分布式数据库系统的分类:

    (1) 同构同质型DDBS:各个场地都采用同一类型的数据模型(譬如都是关系型),并且是同一型号的DBMS。

    (2) 同构异质型DDBS:各个场地采用同一类型的数据模型,但是DBMS的型号不同,譬如DB2、ORACLE、SYBASE、SQL Server等。

    (3) 异构型DDBS:各个场地的数据模型的型号不同,甚至类型也不同。随着计算机网络技术的发展,异种机联网问题已经得到较好的解决,此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据。

     

    三、分布式数据库系统主要特点:

    DDBS的基本特点:

      (1)物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。

           (2)逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。

      (3)场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。

      (4)场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。

      

    DDBS的其他特点

      (1)数据独立性

      (2)集中与自治相结合的控制机制

      (3)适当增加数据冗余度

           (4)事务管理的分布性  

     

    四、分布式数据库系统的优点:

    (1) 更适合分布式的管理与控制。

    分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。

    (2) 具有灵活的体系结构。

    集中式数据库系统强调的是集中式控制,物理数据库是存放在一个场地上的,由一个DBMS集中管理。多个用户只可以通过近程或远程终端在多用户操作系统支持下运行该DBMS来共享集中是数据库中的数据。而分布式数据库系统的场地局部DBMS的自治性,使得大部分的局部事务管理和控制都能就地解决,只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理。分布式DBMS可以设计成具有不同程度的自治性,从具有充分的场地自治到几乎是完全集中式的控制。

    (3) 系统经济,可靠性高,可用性好。

    与一个大型计算机支持一个大型的集中式数据库在加一些进程和远程终端相比,由超级微型计算机或超级小型计算机支持的分布式数据库系统往往具有更高的性价比和实施灵活性。分布式系统比集中式系统具有更高的可靠性和更好的可用性。如由于数据分布在多个场地并有许多复制数据,在个别场地或个别通信链路发生故障时,不致于导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。

    (4) 在一定条件下响应速度加快。

    如果存取的数据在本地数据库中,那么就可以由用户所在的计算机来执行,速度就快。

    (5) 可扩展性好,易于集成现有系统,也易于扩充。

    对于一个企业或组织,可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用,对原有的局部数据库系统作某些改动,形成一个分布式系统。这比重建一个大型数据库系统要简单,既省时间,又省财力、物力。也可以通过增加场地数的办法,迅速扩充已有的分布式数据库系统。

     

    五、分布式数据库系统的劣势:

    (1) 通信开销较大,故障率高。

    例如,在网络通信传输速度不高时,系统的响应速度慢,与通信相关的因素往往导致系统故障,同时系统本身的复杂性也容易导致较高的故障率。当故障发生后系统恢复也比较复杂,可靠性有待提高。

    (2) 数据的存取结构复杂。

    一般来说,在分布时数据库中存取数据,比在集中时数据库中存取数据更复杂,开销更大。

    (3) 数据的安全性和保密性较难控制。

    在具有高度场地自治的分布时数据库中,不同场地的局部数据库管理员可以采用不同的安全措施,但是无法保证全局数据都是安全的。安全性问题式分布式系统固有的问题。因为分布式系统式通过通信网络来实现分布控制的,而通信网络本身却在保护数据的安全性和保密性方面存在弱点,数据很容易被窃取。

    分布式数据库的设计、场地划分及数据在不同场地的分配比较复杂。数据的划分及分配对系统的性能、响应速度及可用性等具有极大的影响。不同场地的通信速度与局部数据库系统的存取部件的存取速度相比,是非常慢的。通信系统有较高的延迟,在CPU上处理通信信息的代价很高。分布式数据库系统中要注意解决分布式数据库的设计、查询处理和优化、事务管理及并发控制和目录管理等问题。

     

     

    六、分布式数据库系统:数据分片

    类型:

      1、水平分片:

       按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。

      2、垂直分片:

       把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。

      3、导出分片:

       又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。

      4、混合分片:

       以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。

     

    条件:

      (1) 完备性条件:

       必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的任何一个片段。

      (2) 可重构条件:

       必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。

      (3) 不相交条件:

       要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。

     

     

    七、分布式数据库系统:数据分配方式

    (1) 集中式:

    所有数据片段都安排在同一个场地上。

    (2) 分割式:

    所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。

    (3) 全复制式:

    数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。

    (4) 混合式:

    这是一种介乎于分割式和全复制式之间的分配方式。

     

    八、分布式数据库系统:体系结构

    数据分片和数据分配概念的分离,形成了“数据分布独立型”概念。

    数据冗余的显式控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理。

    局部DBMS的独立性。这个特征也称为“局部映射透明性”。此特征允许我们在不考虑局部DBMS专用数据模型的情况下,研究DDB管理的有关问题。

     

    九、分布式数据库管理系统

    接受用户请求,并判定把它送到哪里,或必须访问哪些计算机才能满足该要求。

    访问网络数据字典,了解如何请求和使用其中的信息。

    如果目标数据存储于系统的多个计算机上,就必须进行分布式处理。

    通信接口功能。在用户、局部DBMS和其他计算机的DBMS之间进行协调。

    在一个异构型分布式处理环境中,还需提供数据和进程移植的支持。这里的异构型是指各个场地的硬件、软件之间存在着差别。

    展开全文
    qq_34924156 2019-04-10 16:55:03
  • 按分布式数据库系统的全局控制系统-集中型DDBS、分散型DDBS和可变型DDBS。 DDBMS的功能结构 局部数据库、全局数据库、局部数据库管理系统、全局数据库管理系统、局部用户和全局用户。 功能模块: 1、查询处理模块-...
    分布式数据库
    


    基本特点


    物理分布性:数据不是存储在一个站点上,而是分散存储在由计算机网络联结起来的多个站点上。


    逻辑整体性:数据物理上是分散在各个站点上,但这些分散的数据逻辑上却是一个整体,它们被分布式数据库系统的所有用户共享。


    站点自治性:站点自治性也称场地自治性,是指各站点上的数据由本地的DBMS管理。


    其他特点:


    数据独立性:逻辑独立性,物理独立性和分布透明性


    集中与自治相结合的控制机制


    适当增加数据的冗余度:通过数据冗余来提高系统的可靠性、可用性和改善系统的性能,通过在多个站点上存储数据的副本,使得当某一站点上的数据破坏时,系统仍可以正常运行。-》spark hadoop


    事务管理的分布性:一个全局事务的执行可分解为在若干站点上的子事务的执行。事务的原子性、一致性、可串行性、隔离性和永久性以及事务的都要考虑分布性。




    分布式数据库系统的分类


    按局部数据库管理系统的模型-同构性DDBS、异构型DDBS


    按分布式数据库系统的全局控制系统-集中型DDBS、分散型DDBS和可变型DDBS。


    DDBMS的功能结构
    局部数据库、全局数据库、局部数据库管理系统、全局数据库管理系统、局部用户和全局用户。


    功能模块:
    1、查询处理模块-负责对用户的查询进行分析和优化,减少查询处理的代价,降低网络传输的代价。
    2、完整性处理模块:负责维护数据库的完整性和一致性,检查完整性规则,处理多副本数据的同步更新等。当查询处理模块分析除查询所需的数据后,完整性模块与查询模块一起确定执行查询的策略。
    3、调度处理模块:当确定查询策略后,调度处理模块负责向有关站点发布命令,使相应站点的DBMS执行这些局部处理。调度处理还需要与各个站点的通信管理软件配合,以便在相应的站点之间进行必要的数据传输。最后,完成查询并把结果送回发出该查询的站点。
    4、可靠性处理模块




    DDBS的数据组成
    物理数据库-应用所需的数据集合-》主体
    描述数据库-关于数据库结构的定义,以及全局数据的分片、分布的描述-》数据字典或数据目录


    DDBS数据分片和分布
    数据分片(data fragmentation)
    基本方法:
    1、水平分片:按特定条件将全局关系的所有元组分成若干个互不相交的子集,每一个子集为全局关系的一个逻辑片段-》片段
    2、垂直分片:将全局关系(表或视图)的属性集(字段集)中若干属性作投影运算,既得到全局关系的一个垂直分片。要求全局关系的每一个属性至少映射到一个垂直片段中,且每一个垂直分段都包含全局关系的键。
    3、混合分片:水平分片和垂直分片的混合。






    满足条件:


    完备性条件:必须把全局关系的所有数据及元组映射到各个分片中,不允许有属于全局关系的数据却不属于它的任何一个片段。


    可重构条件:必须保证能都由同一个全局关系的各个片段来重建该全局关系。


    不相交条件:要求一个全局关系被分割后所得到的各数据片段互不重叠。




    DDBS数据分布
    1、集中式:所有数据片段都安排在同一站点上。
    2、分割式:所有数据只有一份,它被分割为若干逻辑片段,每个逻辑片段被指派在特定的站点上。
    3、复制式:全局数据有多个副本,每个站点上都有一个完整的数据副本。
    4、混合式:将数据分为若干分逻辑片段,并将各逻辑片段分别存储在各个站点上,同一个片段可以有多个副本分布在不同的站点上。




    DDBS模式结构:
    全局外层-》外模式
    全局概念层-》全局概念模式、分片模式、分配模式
    局部概念层-》局部概念模式
    局部内层-》局部内模式
    各模式之间有DDBMS提供多次映像来实现转换


    分布透明性:分片透明性、位置透明性和局部数据模型的透明性。


    DDBS优点:
    良好的可靠性和可用性
    提高效率,降低通信费用
    具有较大的灵活性和可伸缩性
    系统各站点具有较好的自治性
    适应组织的分布式管理和控制


    问题:
    数据的分割、分布
    分布式数据查询处理
    分布式数据的更新处理
    分布式事务的并发控制
    可靠性问题
    目录管理




    DDBS设计:
    组合法
    重构法


    DDBS:查询处理和优化模块设计、完整性处理模块设计、调度管理模块设计、事务管理模块设计、并发控制模块设计、可靠性处理模块的设计及其全局目录管理模块的设计


    分布式事务管理和并发控制


    分布式事务处理的基本协议


    并发控制的基本方法-锁机制




    对等处理系统:网络上每个站点的计算机都要负责对自己资源的管理和访问-》blockchain


    c/s模式的特性:
    按功能划分
    共享资源
    不对称协议
    定位透明
    混合和匹配
    基于消息的交换
    服务封装
    可扩展性

    完整性


    展开全文
    Dooz0 2018-02-17 10:06:15
  • 把数据库关系分割成更小的片段,并把这些片段处理成分开的数据库对象。 水平分片,垂直分片。

     

    把数据库关系分割成更小的片段,并把这些片段处理成分开的数据库对象。

    水平分片,垂直分片。

    展开全文
    u013470740 2020-07-22 22:14:16
  • u013470740 2020-07-17 22:42:01
  • 586KB weixin_42119989 2021-05-12 13:53:20
  • Scotfield_msn 2017-03-04 21:01:41
  • u013470740 2020-07-20 21:54:48
  • u013470740 2020-07-19 22:02:35
  • 206KB jiebing2020 2021-09-19 15:49:52
  • sleepywyyy 2019-09-25 17:11:13
  • 3星
    53KB zhangfn2008 2008-12-10 11:39:05
  • weixin_30719711 2011-09-18 20:45:00
  • u013470740 2020-07-15 21:52:00
  • u013470740 2020-07-13 22:28:41
  • u013470740 2020-07-14 22:06:06
  • ZrZrZr666666 2019-10-19 23:42:15
  • u013470740 2020-07-17 07:07:47

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 371
精华内容 148
关键字:

DDBS