




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 分布式数据库系统产生予2 0 世纪7 0 年代,是数据库技术和计算机网络技术 发展的必然结果。通俗地讲,分布式数据库系统是指物理上分散而逻辑上集中的 数据库系统,其中,冗余的可控性是它的重要特点。所谓冗余的可控性,是指我 们可以根据具体应用的需要,控制数据的副本数目。例如,我们可以充分利用分 布式数据库的位置分布性,将数据的多个副本分别放在不同的节点,这样,即使 存放某个副本的节点崩溃,由于有其它副本在非故障节点上,所以对整个系统来 说还是可用的。尽管增加数据冗余可以提高数据的可用性,但当对数据库进行更 新时,为了保持数据库的一致性,必须对数据的所有副本同时进行更新。在这个 更新过程中,可能由于某种故障( 如网络) 使数据库处于不一致状态,这时,我 们必须通过某种恢复机制来恢复数据库的一致性。 d s q l 是基于m y s q l 实现、具有极高可靠性的分布式数据库。本文重点阐 述了d s q l 的恢复机制,但也对d s q l 的实现技术以及相关知识做了介绍。 关键字:分布式数据库;恢复,数据更新,冗余 a b s t r a c t d i s t r i b u t e dd a t a b a s es y s t e m ( d d b s ) i sp r o d u c e di nt h e7 0 so f2 1 “c e n t u r y , a sa r e s u ho ft h ed e v e l o p m e n to fd a t a b a s ea n dc o m p u t e rn e t w o r kt e c h n i q u e g e n e r a l l y s p e a k i n g ,d d b si saw h o l el o g i c a l l y , a l t h o u g hi t i sm a d e u po fm a n yg e o g r a p h i c a l l y s e p a r a t e ds i n g l ed a t a b a s es y s t e m t h ec o n t r o u a b i l i t yo fr e d u n d a n c y , b yw h i c hw e c a l l c o n t r o lt h en u m b e ro ft h e r e p l i c a i fn e e dt o ,i sa l l i m p o r t a n t c h a r a c t e r i s t i co f d d b s f o r e x a r n p l e ,w ec a l lp l a c ea l lt h er e p l i c ao nd i f e r e n tn o d e so fd d b s a l t h o u 曲 o n en o d ec r a s h e d ,t h es y s t e mi sa v a i l a b l eb e c a u s eo ft h eo t h e r r e p l i c ao n o t h e rn o r m a l n o d e s i ti sa p p a r e n tt h a ti n c r e a s i n gr e d u n d a n c yc a l li m p r o v et h ea v a i l a b i l i t yo fd a t a t oe n s u r et h ec o n s i s t e n c yo fd a t a b a s e w em u s t u p d a t e a l lt h e r e p l i c a a tt h es a m et i m e d u r i n gu p d a t i n g ,d a t a b a s em a yb ei n c o n s i s t e n tb e c a u s eo fs o m ee r r o r , f o re x a m p l e n e t w o r ke r r o r , s ow em u s tl p 圮o v e ri tb yt h e r e c o v e r ym e c h a n i s m o ft h ed d b s d s q l ,b a s e d o nm y s q l ,i sah i g h l yr e l i a b l ed d b s t h i sp a p e ri n t r o d u c e ss o m e i m p o r t a n tt e c h n i q u e s t o i m p l e m e n tt h ed s q la n dc o r r e l a t i v ek n o w l e d g e ,l a y i n g e m p h a s i s o nt h ep r i n c i p l eo f i m p l e m e n t i n gt h er e c o v e r ym e c h a n i s m k e y w o r d s :d d b sr e c o v e r y d a t a u p d a t i n gr e d u n d a n c y 分布式数据库系统d - s q l 中恢复机制的设计与实现 第一章引言 分布式数据库系统d d b s ( d i s t r i b u t e dd a t a b a s e s y s t e m ) 的研究始于2 0 世纪 7 0 年代,当时集中式的关系型数据库的研究继层次型和网状型数据库系统之后 已趋于成熟,相应的产品也已陆续推出。同时,计算机网络包括广域网和局域网 也在逐步推向应用,著名的如美国的a r p a n e t ,欧洲各国p 1 盯的x 2 5 网等。 在计算机硬件方面,小型机如p d p i1 及后继的v a x 机,特别是8 0 年代推出的 微机由于其相对价廉和量大面广而使计算机的应用得到了迅速普及。所有这些条 件为分布式数据库的研究和发展提供了前提条件。 8 0 年代是分布式数据库的研究最活跃的时期。在这期间,各先进国家都争先 恐后地提出自己的分布式数据库系统研究计划,如西德的p o r e l 系统,法国的 s i r i u s 计划等。在d d b s 领域的几个影响最大的几个先驱系统中,最重要的首 推c c a 公司为美国国防部研制的s d d 1 系统。s d d 一1 研制中提出的一些思想、 概念和方法如半连接( s e m i j o i n ) ,时戳( t u n e s t a m p ) 、分布式目录结构、可靠 通讯等对d d b s 领域的研究和原型系统的开发产生了非常重要的影响。 我国对分布式数据库系统的研究始于2 0 世纪8 0 年代初期,一些科研单位和 学校先后建立和实现了几个各具特色的分布式数据库系统。如由中科院数学研究 所设计,由该所和上海科学技术大学、华东师范大学合作实现的c p o r e l ,武 汉大学研制的w d d b s 和w o o d d b s ,东北大学研制的d m u f o 系统等等,他 们的工作对我国分布式技术的理论研究和应用开发起到了积极的推动作用。 随着计算机网络的飞速发展,特别是i n t e m e t 的普及,使得对分布式数据库 系统的研究和开发变得更加活跃,因此,分布式数据库具有极好的前景。目前, 由于新的应用领域的出现,如办公自动化,计算机辅助设计及制造等,以及计算 机相关学科与数据库技术的有机结合,如面向对象程序设计技术、多媒体技术、 并行处理技术、人工智能技术等。这定将促进分布式数据库向面向对象分布式数 据库、分布式智能库和知识库系统等广阔的领域发展。 第1 页 分布式数据库系统d s q l 中恢复机制的设计与实现 第二章数据库管理系统概述 随着计算机硬件、软件技术的飞速发展和计算机系统在各行各业的广泛应 用,数据已成为各种机构的宝贵资源,数据库系统对于当今的科研部门、政府机 关、企事业单位等来说都是至关重要的。 数据库系统的核心软件是数据库管理系统d b m s ( d a t a b a s em a n a g e m e n t s y s t e m ) 。它用于高效地创建和存储大量的数据,并对数据进行有效的管理、处 理和维护,是当前最复杂的系统软件之一。在7 0 年代,关系数据库的发展尤其 令人瞩目,所以,人们称7 0 年代是数据库时代。 之后,随着计算机网络的发展,数据库技术逐渐与计算机网络技术结合起来, 形成了又一新领域分布式数据库系统。分布式数据库系统管理的不是单个的 数据库系统,而是分布于许多不同场地、通过计算机网络连接起来的多个数据库 系统。8 0 年代是分布式数据库系统成长、完善并逐步走向实用化的时代。 本章内容主要包括两部分: 数据库管理系统中常见的术语和基本概念 分布式数据库系统中重要概念和技术 2 1 数据库管理系统概述 2 1 1 发展历史 数据库系统大约出现于2 0 世纪5 0 年代,它的发展大致可以分为五个阶段: 1 ) 文件系统阶段 文件系统是数据库系统的初级阶段,它出现于2 0 世纪的5 0 年代至6 0 年 代之间,它提供了简单的数据共享与数据管理功能,但它无法提供完整的统 一管理与数据共享能力,由于它的功能较为简单,一般它均为附属于操作系 统而并不成为独立的软件。目前,一般已将它看成仅是数据库系统雏形而并 不是真正的数据库系统。 2 )初级数据库系统阶段 自2 0 世纪的6 0 年代起各种数据库系统相继问世,它们是层次模型与网 状模型的数据库系统,它们为统一管理与共享数据提供了有力的支撑。这个 时期由于数据库系统的蓬勃发展,而形成了著名的“数据库时代”。当然,这 两种类型的数据库系统也有其一定的不足,最主要的是它们均脱胎于文件系 第2 页 分布式数据库系统d s o l 中恢复机制的设计与实现 统,因此,受文件中物理结构影响较大,给用户使用数据库时带来了诸多的 不便。同时,数据库中表示数据模式的结构方式过于繁琐,这也影响了数据 库应用中越来越多的对数据结构的复杂要求的实现。 3 )关系数据库系统阶段 关系数据库系统的理论出现于2 0 世纪7 0 年代初期,其系统形成于7 0 年 代后期并在8 0 年代它逐步取代层次型和网状型数据库成为占主导地位的数 据库,到目前为止,关系数据库系统仍占有数据库应用的主要地位。 4 )高级数据库系统阶段 由于计算机应用的发展,计算机已从传统的科学计算、事务处理等领域 逐步扩展到工程设计、统计、人工智能、多媒体、分布式等领域。这些新的 领域需要有新的数据库支撑,而传统关系数据库系统是以商业应用、事务处 理为背景而发展起来的。它并不完全适用于新领域的应用,因此,需要有新 的数据库系统以满足不同领域的要求。自2 0 世纪8 0 年代中期开始,各种适 应不同领域的新型数据库系统不断涌现,如工程数据库、多媒体数据库、c a d 数据库、图形数据库、图像数据库、智能数据库、分布式数据库以及面向对 象的数据库等,其中特别是面向对象数据库由于其通用性强,适应面广而受 到青睐。预计2 1 世纪初将会形成多种数据库系统共同支撑应用的局面。当然 在那时,关系数据库系统仍将是其中一支强有力的生力军。 2 1 2 存储层次 一个典型计算机系统包括几个不同的可以存储数据的部件,这些部件在存储 容量、访问速度、单位容量价格也各不相同,有的甚至相差几个数量级。存储器 的层次大致可以分为三级( 如图2 - 1 ) : 1 ) 第一级存储器 这类存储器的特点是访问速度快( 通常在1 0 纳秒级) ,容量相对较小, 如高速缓冲存储器、主存储器。高速缓冲存储器( c a c h e ) 是一种集成电路, 它能存放数据或机器指令;主存储器( 简称主存或内存) 是计算机的活动中 心,它是计算机最重要的部分之一。 2 ) 第二级存储器 这类存储器的访问较快,容量较大,如硬盘。 3 ) 第三级存储器 这类存储器的访问速度最慢,但是容量最大,如磁带存储器。磁带存储 器是一种采用顺序读写的存储设备,虽然访问速度慢,但容量巨大,可以达 第3 页 分布式数据库系统d s q l 中恢复机制的设计与实现 到t 级。 2 1 3 重要概念 2 1 3 1 索弓 索引对于大家并不陌生,如词典中的索引、文献中的词条索引中就包括了计 算机索引结构的基本原理。索引的基本构件是索引项。一个索引项中包含有关键 字指针和指针,通过指针我们可以找到包含关键字的记录,即一个索引项的结构 为:( 关键字值,指针) 。索引是由多个索引项构成,索引本身也是一个文件。 1 ) 稀疏索引 对于按关键字大小顺序连续排列的顺序文件而言,可按如下方式来组成 所谓稀疏索引:所有记录按关键字值进行分块,每块一个索引项,其格式为: ( 某块最后或最前一个记录的关键字值,该块的起始地址) ,然后将所有的索 引按关键字值j 顷序组成一个索引。这样的索引我们称之为稀疏索引。 2 ) 稠密索引 如果对每条记录均建立一个索引项,则其格式为:( 记录的关键字值,该 记录地址) ,再将所有的索引项按关键字的顺序排列,就组成了稠密索引。稠 密索引的最大优点是数据记录可任意存放,另外,增加或删除数据记录也比 较方便。但缺点是索引项太多。 3 ) b 一树 虽然一级和二级索引可以加快查询,但在商用系统中常使用一种更通用 的结构b 树( 这里的b - 树指的是b + 树) 。 b 一树是一种平衡的多路查找树,它在文件系统中很有用。一棵i t i 阶的b 一 树,或为空树,或为满足下列特性的m 叉树: 树中每个结点最多有m 棵树; 第4 页 。l 分布式数据库系统d s q l 中恢复机制的设计与实现 若根结点不是叶子结点,则至少有两棵子树; 除根之外的所有非终端结点至少有r n v 2j 棵子树; 所有的非终端结点中包含下列信息数据 ( n ,a 0 ,k 1 ,a 1 ,k 2 ,a 2 ,k n ,a n ) 其中,k i ( i = l ,n ) 为关键字,且k i k i + l ( i = 1 ,n 一1 ) ;a i ( i - - 0 ,n ) 为指向子树根结点的指针,且指针a i 一1 所指予树中所有结点的关键字均 小于k i ( i = l ,n ) ,a n 所指子树中所有结点的关键字均大于k n ,n ( m 2j 一1 n m - 1 ) 为关键字的个数( 或n + 1 为子树的个数) 所有的叶子节点都出现在同一层次,并且不带信息( 可以看作是外 部结点或查找失败的结点,实际上,这些结点不存在,指向这些结点的 指针为空) ; b 一树使我们能实现记录的查找、插入和删除,而每个文件操作只需很少 的磁盘i o 。 2 1 3 2 事务 事务是一个数据库应用中执行一个逻辑功能的操作集。事务和程序是两个完 全不同的概念。每一事务由一个命令对( b e g i n ,c o m m i t 或者r o l l b a c k ) 来界定。 事务具有a c i d ( a t o m i c i t y , c o r r e c t n e s s ,i s o l a t i o n ,d u r a b i l i t y ) 特性: 1 )原子性( a t o m i c i t y ) :事务是无内部构造的、不可分割的最小工作单元, 它的所有操作要么全部执行,要么一个也不执行,它们是一个整体。 2 )正确性( c o r r e c t n e s s ) :也叫一致性( c o n s i s t e n c y ) ,它指事务必须满足数 据库的完整性限制,且将数据库由一个一致性状态转变到另一个一致性状 态。 3 )隔离性( i s o l a t i o n ) :事务是彼此独立的、隔离的,一个事务对数据库的 变更的结果必须在它c o m m i t 后,另一事务才能存取。多个事务并发执行 的结果要等价于它们的一种顺序执行的结果。 4 )永久性( d u r a b i l i t y ) :已c o m m i t 的事务的结果在数据库中是永久的, 可以免于后来的故障的伤害。 2 13 3 完整性 数据库中完整性( i n t e g r i t y ) 一词指数据的正确性和相容性。大体上的完整 性可以分为四类: 第5 页 分布式数据库系统d s q l 中恢复机制的设计与实现 1 )类型约束指明给定类型的合法取值 2 )属性约束说明属性的合法取值 3 )关系变量约束说明关系变量的合法取值 4 )数据库约束说明数据库的合法取值 2 1 3 4 死锁 两个以上的事务循环等待被同组中另一事务锁住的数据单元的情形我们称 之为死锁。 2 2 分布式数据库系统概述 2 2 1 发展简史 分布式数据库系统d d b s ( d i s t r i b u t e d d a t a b a s es y s t e m ) 的研究始于2 0 世纪 7 0 年代。它是数据库技术和网络技术相结合的产物。美国计算机公司c c a 于1 9 7 9 年在d e c 1 0 和d e c 2 0 上实现了世界上第一个分布式数据库系统s d d 一1 ( s y s m m o fd i s t r i b u t e dd a t a b a s e ) 。 进入8 0 年代,随着计算机的广泛应用和计算机网络技术的进一步发展,分 布式数据库进入成长阶段。如德国的斯图加特大学研制的p o r e l 系统、美国m m 公司的s a nj o s e 研究室研制的r + 和s y s t e mr 等。 2 0 世纪9 0 年代,d d b s 已进入商品化应用阶段,分布式数据库已经成熟并 得到广泛应用。 2 2 2 分布式数据库标准 1 9 8 7 年,关系数据库的最早设计者之一c j d a t e ,提出了完全的分布式数据 库管理系统应遵循的1 2 条规则,这1 2 条规则现已被广泛接受,并作为分布式数 据库的标准定义: 场地自治性( l o c a la u t o n o m y ) 非集中式管理( n o r e l i a n c eo n c e n t r a ls i t e ) 高可用性( c o n t i n u o u so p e r a t i o n ) 位置独立性( l o c a lt r a n s p a r e n c ya n dl o c a li n d e p e n d e n c e ) 数据分割独立性( f r a g m e n t a t i o ni n d e p e n d e n c e ) 第6 页 分布式数据库系统d s q l 中恢复机制的设计与实现 数据复制独立性( r e p l i c a t i o ni n d e p e n d e n c e ) 分布式查询( d i s t r i b u t e dq u e r yp r o c e s s i n g ) 分布式事务管理( d i s w i b u t e dt r a n s a c t i o nm a n a g e m e n t ) 硬件独立性( h a r d w a r e i n d e p e n d e n c e ) 操作系统独立性( o p e r a t i o ns y s t e mi n d e p e n d e n c e ) 网络独立性( n e t w o r k i n d e p e n d e n c e ) 数据库管理系统独立性( d b m si n d e p e n d e n c e ) 2 2 3 分布式数据库的定义及特点 分布式数据库,通俗地讲,是物理上分散而逻辑上集中的数据库系统。分布 式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程度集 中的多个逻辑单位连接起来,共同组成一个统一的数据库系统。 分布式数据库具有很多特点,举例如下: 物理分布性 逻辑整体性 站点自治性 数据独立性 事务管理的分布性 冗余的可控性 2 2 4 事务的可串行化理论 可串行性通常作为多个事务执行的正确性准则。更精确地说,多个事务的某 个执行过程是正确的,当且仅当其是可串行化的( 如果多个事务的某个执行过程 与同样的这些事务的某个串行执行过程产生的结果相同,则称其为可串行化的) 。 可串行性判断方法如下: 1 )各单个事务如能将数据库从一个正确状态转变为另一个正确状态,就认 为其是正确的。 2 )按任何一个串行顺序依次运行多个事务也认为是正确。这里串行顺序可 为“任何一个”,是基于各单个彼此间相互独立的假定。 3 )交错执行过程是正确的,当且仅当其与某个串行执行过程等价,即是可 串行化的。 第7 页 分布式数据库系统d - s q l 中恢复机制的设计与实现 2 2 5 两阶段提交协议 两阶段提交协议简称2 p c ( t w o p h a s ec o m m i t m e n tp r o t o c 0 1 ) 协议。该 协议的基本思想是全部的参与者做出提交或中止全部局部子事务的决定,如 果有一个或一个以上参与者不能提交其子事务,则全部局部子事务中止。分 布式事务提交是当且仅当其全部子事务都能提交。( 详见5 2 1 ) 第8 页 分布式数据库系统d s q l 中恢复机制的设计与实现 第三章m y s q l 概述 m y s q l 是一个真正的多用户、多线程s q l 数据库服务器。s q l ( 结构化查 询语言) 是世界上最流行的和标准化的数据库语言。m y s q l 是以一个客户机, 服务器结构的实现,它由一个服务器守护程序m y s q l d 和很多不同的客户程序和 库组成。 s q l 是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你 能用s q l 语言为一个网站检索产品信息及存储顾客信息,同时m y s q l 也足够 快和灵活以允许你存储记录文件和图像。 m y s q l 主要目标是快速、健壮和易用。m y s q l 的产生是因为设计者需要这 样一个s q l 服务器,它能处理快速大型数据库。m y s q l 建立的基础是业已用在 高要求的生产环境多年的一套实用例程。尽管m y s q l 仍在开发中,但它已经提 供一个丰富和极其有用的功能集。 当运行m y s q l 服务器时,确保用户所存储的数据的安全性是很重要的。 m y s q l 服务器不仅提供内部的安全访问机制安全数据目录访问,还提供外 部的安全访问机制m y s q l 服务器在建立用户账号时授予适当的权限,这样, 通过网络连接到服务器的用户只允许做他们应该做的事情。 3 1 m y s q l 简介 m y s q l 是目前最流行的关系数据库管理系统( r d b m s ) 。它起源于斯堪的纳 维亚地区的一个s q l 客户机绡匪务器关系数据库管理系统,目前比较稳定的版本 是3 2 3 x om y s q l 是g n u 软件( 即o p e n s o u r c e 自由软件) 中优秀的数据库系 统,它完全符合s q l 9 2 ( e n t r yl e v e l ) 和o d b c ( 1 e v e l0 - 2 ) 规范,在符合p o s i x 规范的操作系统上实现了非常高效的关系型数据库管理系统。 3 1 1m y s q l 软件包组成 m y s q l 软件包主要包括三部分:m y s q l 服务器、为开发者提供的编程接口 和一组实用程序。分别介绍如下。 1 ) m y s q l 服务器,它是一个d a e m o n 程序,为m y s q l 用户提供服务。 2 )编程接口,m y s q l 为开发者提供了基于各种开发语言的编程接口,如c a p i 、p e r l a p i 以及p h p a p i 等。 第9 页 分布式数据库系统d s q l 中恢复机制的设计与实现 3 ) 实用程序,实用程序是一些小巧、但功能强大的小程序,如m y s q l 、 m y s q l a c c e s s 等,正是这些精巧的小程序对m y s q l 的广泛应用起了不小的推 动作用。表3 - 1 列出了常用的实用程序。 表3 - 1m y s q l 的主要实用程序 实用程序名称主要功能 m y i s a m e h k描述、检查、优化和修复m y s q l 表的实用程序 m s q l 2 m y s q l 一个外壳脚本,转换m s q l 程序到m y s q l m y s q l m y s q l 是一个简单的s q l 外壳,它支持交互式和非交互式使用 n a y s q l a c c e s s一个脚本,检查对主机、用户和数据库组合的存取权限 m y s q l a d m i n执行管理操作的实用程序 m y s q l d u m p以s q l 语句或定位符分隔的文本文件将一个m y s q l 数据库倾倒一个文件 m y s q l i m p o r t使用l o a d d a t a i n f i l e 将文本文件倒人其各自的表中 m y s q l s h o w显示数据库、表、列和索引的信息 m y s q li n s t a l l _ d b以缺省权限创建m y s q l 授权表 s a f e _ m y s q l d一个脚本,用某些更安全的特征启动m y s q l d 守护进程 3 1 2m y s q l 的特性 与其它数据库管理系统相比,m y s q l 不仅速度快、综合性能好,而且易使 用、安全性高、可移植性强。 i )使用核心线程的完全多线程,并对s m p 系统提供较强的支持。 2 )支持多种开发语言,如c 、c + + 、e i f f e l 、j a v a 、p e r l 、p h p 、p y t h o n 等。 3 )可移植性强,可运行在不同的平台上,如a i x4 x 、d e cu n i x4 x 、 f r e e b s d2 x 、h p - u x1 1 x 、l i n u x 、m a c o sx 等。 4 )一个非常灵活且安全的权限和口令系统,并且它允许基于主机的认证。 口令是安全的,因为当与一个服务器连接时,所有的口令传送都被加密。 5 )支持o d b c ( 所有的o d b c2 5 函数和其他许多函数) 。例如,你可以 用a c c e s s 连接你的m y s q l 服务器。 6 )大数据库处理。实验证明,数据库包含5 0 , o o o ,0 0 0 条记录也可正常运行 7 ) 全面支持i s o 8 8 5 9 1l a t i n l 字符集,所有数据以i s o 8 8 5 9 1 l a t i n l 格式保存。 8 )服务器能为客户提供多种语言的出错消息。 9 )客户端可以使用t c p i p 连接、u n i x 套接字( s o c k e t ) 或n t 下的命名管 道连接m y s q l 服务器。 3 1 3m y s q l 的局限性 m y s q l 是一种速度很快的数据库。但是,它的高速度却是以简化、甚至牺 第l o 页 分布式数据库系统d s q l 中恢复机制的设计与实现 牲某些功能为代价。具体表现在以下几方面: 1 )不支持子选择。在m y s q l 中下列语句还不能工作: s e l e c t f r o mt a b l e lw h e r ei di n ( s e l e c ti df r o m t a b l e 2 ) ; 2 ) 不支持事务处理。 3 )不支持存储过程和触发器。存储过程是能在服务器中编译并存储的一套 s q l 命令。一旦这样做了,顾客不需要一直重新发出全部查询,而可以参考 存储过程。因为查询仅需一次词法分析并且只有较少的信息需要在服务器和 客户之间传送,因此这提供了更好的性能。触发器是当一个特别的事件发生 时,被调用的一个存储过程。例如,你可以安装一个存储过程,它在每次从 一个交易表删除一条记录时触发,并且当它所有交易被删除时,自动地从一 个客户表中删除相应的客户。计划修改的语言将能处理存储过程,但是没有 触发器。触发器通常使每件事情变慢。 4 )不支持外键,在s q l 中外键不用于联结表,而主要用于检查参考完整性 ( r i ) 。 5 )不支持视图,视图是在一个或多个表中查询数据的一种方式。视图是由 来自一个或多个表的数据项组成的虚拟表,通常用这些表都拥有的某个或多 个键连接而成。 3 1 4m y s q l 支持的表类型 m y s q l 支持多种表类型,如i s a m 、m y l s a m 、h e a p 、b d b 、i n n o d b 等。 为了支持多种表类型,m y s q l 提供了一个通用的h a n d l e r 接口。随着m y s q l 的 进一步应用,相信会有更多的表类型被支持。图3 - 1 描述了m y s q l 与底层的各 种表的关系。 图3 - 1 m y s q l 与多种表类型 第1 1 页 分布式数据库系统d - s q l 中恢复机制的设计与实现 3 2m y s q l 的总体架构 m y s q l 是一种采用客户机,服务器架构的网络数据库。m y s q l 的客户端可以 从网络的任何地方访问并操作数据库,只要它具有合法的权限。m y s q l 服务器 为每个客户创建一个专门的处理线程,多个客户之间的并行操作并不会互相影 响,也就是说,在每个客户看来,他都好象是在“独占”数据库。图3 - 2 描述了 m y s q l 的客户杌服务器体系结构。 图3 - 2m y s q l 的客户栅服务器结构 在m y s q l 服务器中,有一个很重要的结构n d 结构。每个t h d 结构 对应一个m y s q l 用户,它几乎包含了与该用户相关的所有信息,如连接信息、 在服务器执行s q l 操作的相关信息等。 从功能上来划分,m y s q l 服务器- - i l :a 大致分为三部分:连接处理部分、数 据库查询处理部分和底层表处理模块( 如图3 3 所示) 。 l连接处理模块 f用户查询处理摸块 0 i底层表操作 图3 - 3 m y s q l 服务器的功能模块 第1 2 页 分布式数据库系统d s q l 中恢复机制的设计与实现 3 2 1 连接处理模块 在m y s q l 连接处理模块中,包含了一个重要的部分一外部安全检查机制。 外部安全检查主要负责检查连接到服务器的用户权限,如果该用户是非法用户, 则拒绝连接。 3 2 1 1m y s q l 的权限 m y s q l 的权限可以用一个双字节整数表示所有可能权限,其中,每位对应 一种权限,如第o 位对应s e l e c t 权限、第1 位对应i n s e r t 权限等。表3 - 2 列出了 m y s q l 用户可能具有的所有权限。 表3 - 2m y s q l 的用户权限 权限说明 a l 【酿 允许使用a l t e rt a b l e 语句 数c r e 舳 允许创建数据库和表这个权限不允许您创建索引 据d e u m 允许从表中删除已有记录 库 d r o p 允许删除数据库和表。不允许删除索引 和 岫e ) 【 许创建或删除表的索; 表 d 幅e i r r 允许在表中插入新的记录 权 r e f 】既m n c e s 未使用 限 s e u b ( 玎 允许用s e l e c t 语句从表中检索数据 u p d m u p d a t e 允许修改表中的已有记录 管 f 耻 允许服务器在服务器主机上读写文件 理g r a n t 允许将您所拥有舶权限授予其他用户 权 p r o c e s s 允许通过使用查询有关正在服务器中运行的线程信息 限 r e l o a d 允许执行多种服务器管理操作 s h u l d o w n 允许利用m y s q l a d m i ns h u t d o w n 关闭服务器 3 2 1 2m y s q l 授权表的结构和内容 授权表中包含两种类型的列:作用域列( s c o p ec o l u m n ) 和权限列( p r i v i l e g e c o l u m n ) ,前者决定一个项何时可用,后者决定一个项可授予哪些权限。 1 )授权表的作用域列 授权表作用域列指定表项何时使用。每个授权表项中都包含u s e r 和 h o s t 列,以指明该项在特定的用户从特定的主机上连接时应用( h o s t 表是 一个例外,它被用于一种特定的、我们还未接触过的方法中) 。其他表中包含 附加的作用域列。例如,d b 表中包含一个d b 列以指明该项适用于哪个数 据库。同样,t a b l e s _ p r i v 和c o l u m n s _ p r i v 表中包含使该作用域对数据库中 特定表或表中的列缩小的作用域字段。 2 )授权表权限列 第1 3 页 分布式数据库系统d - s q l 中恢复机制的设计与实现 授权表中还包含权限列。这些列指明了哪些权限被在作用域列中指定的 用户所拥有。m y s q l 支持的权限显示在表3 - 2 中。 下面是几个主要授权表: 1 ) u s e r 表 该表列出哪些主机( h o s t ) 、用户( u s e r p a s s w o r d ) 可连接到服务器。如果 不是超级用户( r o o t ) ,需要指出该用户拥有的全局权限。 2 ) d b 表 该表列出数据库以及哪些用户拥有访问这些数据库的权限。这里指定的 权限适用于数据库中所有的表。但管理权限仅包含g r a n t 权限。 3 ) h o s t 表 h o s t 表与d b 表结合使用,在更细的级别上控制对特定主机的数据库访 问权限。该表不受g r a n t 和r e v o k e 语句的影响。但管理权限仅包含 g r a n t 权限。 4 ) t a b l e s _ p r i v 表 该表指定表级的权限。在这里所指定的权限适用于表中所有的列。 5 ) c o l u m n s _ p r i v 表 该表指定列级的权限。在这里所指定的权限适用于表中特定的列。 3 2 1 3 服务器控制客户端的访问 1 ) 连接控制阶段 在连接服务器时,服务器查找u 8 e r 表看看是否能够找到与用户名、正在 连接的主机以及所提供的口令相匹配的项。如果不匹配,则不能连接。 2 ) 会话阶段 对于客户端发布的每个查询,服务器都会检查授权表以查看您是否具有 充足的权限来执行该查询。这个过程如下: 在开头进行连接以查看所拥有的全局权限时,服务器检查相匹配的 u s e r 表项。如果有全局权限且满足该查询,则服务器执行查询。 如果全局权限不满足,则服务器在d b 表中寻找一个项,并将该项的 权限增加到您的全局权限中。若结果满足该查询,则服务器执行查询。 如果全局和数据库级权限的组合不够,服务器将保持不断地查找,首 先在t a b l e s _ g r i v 表中,然后在c o l u m n s _ p r i v 表中查找。 第1 4 页 分布式数据库系统d s q l 中恢复机制的设计与实现 如果在所有表检查后发现您没有许可权,服务器将拒绝执行查询。 3 2 2 用户查询处理与底层表操作 当连接建立以后,m y s q l 会向服务器发送数据操作请求,服务器在接收到 请求后,首先检查该用户是否具有该权限,然后在决定是否执行数据操作请求。 具体的交互过程如图3 3 所示。 r 。;磊一 l_ r i 1操作权限检查 士 i语法、词法分析 l查询计划生成 l通用的h 蚰m 盯接口 t 一 i | 畏据具体的表类型,调用相l i应的底层表操作函数l 图3 - 3 m y s q l 的用户查询处理 第1 5 页 分布式数据库系统d s q l 中恢复机制的设计与实现 第四章i n n o b a s e 数据库 作为世界上最快的数据库之一,i r m o b a s e 数据库( 简称i n n o d b ) 是在h e i k k i t a u r i l 博士领导下开发成功。但是,直到2 0 0 1 年3 月,i n n o d b 才作为m y s q l 源码的一部分,在g n ug p l 的规范下发布了,成为m y s q l 所支持的数据库家 族中一员。 i n n o d b 不仅处理速度快,而且性能也相当优异。在处理大量的数据时, i n n o d b 能获得最优的性能,因为这是l n n o d b 的设计目标。i n n o d b 具有如下突 出的特点: i n n o d b 向m y s q l 提供了一种事务安全( t r a n s a c t i o n s a f e ) 表处理程序具有提 交、回滚和崩溃恢复的能力。 i n n o d b 支持记录级锁定。 为了提供事务处理的并发性,n n o d b 采用一种类似于o r a c l e 的技术非锁定的 一致性读技术( n o n - l o c k i n g c o n s i s t c n tr e a d ) 。 在本章中,我们将先介绍i n n o d b 服务器的整体构架,然后再详细阐述i n n o d b 的文件系统、文件空间管理、日志管理以及恢复机制等。 4 1i n n o d b 服务器的构架 和网络数据库m y s q l 相似,i n n o d b 服务器也采用客户机,服务器构架,如图 4 1 所示: j上层m y s q l 服务器 用户秣j rt 果 型剖刨 i n n o d b 服务器 图4 - 1l n n o d b 服务器构架图 1 h c i k k it u u r i ,生于1 9 6 4 年,曾于1 9 9 0 年获得赫尔辛基大学数学逻辑专业的博士学位。在1 9 9 3 1 9 9 5 年 间,h e i k k ln 嘶在赫尔辛基大学计算机系工作,做高性能数据库技术方面的研究工作。在1 9 9 5 年,h e i l d d t u u r i 创建了l n n o b a s co y 公司。在2 0 0 0 年9 月,i n n o h a s eo y 公司开始和m y s q la b 合作,它们的接口模 块在2 0 0 0 年9 月到2 0 0 1 年3 月之间完成。 第1 6 页 分布式数据库系统d s q l 中恢复机制的设计与实现 在图4 1 中,i r m o d b 服务器是通过通讯末端2 ( c o m m u n i c a t i o n se n d p o i n t s ) 和 上层的m y s q l 服务器通信的。在i n n o d b 中,为用户提供查询服务和处理控制 台输入服务的线程被称为“用户”线程,它们运行在普通优先级。服务器可能有 几个通讯末端,也可能有许多用户线程正在等待其中某个通讯末端就绪,l 三l 便可 以接收客户请求。当接收到一个用户请求后,用户线程开始处理请求,处理完毕 后将结果返回给客户并重新回复到等待状态。 并行通信线程也是用户线程中的一种。它的主要职责是分离查询,然后并行 地处理它们。 除用户线程外,i r m o d b 服务器还存在一个主线程,以较高优先级运行。但它 大多数时候处于睡眠状态,然后每隔一定时间被唤醒( 如3 0 0 毫秒) ,被唤醒的 主线程负责检查系统中是否需要干预。比如,当需要刷新缓冲池中的“脏”数据 块,或者清除旧版的数据库行等。 还有一组实用线程,它们主要处理缓冲池的刷新以及其它一些后台操作。这 些线程比正常优先级还低。但是,当某些线程的任务变得紧急后,它们的优先级 也可以动态调整( 甚至比正常优先级还高) 。正在运行的实用线程可以通过最高 和最低点的紧急度来控制,而紧急度可以通过缓冲池中的“脏”块数目来度量。 例如,对于刷新线程,当超过最高点时,实用线程开始运行。当紧急度下降到最 低点,实用线程挂起自己,并等待事件通知。当需要实用线程运行时,主线程负 责发信号通知它。 对于某些实用线程,它的优先级可能一直低于正常优先级。当系统负载突然 下降时,优先级正常或更高的线程不一定能完全使用系统,这时,实用线程开始 运行,以提高系统的利用率。 4 2i n n o d b 的文件系统 i n n o d b 有一套它自己的专用文件系统 日志文件,归档文件以及它们所占的空间 它的主要成员含义如下: l a l u t e x :保护该结构的互斥量 s p a c e s :文件空间h a s h 表 l r u :所有打开文件的l r u 链表 n _ o p e n _ p e n d i n g :所有被阻塞的文件数目 它主要管理数据文件( 如表文件) 、 但它不涉及具体的物理空间的管理。 2 对于每个用户请求,和专用的通信线程相比,通信末端可以节省一个线程切换( t h r e a ds w i t c h ) ,这在某种 情况下是非常重要的。 第1 7 页 分布式数据库系统d - s q l 中恢复机制的设计与实现 m a x _ n _ o p e n :能够打开的最大文件数( 默认为2 5 个) c a n _ o p e n:系统打开的文件是否已经到了最大值标志 s p a c e _ f i s t:所有文件系统空间链表 文件系统的具体结构如图4 2 所示: 文件结点1文件结点2 文件名称文件名称 修改标志修改标志 文件句柄 文件旬柄 文件系统结构 文件空间结点1文件空间结点2 打开文件的l r u 链表空间名称、id空间名称、id 文件空间哈希表空问类型及大小空间类型及大小 文件空间链表该空间文件链表该空间文件链表 i n s e r t 缓冲区i n s e f t 缓冲区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校楼层长管理制度
- 学校防恐怖管理制度
- 学生封闭化管理制度
- 学院服装间管理制度
- 安全生产个管理制度
- 安委会工作管理制度
- 安装部进度管理制度
- 完善请休假管理制度
- 实木床仓库管理制度
- 客户满意度管理制度
- 人文英语4-005-国开机考复习资料
- 公司安全事故隐患内部举报、报告奖励制度
- 中国玉石及玉文化鉴赏智慧树知到期末考试答案章节答案2024年同济大学
- 网络集成实践报告
- 小学思政课《爱国主义教育》
- 有趣的行为金融学知到章节答案智慧树2023年上海海洋大学
- 民办学校办学章程(营利性)
- 机关妇委会换届选举工作基本程序
- 零件加工检验标准
- UML网上购物系统课程设计DOC
- 怀化职业技术学院就业工作管理制度汇编 (一)
评论
0/150
提交评论