- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据的备份.ppt
第十讲 数据的备份、恢复和传输
教学内容
事务概念、属性、执行事务的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 允许将事务日志还原到命名标记。
显式事务语句
功能
语句
开始事务
BEGIN TRAN[SACTION]
提交事务
COMMIT TRAN[SACTION]或COMMIT[WORK]
回滚事务
ROLLBACK TRAN[SACTION]或ROLLBACK[WORK]
自动提交、隐含事务
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,FieldNam
文档评论(0)