数据库05-第五章5节_第1页
数据库05-第五章5节_第2页
数据库05-第五章5节_第3页
数据库05-第五章5节_第4页
数据库05-第五章5节_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 5 5 章章数据库的安全与保护数据库的安全与保护5.1 安全与保护概述 5.2 数据库的安全性保护5.3 数据库的完整性保护5.4 数据库的并发控制技术 5.5 数据库的恢复技术 5.6 数据库的复制与相关技术5.5 数据库的恢复技术 什么是数据库的恢复故障的种类故障对数据库的破坏性恢复技术5.5 数据库的恢复技术 计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏等不可避免不可避免。 轻者造成运行事务非正常中断,影响数据库中数据的正确性和一致性,重者使数据库中全部或部分数据丢失。 数据库的恢复: 把数据库从错误(不一致)状态恢复到某一已知的正确(一致)状态的过程。5.5 数

2、据库的恢复技术 数据库恢复子系统:DBMS中的一个重要组成部分,且相当庞大,常常占整个系统代码的百分之十以上。 各种现有数据库系统运行情况表明,数据库系统所采用的恢复技术是否行之有效,不仅对系统的可靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的重要指标。是衡量系统性能优劣的重要指标。5.1.1 故障的种类 1) 事务故障 2) 系统故障 3) 介质故障 4) 病毒破坏 5) 故障对数据库的破坏性1) 事务故障 事务在运行过程中事务在运行过程中由于某种原因,如输入错误、运算溢出、违反了某些完整性约束条件、某些应用程序出错、并行事务发生死锁等等,使事务尚未运行完成或提

3、尚未运行完成或提交就中断交就中断了,这种情况称为事务故障。2) 系统故障 系统在运行过程中系统在运行过程中,由于某种原因,如操作系统或DBMS代码错误、操作员操作失误、特定类型的硬件错误(如CPU故障)、突然停电等造成系统停止运行,致使所有正在运行的事正在运行的事务务都以非正常的方式终止非正常的方式终止. 问题:内存中数据库区的信息全部丢失,但存储在外部设备上的原有数据并未受到影响,但数据库可能处于不一致状态,这种情况称为系统故障。3) 介质故障 系统在运行过程中系统在运行过程中,由于某种原因,如磁盘损坏、瞬时强磁场干扰、操作系统的某种潜在错误,使存储在外存储器中的数据部分丢失或全部丢失存储在

4、外存储器中的数据部分丢失或全部丢失。这种情况称为介质故障。 这种故障比前两类故障发生的可能性要小的多,但所造成的破坏最大。4) 病毒破坏 计算机病毒是一种人为编制的、能引起计算机系统故障、甚至破坏整个计算机系统的程序。这种程序与其它程序不同之处是,它能象微生物学所称的病毒一样繁殖和传播,并造成对计算机系统包括数据库的危害。 计算机病毒对数据库的破坏本质上是一种人为人为的破坏的破坏。5)故障对数据库的破坏性 数据库系统中的各类故障对数据库的影响概括起来主要有两类: (1) 数据库结构被破坏:一般病毒故障及介质故障引起,比较严重。 (2) 数据库结构没有被破坏,但数据库中数据的一致性遭到破坏,一般

5、由系统故障及事务故障引起。5.5.2 恢复技术 数据恢复:利用存储在系统其它地方的冗余数据来修复数据库中被破坏的不正确或不一致的数据。 恢复机制涉及两个关键问题: 1)如何建立冗余数据? 最常用方法: 数据转储和日志文件 。 2)如何利用冗余数据实施数据库恢复? 这是数据恢复策略和方法问题。 5.5.2 恢复技术1、数据转储 (1) 数据转储的定义 (2) 数据转储的分类 (3)怎样确定适当的转储周期与转储方法(1) 数据转储的定义 数据转储:数据转储:由DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来形成 备用数据文件的过程。 备用的数据文件也称为后备副本或后援副本后备副本或后援副本

6、。 数据转储是数据库恢复中最常用的基本技术。 当数据库遭到破坏后就可以利用后备副本把数据库恢复到某个一致性状态。(2) 数据转储的分类静态转储和动态转储 。数据库状态海量转储与增量转储。 转储数据量静态转储和动态转储静态转储:转储期间不允许对数据库有任何操作(包括存取、修改等)活动。 静态转储比较简单,但降低了数据库的可用性。因为转储要等到用户事务全部结束后才能进行,且新的事务必须等待转储结束后才能执行。动态转储:在转储期间允许对数据库进行存取等操作,即数据转储和用户事务可并发执行。 动态转储可以克服静态转储的缺点,转储工作可随时进行,但实现技术要求较高。因为转储操作与用户事务并行执行,不容易

7、保证转储结束时后备副本上数据的一致性。海量转储与增量转储海量转储:每次转储数据库的全部数据。增量转储:每次只转储数据库中上次转储以来所产生变化的那些数据,即数据库中的数据只转储其修改过的物理块。这样转储的数据量少,也不必花很多时间,但为减少事故发生时更新丢失,需经常转储。 比较:海量转储数据量大,不易进行。 增量转储数据量少,但要经常转储。怎样确定适当的转储周期与转储方法 当数据库遭破坏时时,最简单的方法就是以后备副本来恢复数据库。 要经常地进行数据转储,因为后备副本越接近故障发生点,恢复起来越方便、越省时。但数据转储十分耗费时间和资源的,不可能频繁进行。 DBA应该根据数据库的使用情况确定适

8、当的转储周期和转储方法。例如,每天晚上或每周进行动态增量转储,每月进行一次海量转储等。5.5.2 恢复技术2、日志文件 (1) 日志文件的作用 (2) 日志文件的分类 (3) 日志文件的登记原则 (1) 日志文件的作用 建立日志文件是数据库系统采取的另一种数据冗余措施。 日志文件是记录每一次对数据库进行更新操作的文件,该文件由DBMS自动建立和记录。 文件中包括的内容有:事务名称、操作的时间、操作类型、修改前数据值以及修改后数据值等等;还有事务的开始,提交(COMMIT)及回滚(ROLLBACK)等执行情况记录。(1) 日志文件的作用 在动态转储方式中必须建立日志文件,后备副本和日志文件综合起

9、来才能有效地恢复数据库。 在静态转储方式中也可以建立日志文件。 当数据库毁坏后可重新装入后备副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。 这样不必重新运行那些在转储前已完成的事务程序就可把数据库恢复到故障前某一时刻。利用静态转储副本和日志文件进行恢复利用静态转储副本和日志文件进行恢复 静态静态转储转储 运行事务运行事务 正常运行正常运行 Ta Ta Tb Tb Tf Tf 重装后备副本重装后备副本 利用日志文件恢复利用日志文件恢复 继续运行继续运行恢复恢复 (2) 日志文件的分类日志文件主要有两种格式: 1)

10、以记录为单位的日志文件 2) 以数据块为单位的日志文件 1) 以记录为单位的日志文件 以记录为单位的日志文件,需要登记如下内容: 各个事务的开始(BEGIN TRANSATION)标记; 各个事务的结束(COMMIT或ROLLBACK)标记; 各个事务的所有更新操作; 以上信息作为日志文件中的一个日志记录登记在日志文件中。日志记录一个日志记录的主要内容为: 事务标识(标明是那一个事务); 操作的类型(插入、删除、修改); 操作对象; 更新前数据的旧值(对插入操作,此项为空值); 更新后数据的新值(对删除操作,此项为空值);2)以数据块为单位的日志文件 以数据块为单位的日志文件,只要某个数据块中

11、有数据被更新,就要将整个块更新前和更新后的内容放入日志文件中。(3)日志文件的登记原则 日志文件登记时必须遵循两条原则: 严格按照并行事务执行的时间次序登记; 必须先写日志文件,后写数据库;下面将说明为什么必须这样。(3)日志文件的登记原则 把对数据的修改写到数据库中和把登记这个修改的日志记录写到日志文件中是两个不同的操作。 计算机有可能在这两个操作之间发生故障,即这两个操作只完成了一个。如果先写了数据库修改,而日志文件中没有登记下这个修改,则以后就无法恢复这个修改了。 如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的REDO操作,并不会影响数据库的正确性。 为了安全

12、起见,一定要先写日志文件,即首先把操作记录写到日志文件中,然后才把操作结果写到数据库中。5.5.2 恢复技术3、恢复策略 利用数据库后备副本和日志文件可将数据库恢复到故障前的某个一致性状态,但不同的故障其恢复策略和恢复技术通常是不一样的。 (1) 事务故障的恢复 (2 )系统故障的恢复 (3 )介质故障的恢复 (4) 病毒故障的恢复 (5)数据恢复的一般过程(1)事务故障的恢复 发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘。 恢复程序要在不影响其它事务运行的情况下,强行回滚该事务,即清除该事务对数据库的所有修改,使得这个事务像根本没有启动一样。 这类恢复操作称为事务撤消(UND

13、O)。(1)事务故障的恢复 1)反向扫描日志文件(从日志文件末尾开始扫描),查找该事务的更新操作。 2)对该事务的更新执行逆向操作,即将日志文件记录中“更新前的值”写入数据库。 3)继续反向扫描日志文件,查找该事务的其它更新操作,并做同样处理。 4)如此处理下去,直至读到此事务的开始标记,事务故障恢复就算完成了。 事务故障的恢复是系统重新启动后由DBMS自动完成的,不需要用户干涉。(2)系统故障的恢复系统故障造成数据库不一致状态的原因系统故障造成数据库不一致状态的原因l未完成事务对数据库的更新已写入数据库未完成事务对数据库的更新已写入数据库l已提交事务对数据库的更新还留在缓冲区没来得及已提交事

14、务对数据库的更新还留在缓冲区没来得及写入数据库写入数据库恢复方法恢复方法l1. Undo 1. Undo 故障发生时未完成的事务故障发生时未完成的事务l2. Redo 2. Redo 已完成的事务已完成的事务系统故障的恢复由系统在系统故障的恢复由系统在重新启动时重新启动时自动完成,不需要用自动完成,不需要用户干预户干预(2)系统故障的恢复步骤 1) 正向扫描日志文件,找出在故障发生前已经提交的事务,并将这些事务标记记入重做队列。同时还要找 出 故 障 发 生 时 尚 未 完 成 的 事 务 ( 只 有 B E G I N TRANSACTION记录,没有相应的COMMIT记录),并将这些事务标

15、记记入撤消队列。 2) 对撤消队列中的各个事务进行撤消(UNDO)处理:反向扫描日志文件反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作。 3) 对重做队列中的各个事务进行重做(REDO)处理:正向扫描日志文件正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。(3)介质故障的恢复(1)重装数据库 装入数据库发生介质故障前某个时刻的数据库后备副本(2)重做已完成的事务 重新执行自此时开始的所有成功事务,将这些事务已提交的结果重新记入数据库。介质故障的恢复需要DBA介入 但DBA只需要重新装入最近转储的数据库后备副本和有关的日志文件副本,然后执行系统提供的恢复命令即可,具体的

16、恢复操作仍由DBMS自动完成。(3)介质故障的恢复步骤 1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时刻的一致性状态。n对于静态转储的数据库副本,装入后数据库即处于一致性状态n对于动态转储的数据库副本,还须同时装入转储时刻的日志文件副本,利用与系统故障恢复相同的方法(即REDO+UNDO),将数据库恢复到一致性状态。 2)装入转储结束时刻的日志文件副本,重做已经完成的事务。l即扫描日志文件,找出故障发生时已提交的事务的标记,将其记入重做对列;l然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。这样就可以将数据库恢复到故障前某一时刻的一致状态。(4)病毒故障的恢复 计算机病毒

17、对数据库可能造成的破坏,其破坏的结果不会超过事务故障、系统故障和介质故障的范畴。 当数据库被计算机病毒破坏后,恢复方法除了重新启动之前要先杀毒以外,其它恢复步骤与前面介绍的三种方法之一相同。数据恢复的一般过程 1)做数据拷贝工作:将数据库后备副本拷贝到数据库系统中。 2)做事务恢复第1步:检查日志文件,确定哪些事务已执行结束,哪些尚未结束。 3、做事务恢复第2步:对尚未结束的事务作撤消处理,对已执行结束的事务按日志的记录重做。 经以上三步即可完成恢复工作,有些工作要由DBA负责参与完成。5.5.3 检查点机制 上节介绍事务故障和系统故障的恢复都必须搜索日志,确定需要REDO和UNDO的事务。而

18、对于一个运行较长时间的数据库系统来说,势必需要检查所有日志记录,产生如下问题: (1)搜索整个日志将耗费大量的时间; (2)很多需要REDO的事务实际上早已将它们的更新操作结果写到数据库中,如果恢复子系统再重新执行这些操作会浪费大量时间。 5.5.3 检查点机制 检查点机制:通过设置日志文件的检查点,来最大限度地减少数据库完全恢复时需要扫描日志文件的时间。 检查点(checkpoint):日志文件中一条特殊的日志记录(也称为检查点记录),该记录由数据库恢复子系统定期地自动生成和维护。 系统故障发生后实施数据库恢复时,将系统失败时刻之前的第一个检查点作为扫描日志文件的开始位置,就可避免扫描整个日

19、志文件。 5.5.3 检查点机制 检查点记录的内容包括: 1) 建立检查点时刻所有正在执行的事务清单。 2) 这些事务最近一个日志记录的地址。 事务系统失败检查点k+1T1T2T3.T4T5运行时间需要重作的事务需要回滚的事务修改已写入数据库的事务检查点k5.6 5.6 数据库的复制与相关技术数据库的复制与相关技术5.6.1 数据库的复制5.6.2 数据库的镜象5.6.3 RAID技术简介5.6.1 数据库的复制 复制是使数据库更具容错性的方法,主要用于分布式结构的数据库系统中。它在多个场地保留数据库的多个备份,这些备份可以是整个数据库的副本,也可以是部分数据库的副本。 各个场地的用户可以并发

20、地存取不同的数据库副本。例如,当一个用户修改数据对数据库加了排它锁时,其它用户就可以访问数据库的副本,而不必等待该用户释放锁,这就进一步提高了系统的并发度。 5.6.1 数据库的复制数据库的复制常有三种方式:对等复制、主/从复制和级联复制。不同的复制方式提供了不同程度的数据一致性。 对等复制(Peertopeer)是最理想的复制方式。 在这种方式下,各个场地的数据库地位是平等的,可以互相复制数据。用户可以在任何场地读取和更新公共数据集,在某一场地更新公共数据集时,DBMS会立即将数据传送给所有其它副本。 主/从复制 主/从复制(Master/Slave),即数据只能从主数据库复制到从数据库中。

21、更新数据只能在主场地上进行,从场地供用户读数据。但主场地出现故障时,更新数据的应用可以转到其中一个复制场地上。 这种复制方式实现起来比较简单,易于维护数据一致性。主数据库和各个复制数据库在任何时候都必须保持事务的完整性。MasterSlave1Slave2Slave k 级联复制 级联复制(Cascade)是指:从主场地复制过来的数据又从该场地再次复制到其它场地,即A场地把数据复制到B场地,B场地又把这些数据或其中部分数据再复制到其它场地。 级联复制可以平衡当前各种数据需求对网络交通的压力。DB1DB 1DB kDB k+1 DB k+r5.6.2 数据库的镜象问题的提出 介质故障是对系统影响

22、最为严重的一种故障,当系统出现介质故障后,不仅用户的应用全部中断,而且恢复起来也比较费事。 为了能够将数据库从介质故障中恢复过来,DBA必须周期性地转储数据库,这加重了DBA的负担。如果DBA忘记了转储数据库,一旦发生介质故障,就可能造成严重的损失。 能否自动解决以上问题?5.6.2 数据库的镜象 为避免存储介质磁盘出现故障而影响数据库的可用性,DBMS提供了日志文件和数据库的镜象 (Mirror)功能。根据DBA的设置要求,DBMS自动把整个数据库或其中的关键数据以及日志文件复制到另一个磁盘上,每当主数据库更新时,DBMS会自动把更新后的数据复制到镜象磁盘上去,即DBMS自动保证镜象数据与主

23、数据的一致性。 5.6.2 数据库的镜象 一旦主数据库发生介质故障,可以由镜象磁盘继续提供数据库的可用性,同时DBMS自动利用镜象磁盘进行数据库的恢复,不需要关闭系统和重装数据库后备副本。 在没有出现故障时,数据库镜象还可以用于支持并发操作,即当一个用户对数据库加排它锁修改数据时,其他用户可以直接读镜象数据库,而不必等待该用户释放锁。5.6.2 数据库的镜象 数据库的镜象是通过复制数据库来实现的,频繁地复制数据库自然会降低系统运行的效率。 在实际应用中,用户往往只选择对关键的数据做镜象,如日志文件镜象,而不是对整个数据库进行镜象。5.6.3 RAID技术简介 RAID是英文Redundant

24、Array of Inexpensive(Independent) Disks的缩写,即廉价冗余 (独立)磁盘阵列,简称为磁盘阵列,是目前商用数据库服务器都支持且广泛使用的硬盘技术。 RAID技术的基本含义:廉价和冗余。 “廉价”就是价格便宜,因为成本因素是计算机用户不得不考虑的问题,所以廉价的磁盘阵列是吸引顾客的必要手段; “冗余”即数据冗余,因为数据安全性和完整性是计算机用户特别关注的重要问题之一,数据冗余将在一定程度上保证数据的安全性和完整性。5.6.3 RAID技术简介 RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现的,它可满足在某些特定的应用领域里不断扩大磁盘

25、容量的需求。 RAID技术分为RAID0、1、2、3、4、5等几个不同的等级标准. RAID0又可以配合后面几种进行更多的功能组合,形成RAID10、30、50等工作方式。 这些等级标准分别为用户提供了速度、价格、容量和安全性不相同的磁盘阵列的多种选择。 5.6.3 RAID技术简介 RAID0,又称为磁盘条块化(Striping)工作方式,也称数据拆分方式。工作状态是几个磁盘同时工作,系统传输来的数据,经过RAID控制器将数据平均分配到磁盘阵列的各个磁盘中。 当用户需要数据时再将数据聚集起来,且这一切工作都是计算机系统自动完成的。 RAID0的主要工作目的是获得更大的“单个”磁盘容量,同时获

26、得更高的存取速度。 01101100控制器数据:011011005.6.3 RAID技术简介 RAID1,又称为镜像(Mirroring)工作方式。它的出现完全是出于数据安全性方面的考虑,因为在磁盘阵列中,只有一半的磁盘容量是有效的,而另一半用来存放前一半磁盘的镜象数据,也就是冗余数据。 与RAID0相比,RAID1是另一个极端。RAID1则首要考虑数据的安全性,磁盘容量可以减半而速度可以不变。0110110001101100控制器数据:011011005.6.3 RAID技术简介 如果既要达到相对较高的存取速度又要较高的安全性目的,RAID10 (或者RAID0+1)就可以解决。 RAID10也可以简单的理解成两个分别由多个磁盘组成的RAID0阵列再进行镜像。其实反过来理解也没有错。 0110110001101100控制器数据:011011005.6.3 RAID技术简介 RAID3和RAID 5都是校验的工作方式。就像

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论