Oracle是如何工作的

来源:互联网 发布:开源的数据库防火墙 编辑:程序博客网 时间:2024/05/01 22:07
    下面的例子描述了Oracle运行的最基本级别的操作。这个例子解释了一种用户进程和相应的服务器进程分别运行在不同的计算机上的Oracle结构(通过网络连接)。
   
    1.运行Oracle的机器(经常被称为主机或者数据库服务器)开启了一个实例。
   
    2.一个正在运行应用程序的计算机(本地计算机或者客户工作站)在用户进程里运行了这个应用程序。客户应用程序试图通过相应的Oracle网络服务驱动建立一条同服务器的连接。
    
    3.服务器正在运行相应的Oracle网络服务驱动。服务器探测到了用户程序的连接请求,并创造了一个专用服务器进程作为用户进程的代理。

    4.用户运行了一个SQL语句并提交了一个事务。比如说,用户更改了在表中一行的名字。

    5.服务器进程收到了这条语句并在共享池的找含有类似SQL语句的共享SQL区。如果找到了一个共享SQL区,然后服务器进程就检查用户对相应数据的访问权限,然后用这个共享SQL区来处理这条语句。如果没有找到,然后会给这个语句分配一个新的共享SQL区,以便它被解析和处理。

    6.服务器进程从数据文件(表)或者SGA中找到任何必要的数据值。

    7.服务器进程修改系统全局区中的数据。DBWn进程将修改后的块永久的写入磁盘——当这样做是高效时。因为事务已经被提交,LGWR进程立刻将事务记录到重做日志文件中。

    8.如果事务是成功的,然后服务器进程通过网络向用户程序发送一条消息。如果不成功,就发送一条错误消息。

    9.在这整个过程中,其它的后台进程都在运行,等待需要自己介入的情况。此外,数据库服务器管理着其它用户的事务并防止事务之间对同样数据的竞争。