热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

海量数据库设计第二课(笔记)-mysql教程

这是这门课的第二课,感觉收获还是很多的。那我接下来说一说我在本次可课程中了解到如何分布式数据库吧。一、基于ORACLE的分布式数据库架构设计那么作为一个分布式数据库,那么我们要在数据库层面之上架构一个中间,这个中间层包括查询、加载等服务来协调

这是这门课的第二课,感觉收获还是很多的。那我接下来说一说我在本次可课程中了解到如何分布式数据库吧。 一、基于ORACLE的分布式数据库架构设计 那么作为一个分布式数据库,那么我们要在数据库层面之上架构一个中间,这个中间层包括查询、加载等服务来协调

这是这门课的第二课,感觉收获还是很多的。那我接下来说一说我在本次可课程中了解到如何分布式数据库吧。

一、基于ORACLE的分布式数据库架构设计

那么作为一个分布式数据库,那么我们要在数据库层面之上架构一个中间,这个中间层包括查询、加载等服务来协调各数据库并满足不同用户的要求

关系型分布式数据库架构的示例:

\

二、分布式数据库架构的优势:

1、数据的并行计算和访问

2、I/O通道的扩展

3、主机资源的整合

4、灵活的扩展性

例如:容量:当业务的数据接近系统存储的上限值时,可以自由的扩展

性能:当数据处理的速度无法满足业务的需求时,可以添加更多的节点,从而取得更多的资源来提高我们的性能

突发事件:为了防止突发事件的发生,我们在各个节点上都会做一定量的冗余,从而保证了数据库的高可用性

5、对应用的透明

6、数据的冗余

我们可以选择做同城灾备或者异地灾备。而无论是哪一种都需要在数据库层面之上架构一层应用来完成这项任务。

三、影响分布式数据库数量的因素

1、系统容量

2、加载性能

3、查询性能

4、恢复时间

四、分布式数据库的冗余

\\

从上面的图片我们得知,我们在分布式数据库中加载数据是使用SQL*Loader而不是使用RMAN。原因是RMAN在加载数据时,数据已经在数据库中,这会占用一定量的存储空间,而且使用RMAN就必须开启归档,而开启归档,我们就需要更多的空间来存储归档信息。而且对于海量数据库来说,产生的归档数量之庞大,会让我们放弃在数据仓库中会放弃开启归档。所以最终我们选择了SQL*Loader的方式来加载数据。

上面说了许多分布式数据库的优势和设计方法,那么作为数据库层面之上的中间件有哪些优势、又该如何去设计呢。

一、分布式系统中间件架构的优势

1、统一对外的API

2、负载均衡

3、高效的查询和加载性能

4、灵活的扩展性

\

二、分布式系统中间件架构的设计

1、统一API

\

2、负载均衡

\

3、数据查询

\

4、数据加载

\

5、服务监控

\

6、容错和扩展

\

\

总结:

这种组织数据库的方法克服了物理中心数据库组织的弱点。首先,降低了数据传送代价,因为大多数的对数据库的访问操作都是针对局部数据库的,而不是对其他位置的数据库访问;其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响;第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。

分布式软件系统(DistributedSoftware Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。

分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。


推荐阅读
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • PGXC中的两阶段提交机制及其对事务一致性的保障
    PGXC作为一款基于PostgreSQL的分布式数据库系统,利用Sharding技术将数据分散存储于多个数据库实例中。本文探讨了PGXC的两阶段提交过程及其实现事务强一致性的方法。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 深入解析Dubbo:使用与源码分析
    本文详细介绍了Dubbo的使用方法和源码分析,涵盖其架构设计、核心特性和调用流程。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • (1)前期知识:1. 单机架构:单一服务器计算机——其处理能力和存储容量有限。2. 集群架构(负载均衡器与多节点服务器)——通过增加节点数量来提升系统性能和可靠性,实现高效的任务分配和资源利用。 ... [详细]
  • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
author-avatar
上海外国灬语大学-校友粉丝团
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有