一:Oracle 数据库管理系统体系结构
Oracle服务器(Server)由以下五点组成:
(1)Oracle实例(instance);
(2)Oracle数据库(database);
(3) 其他关键文件(parameter,password,archived log);
(4)用户进程(user process);
(5)服务器进程(server process);
-
Oracle服务器:
-
Oracle实例:
2.1
实例是访问数据库的一种机制,由内存结构和后台进程组成。
实例一旦启动即分配SGA和所需的后台进程。
每个实例只能操作对应的一个数据库,一个数据库可以同时被几个实例操作。
2.2
实例的内存结构也称为系统全局区(system global area,SGA)SGA是实例最基本的部件之一。
SGA包含的内存结构:
共享池(shared pool)
数据库高速缓存区(database buffer cache)
重做日志缓冲区(redo log buffer)
其他结构(锁,统计数据等)
2.3
实例必需的5个后台进程:
SMON
PMON
DBWR
LGWR
CKPT -
Oracle数据库:
3.1
数据库是数据的集合,也称为物理(外存)结构。
3.2
组成数据库的三类文件:
控制文件(control files):包含了维护和校验数据库一致性所需的信息。
重做日志文件(redo log):当系统崩溃后进行恢复所需的变化信息。
数据文件(data files):真正的数据 -
Oracle其他的关键文件:
4.1
初始化参数文件(parameter files):定义实例的特性,如内存结构 大小,DBWR的个数。
4.2
密码文件(password files):用户启动关闭实例时所需的密码。
4.3
归档重做日志文件(archived redo log):重做日志的脱机备份。系统恢复时所需。 -
服务器进程:
5.1
当Oracle创建一个服务器进程时要为该服务器进程分配一个内存区,称为程序全局区(program global area,PGA)。与SGA不同,PGA是私有的内存区,不能共享,只属于一个进程。随进程的创建而被分配,终止而被回收。
5.2
PGA包含以下结构:
排序区(sort area):用于处理SQL语句所需的排序
游标状态区(cursor state):指示会话当前所使用的SQL语句的处理状态。
会话信息区(session infomation):会话的用户权限和优化统计信息
堆栈区(stack space):其他会话变量