下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

数据库结构架取方法详解

作者:课课家教育     来源: http://www.kokojia.com点击数:830发布时间: 2017-06-16 13:00:14

标签: 数据库虚拟化数据挖掘

  数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

  数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域,是在具体的数据库产品之上搭建的环境,需要像DBA这样对数据库产品有足够的了解才能有所涉及,虽然不能深入其中,但可以通过一些经典的高可用架构学习其中的思想。就我所了解到的有以下几种:

  MySQLReplication

  MySQLCluster

  OracleRAC

  IBMHACMP

  OracleASM

  MySQLReplication

  MySQLReplication就是通过异步复制多个copy以达到提高可用性的目的,常规的复制架构有以下几种:

  Master-Slaves

  Master-Master

  Master-Master-Salves

  1)Master-Slaves

  Master-Slaves是最常用的提高可用的方法,特别是在互联网应用中,读远远大于写,因此提高读的可用性是首当其中的,Master-Slaves就是让写的操作集中在一台数据库Master上,然后这个Master会把更新的操作复制到其他数据库Slaves上,读的操作都发生在Slaves上,架构图如下所示:

数据库结构架取方法详解_数据库_虚拟化_数据挖掘_课课家教育

        如上图在SlaveC不可用时,读和写都不会中断,等SlaveC恢复后会自动同步丢失的数据,又能重新投入运转,可维护性非常好。但如果Master有问题就麻烦了,因此它只解决了读的高可用性,但不保证写的高可用性。

  2)Master-Master

  为解决上面谈的写的高可用性,MySQL提供了Master-Master的复制架构,如下所示:

2)Master-Master    为解决上面谈的写的高可用性,MySQL提供了Master-Master的复制架构,如下所示:

   一般说来都向MasterA写,MasterA同步数据到MasterB,当MasterA有问题时,会自动切换到MasterB,等MasterA恢复时,MasterB同步数据到MasterA

  3)Master-Master-Salves

  Master-Master-Salves是结合上面两种方案,是一种同时提供读和写高可用的复制架构,如下图所示:

Master-Master-Salves是结合上面两种方案,是一种同时提供读和写高可用的复制架构,如下图所示:

  详解数据库高可用架构之路

  MySQLCluster

  MySQLCluster主要由三个部分组成:

  SQL服务器节点

  NDB数据存储节点

  监控和管理节点

  三个部门的组成结构如下图所示:

监控和管理节点三个部门的组成结构如下图所示:

      这样的分层也是由MySQL本身把SQL处理和存储分开的架构相关系的。

  这样一来MySQLCluster就可以分别在SQL处理和存储两个层次上做高可用的复制策略。在SQL处理层次上,比较容易做集群,因为这些SQL处理是无状态性的,完全可以通过增加机器的方式增强可用性。在存储层次上,通过对每个节点进行备份的形式增加存储的可用性,这类似与MySQLReplication,结构图如下所示:

这样一来MySQLCluster就可以分别在SQL处理和存储两个层次上做高可用的复制策略。在SQL处理层次上,比较容易做集群,因为这些SQL处理是无状态性的,完全可以通过增加机器的方式增强可用性。在存储层次上,通过对每个节点进行备份的形式增加存储的可用性,这类似与MySQLReplication,结构图如下所示:

    OracleRAC

  OracleRAC和MySQLCluster有些相似,但主要集中在SQL处理层的高可用性,而在存储上体现不多,结构图如下所示:

OracleRAC和MySQLCluster有些相似,但主要集中在SQL处理层的高可用性,而在存储上体现不多,结构图如下所示:

    它的主要优点就是对应用透明,并且通过Heartbeat检测可用性非常高,主要缺点就是存储是共享的,存储上可扩展能力不足。

  IBMHACMP

  数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。

  数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。

  IBMHACMP与OracleRAC也是类似,主要用于双机互备,运行流程如下所示:

  1)作为双机系统的两台服务器(主机A和B)同时运行在Hacmp环境中;

  2)服务器除正常运行自机的应用外,同时又作为对方的备份主机;

  3)两台主机系统(A和B)在整个运行过程中,通过“心跳线”相互监测对方的运行情况(包括系统的软硬件运行、网络通讯和应用运行情况等);

  4)一旦发现对方主机的运行不正常(出故障)时,故障机上的应用就会立即停止运行,本机(故障机的备份机)就会立即在自己的机器上启动故障机上的应用,把故障机的应用及其资源(包括用到的IP地址和磁盘空间等)接管过来,使故障机上的应用在本机继续运行;

  5)应用和资源的接管过程由Ha软件自动完成,无需人工干预;

  6)当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机(备份机)上运行。

  OracleASM

  OracleASM主要提供存储的可扩展性,通过自动化的存储管理加上后端可扩展性的存储阵列达到高可用性,结构图如下所示:

OracleASM主要提供存储的可扩展性,通过自动化的存储管理加上后端可扩展性的存储阵列达到高可用性,结构图如下所示:

     因此,可以尝试把OracleRAC和ASM组合起来使用,同时提供SQL处理和存储的高可用性,这也是MySQLCluster想达到的效果。

  例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。

  严格来说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

  这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。

  更多详细内容,尽在课课家教育,我们期待您的咨询!

赞(10)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程