文档详情

第7章数据库保护423zmx.ppt

发布:2017-06-17约8.12千字共71页下载文档
文本预览下载声明
并发控制的作用 产生丢失数据修改、读“脏”数据、不可重复读、“幽灵”数据主要原因是并发操作破坏了事务的隔离性。并发控制就是用正确的方法来调度并发操作,使一个事务的执行不受其他事务的干扰,避免造成数据不一致情况。 2.备份频率 确定备份频率要考虑两个因素: 存储介质出现故障或其他故障时,允许丢失的数据量的大小。 数据库的事务类型(读多还是写多)以及事故发生的频率(经常发生还是不经常发生)。 通常情况下,数据库可以每周备份一次,事务日志可以每日备份一次。 对于一些重要的联机事务处理数据库,可以每日备份,事务日志则每隔数小时备份一次。 7.3.3数据库恢复 恢复数据库是指将数据库从错误描述状态恢复到正确的描述状态(最近的正确时刻)的过程。 1.恢复策略 (1) 事务故障的恢复 事务故障是指事务在运行到正常结束前被终止, 事务故障的恢复是由系统自动完成的,对用户是透明的。 恢复的过程为: 反向扫描日志文件并执行相应操作的逆操作,比如如果日志中记录的是“删除”操作,则进行“插入”; 若是修改操作,则就用更新前的值替换更新后的值。 1.恢复策略(续) (2)系统故障的恢复 系统故障的恢复是系统在重新启动时自动完成的,不需要用户干预。 系统故障的恢复过程为: 正向扫描日志文件,找出故障发生前已提交的事务,将其重做; 同时找出故障发生时未完成的事务(已执行了BEGIN TRANSACTION语句,而没有执行相应的COMMIT或ROLLBACK语句),并撤销这些事务。 1.恢复策略(续) (3)介质故障的恢复 介质故障发生后,磁盘上的物理数据和日志文件均遭到破坏,这是最严重的一种故障, 恢复的方法是: 首先重装数据库,使数据库管理系统能正常运行, 然后利用介质损坏前对数据库已做的备份或利用镜像设备恢复数据库。 2.恢复方法 利用数据库备份、事务日志备份可以将数据库从出错状态恢复到最近的正确状态。 (1)利用备份技术 (2)利用事务日志 (3)利用镜像技术 ( 1)利用备份技术 由DBA定期对数据库进行备份,生成数据库瞬时正确状态的副本(备份)。 当发生错误时,利用备份(文件)可以将数据库恢复到备份完成时的数据库状态。 (2)利用事务日志 日志记录了对数据库数据的全部更新操作(插入、删除、修改), 日志内容包括事务标识、操作类型、操作前后的数据值等。 利用事务日志可以恢复执行不完整的事务,即从不完整的事务的当前值按事务日志记录的顺序反做(Undo),直到事务开始时的数据库值为止。 利用事务日志的恢复一般是系统自动完成的。 (3)利用镜像技术 所谓镜像就是在不同的设备上同时存有两份数据库,我们把其中的一个设备称为主设备,把另一个称为镜像设备。 主设备与镜像设备互为镜像关系。 每当主数据库更新时,DMBS自动把更新后的数据复制到另一个镜像设备上,保证主设备上的数据库与镜像设备上的数据库一致。 数据库镜像功能可用于有效地恢复磁盘介质的故障。 读“脏”数据 读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被除撤消,而此时T1把已修改过的数据又恢复原值,T2读到的数据与数据库的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。 读“脏”数据 指事务T1读取数据后,事务T2执行更新操作, 使T1无法读取前一次结果 产生“幽灵”数据 属于不可重复读的范畴。 指当事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中的部分记录,或者在其中添加了部分记录,则当T1再次按相同条件读取数据时,发现其中莫名其妙地少了(对删除)或多了(对插入)一些记录。 这样的数据对T1来说就是“幽灵”数据或称“幻影”数据。 7.2.2 并发控制措施 控制目标:事务运行过程中尽可能隔离事务外操作对本事务数据环境的影响。 并发控制的主要技术——加锁(Locking) 加锁就是事务T在对某个数据操作之前,先向系统发出请求,封锁其所要使用的数据。在事务T释放它的锁之前,其他事务不能操作这些数据。 基本的封锁类型 共享锁(简记为S锁):指对于读操作(检索)来说,可以多个事务同时获得共享锁,但阻止其它事务对已获得共享锁的数据进行排它封锁。 排它锁(简记为X锁) :一旦一事务获得了对某一数据的排它锁,则任何其它事务再不能对该数据进行排它封锁,其它事务只能进入等待状态,直到第一个事务撤销了对该数据的封锁。 若事务T给A加x锁,则允许A进行读取和修改,不允许其他事务对A加任何锁和进行任何操作。 排他锁和共享锁的相容矩阵 T2 T1 X S 无锁 X 否 否 是 S 否 是 是 无锁 是 是 是 7.2.3 封锁协议 在运用X锁和S锁对数据对象进行加锁时,还需要约定一些
显示全部
相似文档