`
tianhandigeng
  • 浏览: 368962 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

存储基础知识:数据一致性

    博客分类:
  • java
阅读更多

一、概述

数据一致性是指关联数据之间的逻辑关系是否正确和完整。问题可以理解为应用程序自己认为的数据状态与最终写入到磁盘中的数据状态 是否一致。比如一个事务操作,实际发出了五个写操作,当系统把前面三个写操作的数据成功写入磁盘以后,系统突然故障,导致后面两个写操作没有写入磁盘中。 此时应用程序和磁盘对数据状态的理解就不一致。当系统恢复以后,数据库程序重新从磁盘中读出数据时,就会发现数据再逻辑上存在问题,数据不可用。

二、Cache引起的数据一致性问题

引 起数据一致性问题的一个主要原因是位于数据I/O路径上的各种Cache或Buffer(包括数据库Cache、文件系统Cache、存储控制器 Cache、磁盘Cache等)。由于不同系统模块处理数据IO的速度是存在差异的,所以就需要添加Cache来缓存IO操作,适配不同模块的处理速度。 这些Cache在提高系统处理性能的同时,也可能会“滞留”IO操作,带来一些负面影响。如果在系统发生故障时,仍有部分IO“滞留”在IO操作中,真正 写到磁盘中的数据就会少于应用程序实际写出的数据,造成数据的不一致。当系统恢复时,直接从硬盘中读出的数据可能存在逻辑错误,导致应用无法启动。尽管一 些数据库系统(如Oracle、DB2)可以根据redo日志重新生成数据,修复逻辑错误,但这个过程是非常耗时的,而且也不一定每次都能成功。对于一些 功能相对较弱的数据库(如SQL Server),这个问题就更加严重了。

解决此类文件的方法有两个,关闭Cache或创建快照 (Snapshot)。尽管关闭Cache会导致系统处理性能的下降,但在有些应用中,这却是唯一的选择。比如一些高等级的容灾方案中(RPO为0),都 是利用同步镜像技术在生产中心和灾备中心之间实时同步复制数据。由于数据是实时复制的,所以就必须要关闭Cache。

快照的目的是为数据 卷创建一个在特定时间点的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后源数据卷的更新(有新的数据写入),不会反映在快照视 图中。利用这个快照视图,就可以做数据的备份或复制。那么快照视图的数据一致性是如何保证的呢?这涉及到多个实体(存储控制器和安装在主机上的快照代理) 和一系列的动作。典型的操作流程是:存储控制器要为某个数据卷创建快照时,通知快照代理;快照代理收到通知后,通知应用程序暂停IO操作(进入 backup模式),并flush数据库和文件系统中的Cache,之后给存储控制器返回消息,指示已可以创建快照;存储控制器收到快照代理返回的指示消 息后,立即创建快照视图,并通知快照代理快照创建完毕;快照代理通知应用程序正常运行。由于应用程序暂停了IO操作,并且flush了主机中的 Cache,所以也就保证了数据的一致性。

创建快照是对应用性能是有一定的影响的(以Oracle数据库为例,进入Backup模式大约需要2分钟,退出Backup模式需要1分钟,再加上通信所需时间,一次快照需要约4分钟的时间),所以快照的创建不能太频繁。

三、时间不同步引起的数据一致性问题

引 起数据不一致性的另外一个主要原因是对相关联的多个数据卷进行操作(如备份、复制)时,在时间上不同步。比如一个Oracle数据库的数据库文件、 Redo日志文件、归档日志文件分别存储在不同的卷上,如果在备份或复制的时候未考虑几个卷之间的关联,分别对一个个卷进行操作,那么备份或复制生成的卷 就一定存在数据不一致问题。

此类问题的解决方法就是建立“卷组(Volume Group)”,把多个关联数据卷组成一个组,在创建快照时同时为组内多个卷建立快照,保证这些快照在时间上的同步。之后再利用卷的快照视图进行复制或备份等操作,由此产生的数据副本就严格保证了数据的一致性。

四、文件共享中的数据一致性问题

通常所采用的双机或集群方式实现同构和异构服务器、工作站与存储设备间的数据共享,主要应用在非线性编辑等需要多台主机同时对一个磁盘分区进行读写。

在 NAS环境中,可以通过网络共享协议N FS或CIFS来做到数据的共享。但是如果不在NAS环境中,多台主机同时对一个磁盘分区进行读写会带来写入数据一致性的问题,造成文件系统被破坏或者当 前主机写入后其它主机不能读取当前写入数据的问题。可以通过使用数据共享软件装在多台主机上来实现磁盘分区的共享。由数据共享软件来调配多台主机数据的写 入,保证数据的一致性

 

 

分享到:
评论

相关推荐

    软件工程之专题九:数据结构知识

    数据结构是计算机软件的一门基础课程,计算机科学各个领域及有关的应用软件都要用到各种数据结构.语言编译要使用栈、散列表及语法树;操作系统中用队列、存储管理表及目录树等;数据库系统运用线性表、多链表及索引...

    东南大学 崇志宏:非结构数据存储和区块链数据库

    在解决数据一致性基础上的需要进一步解决数据的共识性,这是开放环境下模型开放后遇到的基本问题和关键应用。这是东南大学数据与智能实验室与中兴(南京)的一次交流。当下数据存储技术需要解决:1)模型开放;2)...

    华为内部存储基础知识白皮书.pdf

    SAN/NAS、文件系统、SCSI、FC、RAID、存储备份、数据一致性、容灾备份、数据库与应用系统的存储配置

    软件工程之专题六: 数据库知识

     • 数据仓库和分布式数据库基础知识 1、数据库知识 1.1数据管理技术的发展  数据管理技术的发展阶段:  人工阶段:数据处理方式是批处理。其特点是:  数据不保存  没有专用的软件对数据进行管理  只有...

    二级C语言公共基础知识

    数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 (19) 关系表中的每一横行称为一个______。(A) A. 元组 B. 字段 C. 属性 D. 码 (20) 数据库设计包括两个方面的设计内容,它们...

    (高清版)大规模分布式存储系统:原理解析与架构实战

    《大规模分布式存储系统:原理解析与架构实战》内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的...

    计算机软件及应用数据库基础知识.pptx

    数据的物理独立性:是应用程序与存储在磁盘上的数据库中数据之间的相互独立性,可以修改"模式—内模式"达到此目的。 计算机软件及应用数据库基础知识全文共33页,当前为第8页。 1.2.1 三个世界的转化 现实世界:在...

    计算机二级公共基础知识

    在线性链表中,各数据元素结点的存储空间可以是不连续的,且各数据元素的存储顺序与逻辑顺序可以不一致。在线性链表中进行插入与删除,不需要移动链表中的元素。 线性单链表中,HEAD称为头指针,HEAD=NULL(或0)...

    2017计算机应用基础知识.docx

    2017计算机应用基础知识 1.1数据结构与算法 借助于计算机解决问题,首先需要了解所处理对象的性质和特点即所操作对象的数据结构,然后再设计解决问题的方法和步骤即设计一个合理的算法,即通常所说的"程序=数据结构...

    大规模分布式存储系统:原理解析与架构实战

    《大规模分布式存储系统:原理解析与架构实战》内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的...

    免费下载非常详细的 Mysql 面试知识点

    数据库事务和并发控制:了解事务的概念、ACID特性以及并发控制的方法,能够处理并发访问和保证数据的一致性。 5. 数据库备份和恢复:了解数据库备份和恢复的方法,能够进行数据的定期备份和紧急恢复。 6. ...

    DB2开发基础知识-存储过程开发

    一、数据类型 二、使用存储过程优点 三、存储过程结构 四、参数定义 五、变量定义 六、赋值语句 七、条件控制语句 八、循环语句 九、常用操作符 十、游标使用 ...十四、数据一致性和完整性 十五、事物隔离级别

    网络安全技术基础知识.pptx

    网络安全基础知识 网络安全技术基础知识全文共18页,当前为第1页。 网络信息安全的内涵和内容 网络的安全性问题实际上包括两方面的内容:一是网络的系统安全,二是网络的信息安全。国际标准化组织(ISO)对计算机系统...

    大学计算机基础--数据库基础知识.doc

    第1章 数据库基础知识 1 选择题 1、存储在计算机内有结构的相关数据的集合是〔 〕. 〔A〕数据库 〔B〕数据库系统 〔C〕数据库管理系统 〔D〕数据结构 2、下面有关对数据的理解,其中说法有误的是〔 〕. 〔A〕数据是指...

    《大规模分布式存储系统:原理解析与架构实战》PDF

    本书内容分为四个部分:基础篇――分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的数据分布、复制、一致性、容错、可扩展性等。...

    《大规模分布式存储系统:原理解析与架构实战》杨传辉

    《大规模分布式存储系统:原理解析与架构实战》内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的...

Global site tag (gtag.js) - Google Analytics