文档详情

第十讲数据的备份恢复与传输.ppt

发布:2018-07-06约6.43千字共28页下载文档
文本预览下载声明
第十讲 数据的备份、恢复和传输 教学内容 事务概念、属性、执行事务的3种模式 数据锁的概念、锁的对象、锁的方法以及死锁问题 数据的备份、恢复以及传输的方法 学习目标及重点 学习目标 掌握事务概念、属性 掌握数据锁的概念和死锁问题 掌握数据备份的概念 学会如何备份数据库、恢复数据库 SQL Server数据库与其它软件的数据交换 重点与难点 事务概念 事务属性 执行事务的3种模式 数据锁的概念及死锁问题 如何在企业管理器中执行数据库备份 如何使用Transact-SQL语句执行数据库备份 如何使用企业管理器恢复数据库 如何使用Transact-SQL语句恢复数据库 10.1 事务简介 10.1.1 事务概念 事务是作为单个逻辑工作单元执行的一系列操作。 一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务 10.1.2 事务的属性(ACID) 原子性(Atomicity) 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性(Consistency) 事务在完成时,必须使所有的数据都保持一致状态 隔离性(Isolation) 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离 持久性(Durability) 事务完成之后,它对于系统的影响是永久性的。 10.1.3 执行事务的3种模式 1.显式事务:可以显式地在其中定义事务的启动和结束。 语法 BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable ????[ WITH MARK [ description ] ] ] 参数 transaction_name 是给事务分配的名称。不允许标识符多于 32 个字符。 @tran_name_variable 用 char、varchar、nchar 或 nvarchar 数据类型声明有效事务的变量的名称 WITH MARK [description] 指定在日志中标记事务。Description 是描述该标记的字符串。 如果使用了 WITH MARK,则必须指定事务名。WITH MARK 允许将事务日志还原到命名标记。 显式事务语句 自动提交、隐含事务 2.自动提交事务 系统默认的事务方式,许多SQL语句在执行时都会自动发生的事务。每个数据操作语句即为一个事务。 3.隐含事务 当连接以隐性事务模式进行操作时,SQL Server将在提交或回滚当前事务后自动启动新事务。无须描述事务的开始,只须提交或回滚每个事务。隐性事务模式生成连续的事务链。 EX 事务 例:建立内含事务的存储过程 Create Proc TestTranas Begin TRAN Select * From StudInfo Rollback Go 事务保存点的设置与回滚 SAVE TRANSACTION 在事务内设置保存点。 语法 SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable } 参数 savepoint_name 是指派给保存点的名称。保存点名称必须符合标识符规则,但只使用前 32 个字符 @savepoint_variable 是用户定义的、含有有效保存点名称的变量的名称。必须用 char、varchar、nchar 或 nvarchar 数据类型声明该变量。 BEGIN TRAN…… SAVE TRAN TempTran…… IF(@@ERROR0) BEGIN ROLLBACK TRAN TempTran –-回滚到事务保存点 …… /*失败时所使用的变通方案*/ END...IF(...) COMMIT ELSE ROLLBACK 分布式事务 如果要在事务中存取多个数据库服务器中的数据(包含执行存储过程),就必须使用“分布式事务”(Distributed Transaction) Begin Distributed tran Insert into CourseInfo(CourseID,CourseName) values(A00232,TestName) If @@ERROR0 GOTO ERRORPROC INSERT INTO AnotherServer.DatabaseName.dbo.tablename (FieldName1,FieldName2) values(Values1,Values2) ERRORPROC: IF @@ERROR0 ROLLBACK ELSE COMMIT 10.2 数据锁 锁定(Lock)是将指定的数据
显示全部
相似文档