ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle的工作原理

oracle的工作原理

原创 Linux操作系统 作者:xiaowu_mm 时间:2009-03-25 12:23:45 0 删除 编辑
下面例子描述了 Oracle 执行的最本的操作

1.      在数据库服务器上启动实例

2.      运行应用程序的计算机在用户进程中运行程序,用 Oracle 网络服务

 驱动器与服务器建立连接

3.      服务器运行正确的 Oracle 网络服务驱动器,建立专用服务器进程执

 行用户进程

4.      用户运行 sql 语句并提交事务

 5.      服务器进程获得语句并检查共享池中是否有相近的 sql 语句,如果

 找到共享 sql 区域,服务器进程检查用户的访问权限;否则分配新

的共享 sql 区域以使语句可以分析和执行

6.      服务器进程从实际的数据文件或 SGA 中取得需要的数据

 服务器进程在 SGA 中更新数据,DBWn 进程在一定条件下写更改的块

到磁盘中。因为事务已提交,LGWR 进程马上在重做日志文件中记录

事务。

 7.      如果事务成功,服务器进程发送消息到应用程序。

 8.      在整个过程中,其他的后台进程在需要干涉的情况下运行。

问了一下朋友DBWN和DBWR是一个东西。

刚网上了找了一些资料,提到DBWn

Database Writer(DBWn)
DBWn在以下情况将数据写入磁盘(数据文件data file):
1)发生检查点
2)达到脏缓冲区阈值
3)没有可用的缓冲区
4)超时
5)将表空间设置为脱机或只读
6)删除或截断表
7)备份表空间Database Writer(DBWn)

DBWn (Database Block Writer) 
    DBWn是一个负责将dirty blocks写到磁盘的后台进程,通常将dirty blocks写到磁盘是为了腾空更多的空闲空间(为了其它数据的读 而释放缓冲区), 或者advance 一个检查点事件(也就是在发生故障实例恢复时, 将联机重做日志中Oracle开始读取的位置 前移以节省实例恢复的时间)Log Switch 会触发一个Checkpoint,Oracle 需要advance这个Checkpoint以至于在实例恢复时不需要这个刚被填满的online redo log,假如在重用这个日志之前,不能完成这个advance Checkpoint的操作,则我们在alert将发现"Checkpoint not Compelete"信息,并且必须等待这个事件的完成。 

 看来还得多多学习

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19003003/viewspace-578351/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 越来越着急
请登录后发表评论 登录
全部评论

注册时间:2009-02-12

  • 博文量
    27
  • 访问量
    22449