确实不好整,确实不好整,确实不好整,确实不好整,确实不好整,确实不好整,确实不好整。
今天中午吃了饭回来,上了个厕所后,赶紧把电脑打开。进入了我的Fedora11系统,准备安装Oracle10G数据库在自己的Linux系统(我另外还有MAC,瘟都死)上,准备环境,检查环境,检查所需的库依赖,配置java环境。运行。。。是对的。但是java的中文字符时乱码(因为Oracle的安装界面是java的GUI)。哎,三个小时过的好快。先看下书了,晚上接着来。
昨天我看了Oracle数据库里面的很多 POOLs。在这里 ,你也可以看看。
今天我还是接着来,今天我主要关注的是Oracle德一些很重要的服务器进程。come on with me!
1.重做日志写进程(LGWR)
它负责将重做日志缓冲区的记录顺序的写入重做日志文件中去。
这个不得不说下:commit之后,Oracle的内部操作步骤。
1.服务器进程吧提交的记录连同产生的SCN号(系统变化数,system change number)一起写入重做日志缓冲区。
2.重做日志进程将把重做日志缓冲区中一直到 所提交的记录的所有记录连续的写入重做日志文件中。这样,Oracle服务器就可以保证使系统崩溃情况下所提交的数据可以恢复。
3.Oracle通知用户提交完成。
4.服务器进程将修改数据库高速缓冲区中的相关数据的状态,并释放资源和打开锁等等。
这个进程在下列情况下将把重做日志缓冲区的记录顺序的写入到重做日志文件中。
1.某个事务被提交。
2.重做日志缓冲区中的记录的变化超过1M。
3.重做日志缓冲区所有的记录超过缓冲区容量的1/3.
4.在DBWR讲数据库高速缓冲区中修改过的数据块写到数据库文件之前
5.每3秒时间。
2.数据库写进程(DBWR)
这个进程负责把数据库高速缓冲区中的脏缓冲区中的数据写到数据文件上。
在下列情况下这个进程才会把数据写入数据文件中。
1.脏数据库缓冲区的数量超过了所限定的限额。
2.时间间隔已到。
3.有进程需要数据库高速缓冲区但是找不到空闲的缓冲区。
4.校验点发生时。
5.某个表被删除(drop)或者截断(truncate)。(个人觉得这个词叫清空好听点)
6.某个表空间被设置为只读状态。
7.某个临时表空间被设置为脱机(offline)或者正常(normal)状态。
8.对某个表空间进行联机备份。(命令:ALTER TABLESPACE users BEGIN BACKUP)
3.系统监督进程(SMON)
在某个特殊原因下数据库崩溃了,已经提交的数据还没有被写到数据文件上面,就可以导致数据丢失。当然Oracle是不允许数据丢失的。
崩溃后,重开服务器。这个进程将自动进行Oracle实例的恢复工作。步骤下面:
1.执行前滚(roll forward),将已经写到重做日志文件中的但是还没有写入数据库文件中的已经提交的数据希尔数据文件中。
2.前滚完成,打开数据库。
3.回滚没有提交的事物。
它还有下面的额外工作要做。
1.回收或组合数据文件中相连的空闲区。
2.释放临时段。
4.进程监督进程(PMON)
某个进程崩溃时,它负责崩溃进程的清理工作。
1.回滚用户当前事务。
2.释放用户所有所加的表一级和行一级的锁。
3.释放用户所有的其它资源。
5.校验点(checkpoint)和校验点进程
Oracle为了提高系统的效率和数据库的一致性,引入了这个东东。
6.归档日志(ARCH)进程
上面的5个进程都是必需的。这个进程是可选的比较重要的进程。
它可以看做是重做日志文件的备份,但是这个archive文档可是脱机的哦。
没有了,我陆陆续续的写了这点点。其实看到这些大家都看的懂,但是关上书。又有几个人说的清楚。确实有点Lily话,但是至少要听说过撒。
下面附张图。很旧,很值得纪念。