Oracle数据库原理简述

一、会话的建立

客户端通过自己的网络配置文件tnsnames.ora连接到数据库所在服务器的监听程序,由监听程序验证通过后催生的服务器进程连接到客户端,服务器进程对客户端进行的用户名和口令的验证通过后,会话就建立起来了,用户就可以进行正常的事务处理了。

二、事务的执行

服务器进程收到用户的SQL文本后,首先验证用户操作的数据库对象是否存在,SQL语句是否符合PL/SQL规范。通过后,服务器进程通过软解析或硬解析获得该SQL文本对应的执行计划。获得执行计划后通过逻辑读或物理读找到所需的数据块的相关信息。之后同时进行三项重要的工作:生成重做数据,生成还原数据,维护检查点队列。

以上工作完成后,Oracle通过操作系统的配合在CPU通用寄存器中进行运算,用返回的值对相应数据块进行修改。用户提交成功后,在用户看来他对数据库的修改已经完成了,但在数据库管理员看来,用户对数据库的修改只是在内存中,还需要将其写入磁盘文件以持久化保存,如何写入磁盘文件与检查点机制有关。

三、检查点机制

在检查点间隔开始时,检查点进程生成新的SCN,并将其写入控制文件。检查点进程等待到检查点间隔结束时,也就是完全检查点时,触发数据库写进程,通知数据库写进程将检查点队列中提交状态为已提交的数据块从缓存高速缓冲区读出写入数据文件,在数据库写进程写之前,首先执行一次日志写,确保将写入数据文件的数据块对应的重做条目已经在联机重做日志文件中持久化保存。数据库写进程执行完成后,检查点进程根据控制文件的SCN将所有数据文件头的SCN全部刷新一遍。设置检查点机制的目的就是为了进行实例恢复。

四、实例恢复过程

实例恢复由系统监视器进程自动执行。分为前滚和回退两个阶段。前滚阶段,SMON用已同步过的最小的SCN在联机重做日志文件中逆向匹配,从这个SCN对应的重做条目的下一条重做条目开始,将这些重做条目对应的事务重新执行一遍。此时数据文件中包含了截止到故障点所有已提交和未提交的数据库修改。

回退阶段,数据库以只读方式打开,将前滚阶段执行过的提交时的SCN和时间戳为空的重做条目在前滚阶段产生的还原数据直接覆盖到数据文件相应的块。至此,数据文件只包含了截止到故障点所有已提交的数据库修改,实例恢复完成。将数据库以读写方式打开,用户可以正常执行事务了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值