第13章数据库中事务与数据恢复教材课程

上传人:yuzo****123 文档编号:141252768 上传时间:2020-08-05 格式:PPT 页数:21 大小:3.68MB
返回 下载 相关 举报
第13章数据库中事务与数据恢复教材课程_第1页
第1页 / 共21页
第13章数据库中事务与数据恢复教材课程_第2页
第2页 / 共21页
第13章数据库中事务与数据恢复教材课程_第3页
第3页 / 共21页
第13章数据库中事务与数据恢复教材课程_第4页
第4页 / 共21页
第13章数据库中事务与数据恢复教材课程_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《第13章数据库中事务与数据恢复教材课程》由会员分享,可在线阅读,更多相关《第13章数据库中事务与数据恢复教材课程(21页珍藏版)》请在金锄头文库上搜索。

1、第十三章,事务与数据恢复,了解SQL语句的特点 理解事务的概念 熟悉事务的特性及应用范围 掌握事务控制的基本语句及功能 掌握Oracle中事务的实现及应用 了解数据库恢复原理 了解数据库的故障种类及恢复策略 了解Oracle数据库的备份和恢复,1,目标,事务的概念,事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。 结构简洁 功能强大 简单易学,2,事务的状态,为了确保数据库中数据的正确性,事务必须处于以下状态之一: 在表中插入、修改和删除记录 活动

2、状态(active):事务在执行时的状态; 部分提交状态(partially committed):事务中最后一条语句执行后的状态; 失败状态(failed):事务不能正常的执行时的状态; 中止状态(aborted):事务回滚并且数据库已恢复到事务开始执行前的状态; 提交状态:(committed):事务成功完成后的状态。是所有关系数据库的公共语言,3,搭建事务演示环境,4,为便于演示和说明事务控制,首先构建一个简易银行数据库系统,为这个数据库系统设计了用户信息表(userinfo)和银行卡信息表(cardinfo),搭建事务演示环境,5,创建两张数据表的代码如下: create table

3、USERINFO( CUSTOMERID NUMBER(10) not null, CUSTOMERNAME VARCHAR2(16) not null, PID VARCHAR2(18) not null, TELEPHONE VARCHAR2(11) not null, ADDRESS VARCHAR2(200); alter table USERINFO add primary key (CUSTOMERID);,create table CARDINFO( CARDID VARCHAR2(16) not null, CURTYPE CHAR(3) default RMB not nul

4、l, SAVINGTYPE CHAR(3) not null, OPENDATE DATE default sysdate, OPENMONEY FLOAT not null, BALANCE FLOAT not null, PASS VARCHAR2(6) default 000000 not null, OSREPORTLOSS CHAR(1) default N not null, CUTOMERID NUMBER(10) not null); alter table CARDINFO add primary key (CARDID); alter table CARDINFO add

5、foreign key (CUTOMERID) references USERINFO (CUSTOMERID);,事务的开始与结束,6,Oracle中不需要使用专门的语句来显式的表示事务的开始。事务会在修改数据的第一条语句处隐式的开始。在Oracle中也可以使用SET TRANSACTION或DBMS_TRANSACTION语句来显式的开始一个事务。显示开始事务的语法格式如下: SET TRANSACTION READ ONLY | USE ROLLBACK SEGMENT segment 在Oracle中执行SQL语句时,一定要显式的使用COMMIT或者ROLLBACK语句来结束事务。如果

6、正常的退出Oracle的SQL*Plus时,没有使用COMMIT或者ROLLBACK语句结束事务,则SQL*Plus会认为用户希望提交前面所做的工作,并自动为用户完成提交。但不要过分的依赖这种隐式提交方式,建议显式的使用COMMIT或ROLLBACK语句来结束事务 。,事务的提交,在Oracle中,事务有显式提交和隐式提交两种方式,但在实际使用时建议使用COMMIT语句来显式提交事务。COMMIT语句的语法格式如下: COMMIT WORK COMMENT text| FORCE text , integer; 其中,COMMIT或者COMMIT WORK语句都可以用来提交事务。COMMIT语

7、句还可以扩展用于分布式事务中。在这些扩展中,允许增加一些有意义的注释作为COMMIT的标签务。,事务的回滚与保存点,在Oracle中,回滚事务使用的是ROLLBACK语句。ROLLBACK语句的语法格式如下 : ROLLBACK WORK TO SAVEPOINT savepoint|FORCE text 直接使用ROLLBACK或ROLLBACk WORK语句都可以回滚事务,撤销上次正常提交后的所有操作。其中,SAVEPOINT表示允许在事务中创建一个“标记点”,以便只撤销整个事务过程中的部分操作,在一个事务中可以有多个SAVEPOINT。,事务隔离级别,对于并发运行的多个事务,当这些事务操

8、作数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题,这些并发问题主要可以归纳为以下几类: 更新丢失(lost update) 脏读(dirty read) 不可重复读(non-repeatableread) 幻读(phantom read),3,事务隔离级别,为了避免这些并发问题的出现,以保证数据的完整性和一致性,必须实现事务的隔离性。事务的隔离级别用来定义事务与事务之间的隔离程度。ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别 : 序列化级别(serializable) 可重复读(repeatable read) 读已提交(read committed)

9、 读未提交(read uncommitted),3,事务隔离级别,隔离级别及其对应的可能出现或不可能出现的现象如表所示:,3,数据恢复概述,尽管数据库系统采取了各种保护措施来防止数据库的一致性、安全性和完整性遭到破坏,但是计算机系统中硬件的故障、软件的错误、操作者的失误以及来自外部的恶意破坏仍是不可避免的,这些故障轻则造成正在运行的事务非正常中断,从而影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据全部或部分丢失,因此数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库恢复技术。,2,数据转储,数据转储是数据库恢复中最经常采用的技术。所谓转储即将整个数

10、据复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。 静态转储 动态转储,2,日志文件,日志文件是用来记录事务对数据库的更新操作的文件。日志文件在数据库恢复中起着非常重要的作用。可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。 不同数据库系统采用的日志文件格式并不完全一样。概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。,2,数据库故障种类,数据库系统中可能发生各种各样的故障,这些故障大致可以分以下几类: 事务内部的故障 系统故障 介质故障 计算机病毒,2,故障恢复机制,当系统运行过程中发生故障时,利用数

11、据库后备副本和日志文件可以将数据库恢复到故障前的某个一致性状态,根据故障类型的不同,恢复的策略和方法也不一样。 事务故障的恢复 系统故障的恢复 介质故障的恢复,2,Oracle数据库的备份与恢复,Oracle数据库有三种标准的备份方法:导出导入、热备份和冷备份。其中,导出备件是一种逻辑备份,冷备份和热备份都是物理备份。 导出/导入(Export/Import) 冷备份 热备份,2,事务是用户定义的数据库操作序列 事务的基本操作包括事务开始、事务读写、事务结束和事务提交 事务特性包括原子性、一致性、隔离性和持久性,简称ACID 事务开始前可以通过语句设置当前事务的执行属性,如:是否可读、是否可写、隔离级别等 数据恢复的基本单位是事务 可能发生的故障大致分为:事务故障、系统故障、介质故障 数据恢复的基本策略是:转存数据库、日志文件等,31,小结,谢 谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号