oracle结构体系

Oracle服务器(server)由Oracle实例(instance)和Oracle数据库(database)两大部分组成。

一,数据库

1,物理存储(外存)

1),数据文件(data files):包含了数据库中真正的数据。

2),控制文件(control files)包含了维护和校验数据库一致性所需的信息。

3),重做日志文件(redo log files):包含了当系统崩溃后进行恢复所需记录的变化信息。

4),其他的关键文件:

          初始化参数文件(parameter files):定义了实例的特性,如系统全局区中一些内存结构的大小、DBWR的个数。

          密码文件(password files):包含了数据库管理员或操作员用户在启动和关闭实例时所需的密码。

          归档重做日志文件(archived redo log files):是重做日志文件的脱机备份。在系统崩溃后进行恢复时可能需要这些文件。

2,逻辑存储

1),表空间

2),段

3),区间

4),快

二,实例(instance)是一种访问数据库的机制

实例一启动就分配系统全局区和启动所需的后台进程。

1,系统全局区(system global area,SGA):系统全局区是实例的最基本的部件之一。

系统全局区(SGA)中包含了以下几个内存结构:共享池(shared pool)、数据库高速缓冲区(database buffer cache)、重做日志缓冲区(redo log buffer)和其他的一些结构(如锁和统计数据)等。

SGA中的共享池(shared pool)是由库高速缓存(library cache)和数据字典高速缓存(data dictionary cache)两部分所组成。

a,为了能够共享SQL或PL/SQL的代码,库高速缓存要足够大,因为这样那些可以共享的SQL或PL/SQL代码才不会被很快地淘汰出内存。

b,表和列的定义等重用的机会要比SQL语句大,因此为了能达到共享这些信息的目的,数据字典高速缓存应该尽可能设置得大一些。

c,库高速缓存和数据字典高速缓存一样,Oracle并没有给出直接设置数据字典高速缓存大小的方法,只能通过设置共享池的大小来间接地设置数据字典高速缓存的大小。

命令来改变共享池的大小:

例1-1

SQL> ALTER SYSTEM SET SHARED_POOL_SIZE = 32M;

系统已更改。

但是所改变共享池的大小受限于SGA_MAX_SIZE参数。

2,进程

1),后台进程

实例的后台进程中有5个是必需的,即这5个后台进程中的任何一个没有启动,实例将自动关闭。这5个后台进程分别是SMON、PMON、DBWR、LGWR和CKPT。

2),服务进程

当Oracle创建一个服务器进程的同时要为该服务器进程分配一个内存区,这个内存区称为程序全局区(program global area,PGA)。与SGA不同,PGA是一个私有的内存区,是不能共享的,是只属于一个进程的。它随着进程的创建而被分配,随着进程的终止而被回收。

PGA包括以下结构(专用服务器进程的配置):

(1)排序区(sort area):用于处理SQL语句所需的排序。

(2)游标状态区(cursor state):用于指示会话当前所使用的SQL语句的处理状态。

(3)会话信息区(session information):包括了会话的用户权限和优化统计信息。

(4)堆栈区(stack space):包括了其他的会话变量。

如果是共享服务器进程或多线程的配置,以上这些结构除了堆栈区外大部分将存在SGA中。如果有large pool,它们就会被存在large pool,否则它们就会被存在共享池中。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值