- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.2.5 SQL Server的并发控制机制 SQL Server具有多种锁,允许事务锁定不同的资源,并能自动使用与任务相对应的等级锁来锁定资源对象,以使锁的成本最小化 . 1.SQL Server 的空间管理及锁的级别 SQL Server 为使事务锁定资源最小化提供了多种方法 : 行级锁 页级锁 簇级锁 表级锁 数据库级锁 数据库的事务处理与数据恢复 2.SQL Server锁的类型 SQL Server的基本锁是共享锁(S锁)和排它锁(X锁)。除基本锁之外,还有三种特殊锁:意向锁、修改锁和模式锁等 数据库的事务处理与数据恢复 6.3 数据库恢复 6.3.1 数据库系统的故障 数据库运行过程中可能发生的故障主要有三类:事务故障、系统故障和介质故障 数据库的事务处理与数据恢复 6.3.2 数据库备份技术 建立数据库备份最常用的技术是数据转储和登记日志文件 1.数据转储 数据转储是指数据库管理员DBA定期或不定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程. 数据转储有以下几类 : 根据转储时系统状态的不同,转储分为静态转储和动态转储. 根据转储数据量的不同还可以将数据转储分为海量转储和增量转储 . 数据库的事务处理与数据恢复 2.日志文件 日志文件是用来记录事务对数据库的更新操作的文件。 不同数据库采用的日志文件格式并不完全一样。概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件 (1)日志文件的格式和内容 以数据块为单位的日志文件的内容包括事务标识和更新的数据,只要某个数据块中有数据被更新,就要将整个块更新前和更新后的内容放入日志文件. 数据库的事务处理与数据恢复 对于以记录为单位的日志文件,日志文件中记录需要登记的内容包括 : 各个事务的开始(BEGIN TRANSACTION)标记。 事务标识(标明是哪个事务)。 操作的类型(插入、删除或修改)。 操作对象。 更新前数据的旧值(对插入操作而言,此项为空值)。 更新后数据的新值(对删除操作而言,此项为空值)。 各个事务的结束(COMMIT或ROLLBACK)标记 (2)登记日志文件 为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:一是登记的次序严格按并行事务执行的时间次序;二是必须先写日志文件,后写数据库 数据库的事务处理与数据恢复 6 * 6.数据库的事务处理与数据恢复 6.1 事务管理的基本概念 6.2 并发控制 6.3 数据库恢复 数据库的事务处理与数据恢复 事务是用户定义的数据库操作序列,这些操作可作为一个完整的工作单元。一个事务内的所有语句是一个整体,要么全部执行,要么全部不执行。即事务是不可再分的原子性工作。 6.1 事务管理的基本概念 6.1.1 事务(Transaction)的概念 (1)事务开始(BEGIN_TRANSACTION)。事务开始执行。 (2)事务读写(Read/Write)。事务进行数据操作(活跃)。 (3)事务结束(END_TRANSACTION)。事务完成所有的读/写操作。 (4)事务交付(COMMIT_TRANSACTION)。事务完成所有的读/写操作,并保存操作结果。 数据库的事务处理与数据恢复 6.1.2 事务的状态 6.1.3 事务的特性 (1)原子性(Atomicity) (2)一致性(Consistency) (3)隔离性(Isolation) (4)持久性(Durability) 上述的四个特性也简称为ACID特性 数据库的事务处理与数据恢复 6.1.4 SQL Server中的事务 SQL Server的事务分为两种类型:系统提供的事务和用户定义的事务 是指在执行某些语句时,一条语句就是一个事务 用户定义的事务 BEGIN TRANSACTION:事务的开始标记。 COMMIT TRANSACTION:事务的结束标记。 ROLLBACK TRANSACTION :回滚 SAVE TRANSACTION 保存点名 :设置保存点 ROLLBACK TRANSACTION 保存点名:将事务回滚到保存点位置 系统提供的事务 数据库的事务处理与数据恢复 6.2.1 并发操作引起的问题 对事务的并发执行如果不加以控制,可能会导致数据库中数据的不一致性。 数据库的事务处理与数据恢复 丢失修改(Lost Update) 不可重复读(Unrepeatable Read) 读“脏”数据(Dirty Read) 数据库的事务处理与数据恢复 1.丢失修改(Lost Update) 调度时刻 事务T1 事务T2 t1 读A=16 ? t2 ? 读A=16 t3 A=A-1 写回A=15 ?
文档评论(0)