版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库技术与应用1数据库保护事务的基本概念 并发控制数据库备份与恢复2并发控制 并发控制概述 并发控制措施封锁协议死锁并发调度的可串行性两段锁协议 3并发控制概述数据库中的数据是一个共享的资源,因此会有很多用户同时使用数据库中的数据,在多用户系统中,可能同时运行着多个事务,而事务的运行需要时间,并且事务中的操作是在一定的数据上进行的。当系统中同时有多个事务在运行时,特别是当这些事务是对同一段数据进行操作时,彼此之间就有可能产生相互干扰的情况。 4并发事务的相互干扰示例A、B两个订票点恰巧同时办理同一架航班的飞机订票业务。设其操作过程及顺序如下: A订票点(事务A)读出航班目前的机票余额数,假设
2、为10张;B订票点(事务B)读出航班目前的机票余额数,也为为10张;A订票点订出6张机票,修改机票余额为106 4,并将4写回到数据库中;B订票点订出5张机票,修改机票余额为105 5,并将5写回到数据库中;5丢失数据修改 6读“脏”数据 7不可重复读 8产生“幽灵”数据 属于不可重复读的范畴。指当事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中的部分记录,或者在其中添加了部分记录,则当T1再次按相同条件读取数据时,发现其中莫名其妙地少了(对删除)或多了(对插入)一些记录。这样的数据对T1来说就是“幽灵”数据或称“幻影”数据。 9并发控制措施控制目标:事务运行过程中尽可能隔
3、离事务外操作对本事务数据环境的影响。在数据库环境下,并发控制的主要方式是封锁机制,即加锁(Locking),加锁是一种并行控制技术,是用来调整对共享目标,如DB中共享的记录并行存取的技术。10基本的封锁类型共享锁:指对于读操作(检索)来说,可以多个事务同时获得共享锁,但阻止其它事务对已获得共享锁的数据进行排它封锁。 排它锁:一旦一事务获得了对某一数据的排它锁,则任何其它事务再不能对该数据进行排它封锁,其它事务只能进入等待状态,直到第一个事务撤销了对该数据的封锁。11排它锁和共享锁的控制方式 T2T1XS无锁XNo NoYesSNoYesYes-YesYesYes12封锁协议 在运用X锁和S锁对
4、数据对象进行加锁时,还需要约定一些规则,如何时申请X锁或S锁、持锁时间、何时释放锁等。称这些规则为封锁协议或加锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同级别的封锁协议。不同级别的封锁协议达到的系统一致性级别不同。13一级封锁协议 对事务T要修改的数据加X锁,直到事务结束(包括正常结束和非正常结束)时才释放。一级封锁协议可以防止丢失修改,并保证事务T是可恢复的 但不能保证可重复读和不读“脏”数据。14一级封锁协议示例15二级封锁协议一级封锁协议加上对事务T对要读取的数据加S锁,读完后即释放S锁。除了可以防止丢失修改外,还可以防止读“脏”数据。但不能保证
5、可重复读数据。 16二级封锁协议示例17三级封锁协议一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。除了可以防止丢失修改和不读“脏”数据之外,还进一步防止了不可重复读。 18三级封锁协议示例19不同级别的封锁协议总结 20死锁 两个事务相互等待对方先释放资源,则会造成死锁。21预防死锁的方法一次封锁法一次封锁法是每个事务一次将所有要使用的数据全部加锁。顺序封锁法顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序封锁。 22并发调度的可串行性 多个事务的并发执行是正确的,当且仅当其结果与按某一顺序的串行执行的结果相同,则我们称这种调度为可串行化的调度。可串行性是并
6、发事务正确性的准则,按这个准则,一个给定的并发调度,当且仅当它是可串行化的时,才认为是正确的调度。 23两段锁协议 两段锁协议是实现可串行化调度的充分条件。可以将每个事务分成两个时期:申请封锁期和释放封锁期,申请期申请要进行的封锁,释放期释放所占有的封锁。在申请期不允许释放任何锁,在释放期不允许申请任何锁,这就是两段式封锁。24数据库备份与恢复 数据库故障的种类 数据库备份 数据库恢复 25数据库故障的种类事务内部的故障 事务故障意味着事务没有达到预期的终点(COMMIT或ROLLBACK),因此,数据库可能处于不正确的状态。 系统故障 指造成系统停止运转、系统要重启的故障。例如,硬件错误(C
7、PU故障)、操作系统故障、突然停电等。 其它故障介质故障或由计算机病毒引起的故障或破坏。 26数据库备份 指定期或不定期地对数据库数据进行复制。可以复制到本地机器上,也可以复制到其它机器上。备份的介质可以是磁带也可以是磁盘,但通常选用磁带。是保证系统安全的一项重要措施。在制定备份策略时,应考虑如下几个方面:备份的内容 备份频率 27数据库恢复 1恢复策略事务故障的恢复 系统故障的恢复 介质故障的恢复 2恢复方法利用备份技术利用事务日志利用镜像技术 28基于SQL SERVER 2008备份与恢复数据库备份计划备份内容备份类型完整备份事务日志备份差异备份备份组件备份频率备份存储介质数据库恢复29
8、故障还原模型1简单恢复模型2完整恢复模型3大容量日志恢复模型30基于SQL SERVER 2008备份与恢复备份和恢复的流程创建备份设备进行数据库的完整备份、差异备份、日志备份、文件和文件组备份恢复数据库31备份设备1建立备份设备1)格式sp_addumpdevice 备份设备类型, 备份设备逻辑名,备份设备物理名称2)功能 可以使用储过程sp_addumpdevice添加备份设备。3)例: exec sp_addumpdevice disk, backdisk,i:tempback.bak4)方法二:使用Management Studio32备份设备2查看备份设备的属性方法一:使用Manag
9、ement Studio方法二:使用SQL命令 sp_helpdevice33备份设备3删除备份设备1)格式sp_dropdevice设备的逻辑名,delfile2)功能从SQL Server除去数据库设备或备份设备。如果将物理备份设备文件指定为 DELFILE,将会删除物理备份设备文件,否则只删除逻辑设备名。返回0,表示成功删除,返回1表示删除失败。不能在事务内部使用 sp_dropdevice。34备份数据库1.备份数据库1)格式BACKUP DATABASE 数据库名 ,.n TO ,.n WITH , DIFFERENTIAL , EXPIREDATE = 日期 | RETAINDAY
10、S =天数 , INIT | NOINIT , NAME = 备份集名称 , RESTART , STATS = percentage 35备份数据库2)功能 将指定数据库备份到指定备份设备。备份设备可以是逻辑备份设备名或物理备份设备名。 3)例 BACKUP DATABASE stuinfo TO backup36备份数据库2备份事务日志1)格式BACKUP LOG 数据库名 TO ,.n WITH , EXPIREDATE = 日期 | RETAINDAYS = 天数 , INIT | NOINIT , NAME = 备份集名称 , NO_TRUNCATE , NORECOVERY | S
11、TANDBY = standby_ , RESTART , STATS = percentage 37备份数据库2备份事务日志2)功能对数据库的事务进行备份,该日志是从上次成功执行 LOG 备份到当前日志的末尾。它仅对数据库事务日志进行备份,所以其需要的磁盘空间和备份时间都比数据库备份少得多。38截断事务日志1)格式BACKUP LOG 数据库名 WITH NO_LOG2)功能如果从来没有从事务日志删除日志记录,逻辑日志就会一直增长,直到填满容纳物理日志文件的磁盘上的所有可用空间。在某个即时点,必须删除恢复或还原数据库时不再需要的旧日志记录,以便为新日志记录腾出空间。删除这些日志记录以减小逻辑
12、日志的大小的过程称为截断日志。39截断事务日志例截断“student”事务日志, 收缩事务日志为1MB。BACKUP LOG student WITH NO_LOGUSE studentDBCC SHRINKFILE (student_log,1)40数据库还原1还原数据库RESTORE DATABASE 数据库名 FROM ,.n WITH PARTIAL FILE = 备份文件号 , MOVE 逻辑文件名 TO 操作系统文件名 ,.n , RECOVERY|NORECOVERY|STANDBY=撤消文件名 , STATS = percentage , REPLACE 41数据库还原例将ba
13、ckup.bak备份文件中的备份号为1的完整备份恢复到数据库student中。方法一:使用SQL命令RESTORE DATABASE student FROM DISK =c:dumpbackup.bak WITH FILE = 1方法二:使用Management Studio恢复数据库42数据库还原2事务日志还原RESTORE LOG 数据库名 FROM ,.n WITH , FILE = 备份文件号 , MOVE 逻辑文件名 TO 操作系统文件名 ,.n , RECOVERY | NORECOVERY | STANDBY = standby_ , STATS = percentage ,
14、STOPAT = 日期时间 | , STOPATMARK = 标记名 AFTER datetime | , STOPBEFOREMARK = 标记名 AFTER datetime , REPLACE 43数据库还原例在备份过程中,可以产生备份序列。假设有下列事件序列。(1)创建备份设备studenttest。物理文件名称为c: dumpstudenttest.bak。(2) 完整备份“student”数据库到设备studenttest。(3) 向某个表中插入一条记录(4)备份数据库事务日志到设备studenttest。(5)利用第2步所得的完整备份,恢复到插入记录前的状态。(6)利用第4步所得的事务日志,恢复到插入记录后的状态。44分离和附加数据库分离数据库分离数据库是指将数据库从 SQL Server 实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。之后,就可以使用这些文件将数据库附加到任何 SQL Server 实例,包括分离该数据库的服务器。例从SQL Server 实例分离数据库student。方法一:使用Management Studio图形工具方法二:使用SQL命令sp_det
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度文化遗址场地保护与利用合同协议书3篇
- 专业拓展训练合作合同书2024版版B版
- 2024离婚双方房产分割及过户操作补充合同版B版
- 2024综合授信额度合同及分期贷款细则版B版
- 2025年度厂房租赁及品牌授权合作协议3篇
- 2025年度工业厂房拆除及重建合同范本4篇
- 2025年度商业地产项目场地借用合同样本3篇
- 2025年度数字化工厂搬迁工程合同范本4篇
- 油品基础知识培训课件
- 2024版室内粉刷工作班组劳动协议样本版B版
- GB/T 20840.8-2007互感器第8部分:电子式电流互感器
- GB/T 14864-2013实心聚乙烯绝缘柔软射频电缆
- 品牌策划与推广-项目5-品牌推广课件
- 信息学奥赛-计算机基础知识(完整版)资料
- 发烟硫酸(CAS:8014-95-7)理化性质及危险特性表
- 数字信号处理(课件)
- 公路自然灾害防治对策课件
- 火灾报警应急处置程序流程图
- 耳鸣中医临床路径
- 安徽身份证号码前6位
- 分子生物学在动物遗传育种方面的应用
评论
0/150
提交评论