海量数据库设计第二课(笔记)
这是这门课的第二课,感觉收获还是很多的。那我接下来说一说我在本次可课程中了解到如何分布式数据库吧。 一、基于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)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。