数据库分布式设计
Ⅰ 分布式数据库需要考虑哪些问题
在设雀裂计分布式数据库时,应特仿岁改别考虑如下几个方面的问题: 1. 数据保存 (存储分段/复制,横向/纵向表分区); 2. 目录管理(catalog management): 命名,数据独立性 3. 查询处理(基于代价的调备判优, 半合并)4. 数据更新(同步/异步)
Ⅱ 什么叫分布式数据库,有什么优点和缺点
1.分布式数据库是数据库的一种,是数据库技术和网络技术的结合产物。
2.各有优点和缺点.分布式数据库分为逻辑上分部物理上分布及逻辑上分布物理上集中两种。
是的,分布式数据文件便于数据库的管理维护。
Ⅲ 简述分布式数据库的模式结构
分布式数据库系统是在集中式数据库系统的基础上发展来的。是数据库技术与网络技术结合的产物。什么是分布式数据库: 分布式数据库系统是在集中式数据库系统的基础上发展来的。是数据库技术与网络技术结合的产物。分布式数据库系统有两种:一种是物理上分布的,但逻辑上却是集中的。这种分布式数据库只适宜用途比较单一的、不大的单位或部门。另一种分布式数据库系统在物理上和逻辑上都是分布的,也就是所谓联邦式分布数据库系统。由于组成联邦的各个子数据库系统是相对“自治”的,这种系统可以容纳多种不同用途的、差异较大的数据库,比较适宜于大范围内数据库的集成。分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。一个分布式数据库在逻辑上是一个统一的整体:即在用户面前为单个逻辑数据库,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。 这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性。分布式数据库系统是一个客户/服务器体系结构。
Ⅳ 如何编写一个分布式数据库
某种程度上看来,数据库作为整个系统的核心,这句话其实并不夸张,数据库的选型关系到上层业务代码实现的方方面面,现在比较流行的架构方案是上层业务逻辑微服务化,并且结合分布式缓存,这套框架已经基本能做到上层业务的弹性扩展,但是最底层的数据存储还是很难去中心化(除非整个技术栈中去除关系型数据库(RDBMS), 全部采用 NoSQL)。所以,经常是 RDBMS 成为整个系统的瓶颈。
在长期的斗争中,大家总结出了很多方式来扩展最底层的关系型数据库:
1. 主从,一主多从,双写,通过队列暂存请求... 这些方案其实并没有解决问题,写入仍然是单点,而且对于 DBA 的挑战比较大,今天我们暂时就不讨论了。
2. 通过中间件 Sharding,常见的开源方案有: Cobar, TDDL, Vitess, Kingshard, MyCat 等,这些方案的思路是拦截 SQL 的请求通过 sharding key 和一定规则,将请求转发/广播到不同的 MySQL 实例上,从而实现水平扩展的效果,这个方案基本解决了单点写入的问题,对于业务来说整体的吞吐也上来了,看上去不错,这个方案是大多数业务遇到性能瓶颈的解决方案,但是缺点也是有的:
1)大多中间件都没有解决动态扩容的问题,多采用了静态的路由策略,扩容一般还处于人工 x2 的状态,对 DBA 要求比较高。
2)从一定程度上来说都放弃了事务,这是由于一条语句有可能会涉及到多个数据库实例,实现分布式 事务是一个比较难的事情,我们后面会详细的介绍。
3)对业务不透明,需要指定 sharding key, 心智负担较大
Ⅳ 分布式数据库的数据分配方式
(1)集中式:所有数据片渗逗段都安排在同一个场地上。
(2)分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。
(3)全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。
(4)混合式:这是一种介乎于分割丛判卖式和全复制式之间的分配方式。
目前分布式数据库分配的设计,越来越多的采用寻找最优解冲袜的算法,比如遗传算法、退火机制等
Ⅵ 分布式数据库的简介
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。
另一方面,随着数据量越来越大,关系型数据库开始暴露出一些难以克服的缺点,以NoSQL 为代表的非关系型数据库,其高可扩展性、高并发性等优势出现了快速发展,一时间市场上出现了大量的key-value 存储系统、文档型数据库等NoSQL 数据库产品。NoSQL 类型数据库正日渐成为大数据时代下分布式数据库领域的主力。
这种组织数据库的方法克服了物理中心数据库组织的弱点。 首先,降低了数据传送代价,因为大多数的对数据库的访问操作都是针对局部数据库的,而不是对其他位置的数据库访问; 其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响; 第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。 分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。
Hadoop的分布式文件系统HDFS,作为开源的分布式平台,为目前流行的很多分布式数据库提供了支持,譬如HBase等。Yonghong的分布式文件系统ZFS,为分布式数据集市Z-DataMart提供了底层平台。
Ⅶ 分布式数据库系统的数据分布方式有哪些(分布式数据库的特点是)
数据分布是分布式数据库的主要特征。实现数据访问的局部枯则化是分布式数据库设计的重要内容。文中桐段介绍了分布式数据库系统的主要特征及关键技术,重点对关系的分没轮棚割和分布式数据的访问进行了讨论。
Ⅷ 什么是分布式数据库结构
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
请高人请点迷津
解析:
分布式软件系统(Distributed Sofare Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资斗绝穗源管理、进程通信和系统结构等方面。
分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。
分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。
分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。
---------------
分布式数据库系统是由若干个站 *** 而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。
分布式数据库系统已经成为信息处理学科的重要领域,正在迅速发展之中,原因基于以下几点:
1、它可以解决组织机构分散而数据需要相互联系的问题。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。
2、如果一个组织机构需要增加新的相对自主的组织单位来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。
3、均衡负载的需要。数据的分解采用使局部应用达到最大,这使得各处理机之间的相互干扰降到最低。负载在各处理机之间分担,可以避免临界瓶颈。
4、当现有机构中已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。
5、相等规模的分布式数据库系统在出现故障的几率上不会比集宏枣中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。
特点
1、在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自 *** 。
2、在分布式数据库系统中数据独立性概念也同样重要,然而增加了一个新的概念空卜,就是分布式透明性。所谓分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。
3、集中式数据库系统不同,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性。其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。当然,在分布式系统中对最佳冗余度的评价是很复杂的。
分布式系统的类型,大致可以归为三类:
1、分布式数据,但只有一个总? 据库,没有局部数据库。
2、分层式处理,每一层都有自己的数据库。
3、充分分散的分布式网络,没有中央控制部分,各节点之间的联接方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式联接等。
---------------------
什么是分布式智能?
NI LabVIEW 8的分布式智能结合了相关的技术和工具,解决了分布式系统开发会碰到的一些挑战。更重要的是,NI LabVIEW 8的分布式智能提供的解决方案不仅令这些挑战迎刃而解,且易于实施。LabVIEW 8的分布式智能具体包括:
可对分布式系统中的所有结点编程——包括主机和终端。尤为可贵的是,您可以利用LabVIEW图形化编程方式,对大量不同类型的对象进行编程,如桌面处理器、实时系统、FPGA、PDA、嵌入式微处理器和DSP。
导航所有系统结点的查看系统——LabVIEW Project Explorer。您可使用Project Explorer查看、编辑、运行和调试运行于任何对象上的结点。
经简化的数据共享编程界面——共享变量。使用共享变量,您可轻松地在系统间(甚至实时系统间)传输数据且不影响性能。无通信循环,无RT FIFO,无需低层次TCP函数。您可以利用简单的对话完成共享变量的配置,从而将数据在各系统间传输或将数据连接到不同的数据源。您还可添加记录、警报、事件等数据服务――一切仅需简单的对话即可完成。
实现了远程设备及系统内部或设备及系统之间的同步操作——定时和同步始终是定义高性能测量和控制系统的关键问题。利用基于NI技术的系统,探索设备内部并编写其内部运行机制,从而取得比传统仪器或PLC方式下更为灵活的解决方案。
--------------------
在分布式计算机操作系统支持下,互连的计算机可以互相协调工作,共同完成一项任务。
也可以这么解释:
一种计算机硬件的配置方式和相应的功能配置方式。它是一种多处理器的计算机系统,各处理器通过互连网络构成统一的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。这样就加快了系统的处理速度,简化了主机的逻辑结构.
易游贝贝祝你好运
Ⅸ 如何用SQLServer建立分布式数据库
很多组织机构慢慢的在不同的服务器和地点部署SQLServer数据库——为各种应用和目的——开始考虑通过SQLServer集群的方式来合并。
将SQLServer实例和数据库合并到一个中心的地点可以减低成本,尤其是维护和软硬件许可证。此外,在合并之后,可以减低所需机器的数量,这些机器就可以用于备用。
当寻找一个备用,比如高可用性的环境,企橡纳业常常决定部署Microsoft的集群架构。我常常被问到小的集群(由较少的节点组成)SQLServer实例和作为中心解决方案的大的集群哪一种更好。在我们比较了这两个集群架构之后,我让你们自己做决定。
什么是Microsoft集群服务器
MSCS是一个WindowsServer企业版中的内建功能。这个软件支持两个或者更多服务器节点连接起来形成一个“集群”,来获得更高的可用性和对数据和应用更简便的管理。MSCS可以自动的检查到服务器或者应用的失效,并从中恢复。你也可以使用它来(手动)移动服务器之间的负载来平衡利用率以及无需停机时间来调度计划中的维护任务。
这种集群设计使用软件“心跳”来检测应用或者服务器的失效。在服务器失效的事件中,它会自动将资源(比如磁盘和IP地址)的所有权从失效的服务器转移到活动的服务器。注意还有方法可以保持心跳连接的更高的可用性,比如站点全面失效的情况下。
MSCS不要求在客户计算机上安装任何特殊软件,因此用户在灾难恢复的经历依赖于客户-服务器应用中客户一方的本质。客户的重新连接常常是透明的,因为MSCS在相同的IP地址上重启应用、文件共享等等。进一步,为了灾难恢复,集群的节点可以处于分离的、遥远的地点。
在集群服务器上的SQLServer
SQLServer2000可以配置为最多4个节点的集群,而SQLServer2005可以配置为最多8个节点的集群。当一个SQLServer实例被配置为集群之后,它的磁盘资源、IP地址和服务就形成了集群组来实现灾难恢复。
SQLServer2000允许在一个集群上安装16个实例。根据在线帮助,“SQLServer2005在一个服务器或者处理器上可以支持最多50个SQLServer实例,”但是,“只能使用25个硬盘驱动器符,因此如果你需要更多的实例,那么需要预先规划。”
注意SQLServer实例的灾难恢复阶段是指SQLServer服务开始所需要的时间,这可能从几秒钟到几分钟。如果你需要更高的可用性,考虑使用其神拆他的方法,比如logshipping和数据库镜像。
单个的大的SQLServer集群还是小的集群
下面是大的、由更多的节点组成的集群的优点:
◆更高的可用新(更多的节点来灾难恢复)。
◆更多的负载游如枣均衡选择(更多的节点)。
◆更低廉的维护成本。
◆增长的敏捷性。多达4个或者8个节点,依赖于SQL版本。
◆增强的管理性和简化环境(需要管理的少了)。
◆更少的停机时间(灾难恢复更多的选择)。
◆灾难恢复性能不受集群中的节点数目影响。
下面是单个大的集群的缺点:
◆集群节点数目有限(如果需要第9个节点怎么办)。
◆在集群中SQL实例数目有限。
◆没有对失效的防护——如果磁盘阵列失效了,就不会发生灾难恢复。
◆使用灾难恢复集群,无法在数据库级别或者数据库对象级别,比如表,创建灾难恢复集群。
虚拟化和集群
虚拟机也可以参与到集群中,虚拟和物理机器可以集群在一起,不会发生问题。SQLServer实例可以在虚拟机上,但是性能可能会受用影响,这依赖于实例所消耗的资源。在虚拟机上安装SQLServer实例之前,你需要进行压力测试来验证它是否可以承受必要的负载。
在这种灵活的架构中,如果虚拟机和物理机器集群在一起,你可以在虚拟机和物理机器之间对SQLServer进行负载均衡。比如,使用虚拟机上的SQLServer实例开发应用。然后在你需要对开发实例进行压力测试的时候,将它灾难恢复到集群中更强的物理机器上。
集群服务器可以用于SQLServer的高可用性、灾难恢复、可扩展性和负载均衡。单个更大的、由更多的节点组成的集群往往比小的、只有少数节点的集群更好。大个集群允许更灵活环境,为了负载均衡和维护,实例可以从一个节点移动到另外的节点。