日期:2014-05-16  浏览次数:20375 次

事务与数据库恢复原理

数据存储的逻辑单位是数据块,数据操作的逻辑单位是事务。

事务是用户定义的一组操作序列,有一条或多条相关SQL语句组成,是数据库应用程序的基本逻辑单位。事务管理技术主要包括数据库的恢复技术和并发控制技术。

 

事务的处理逻辑过程

1、 服务器进程捡取该事务的SQL语句,然后检查共享池,查看是否包含该SQL语句的共享SQL区。

2、 如有,则检查该用户是否有访问所涉及的数据的权限,如有,则使用共享SQL区处理该SQL语句。如果没有找到共享SQL区,则分配一个新的SQL区,以便分析、处理该SQL语句。如果无权限,则返回提示权限不足。

3、 锁定该SQL语句所涉及的操作对象;

4、 服务器进程在SGA中操作数据,或从数据文件中奖数据读入到SGA中然后操作数据。

5、 在适当的时候,LGWR后台进程将语句缓冲的重做日志写入到联机重做日志文件中,DBWR后台进程将数据高速缓存中的被修改过的数据块写入到数据文件中。

6、 为该事务产生一个递增的SCNSCN被写入到控制文件、数据文件的头部、数据块的头部、重做记录中。SCN确定数据库在某个时间点的一致性状态,用来进行并发控制、数据库的恢复。

7、 LGWR后台进程将所有剩余的、已经缓冲的重做日志和当前的SCN写入到联机重做日志文件中。

8、 释放该事务中各个SQL语句所占用的系统资源,并解除对所涉及的操作对象的锁定;

9、 如果事务是成功的,返回成功提示,否则返回错误提示;

10、     在某个恰当的时候,DBWR后台进程将仍然保留在数据高速缓存中的被更改过的数据块(脏数据块)写入到数据文件中。

 

事务控制的基本语句及功能

1、 提交事务                            (commit)

2、 回滚事务                            (rollback)

3、 设置保存点                          (savepoint)