oracle的工作原理

下面例子描述了 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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/19003003/viewspace-578351/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值