oracle复习(一) 之Oracle体系结构

      学习Oracle DBA也半个多学期了,今天猛然才发现,原来我的书还是很新的,上课操作时候也只是知道大概怎么做,但是要真的全部自己做,而不去翻书还是有一定的难度的,所以呢,今天开始将DBA从头复习一遍,同时再操作一遍。

      第一章,学的是Oracle的体系结构,如图:

 

了解了这个体系结构图,当然还是不够的,这里面还有很多术语呢,不过呢首先看看Oracle服务器。

     Oracle服务器主要分为以下三种:

1、基于主机方式

2、客户端-服务器(client-server)(两层模型)方式

3、客户端-应用服务器(client-application server-server)(三层模型)

接着是一个Oracle实例

     Oracle实例是一种访问数据库的机制,它由内存结构和一些后台进程组成。它的内存结构也称为系统全局区(System global area,SGA)。实例的后台有5个进程是必须的:SMON、PMON、DBWR、LGWR、CKPT。SGA中又包含了一下几个内存结构:共享池(shared pool)、数据库高速缓冲区(database buffer cache)、重做日志缓冲区(redo log buffer)和其他的一些结构(如锁和统计数据)。

oracle复习(一) 之Oracle体系结构_第1张图片    SGA系统全局区

oracle复习(一) 之Oracle体系结构_第2张图片实例

 

 接着就说明Oracle数据库,它也成为物理(外存)结构,它为数据库信息提供了真正的物理存储,它由控制文件(control files)、重做日志文件(redo log files)、数据文件(data files)3类操作系统文件组成。

      然后,要用数据库,当然还需要连接,连接是用户进程与Oracle服务器之间的通信路径,其中有三种方式:

1、基于主机方式

2、客户端-服务器(client-server)(两层模型)方式

3、客户端-应用服务器(client-application server-server)(三层模型)

这三种连接是用户进程与服务器进程的一对一连接,也称为专业连接(dedicated server connection),除此之外,在联机事务处理(online transaction processing,OLTP)系统的配置还有另一种连接,为共享服务器(shared server)连接。

      然后要复习下服务器进程

当Oracle创建一个服务器进程的同时要为该服务器进程分配一个内存区,该内存区成为程序全局区(Program global area,PGA).与SGA不同,PGA是一个私有的内存区,不能共享,且只属于一个进程。它随着进程的分配而分配,随着进程的终止而回收。全局区包括这些结构:排序区(sort area)、游标状态区(cursor state)、回话信息区(session information)、堆栈区(stack space)。

      当然,我们在数据库中查找数据时,总是有一个过程的,那么Oracle执行SQL查询语句的步骤又是怎么样的呢?如下:

1、编译(parse):在进行编译时,服务器进程会将SQL语句的正文放入共享池(shared pool)的库高速缓存(library cache)中并将完成一下处理:

1)、首先在共享池中搜索是否有相同的SQL语句(正文),如果没有就进行后续的处理。

2)、检查该SQL语句的语法是否正确

3)、通过查看数据字典来检查表和列的定义

4)、对所操作的对象加编译锁(parse locks),以便在编译语句期间这些对象的定义不能被改变。

5)、检查所引用对象的用户权限

6)、生成执行该SQL语句所需的优化的执行计划

7)、将SQL语句和执行计划装入共享的SQL区

2、执行(execute):Oracle服务器进程开始执行SQL语句是因为它获得了执行SQL语句所需的全部资源信息

3、提取数据(fetch):Oracle服务器进程选择所需的数据行,并在需要时将其排序,最后将结果返回给用户。

      嘿嘿,其余的就是前面的体系结构图中的一些词啦,因为多是解释,就自己看啦,不在这里列出,呵呵。今天就复习至此咯,明天我会继续加油的。

你可能感兴趣的:(oracle,服务器,数据库,sql,应用服务器,processing)