
1.4 Oracle 12c体系架构
一个完整的数据库体系结构包括数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。Oracle 12c数据库的体系结构相当庞大,开发人员可以从Oracle的官方网站下载相应的体系结构图。从开发及管理的角度来讲,本节简单介绍内存结构、进程结构和物理结构。
1.4.1 内存结构
Oracle内存由SGA(System Global Area,系统全局区)和PGA(Process Global Area,程序全局区)构成。
SGA中存储数据库信息,由多个数据库进行共享,包括共享池、数据缓冲区、日志缓冲区、大池、Java池、Streams池和数据库字典缓冲区等。
1.共享池
共享池是对SQL、PL/SQL程序进行语法分析、编译和执行的内存区域。共享池的大小直接影响数据库的性能,它由库高度缓冲区和数据字典缓冲区组成,其中,库高度缓冲区又包括共享SQL区、私有SQL区(只在共享服务器内存)、共享PL/SQL区和控制结构区。
2.数据库缓冲区
数据库缓冲区是SGA中的一个高速缓冲区域,用来存储最近从数据库中读出的数据块(如表)。数据库缓冲区的大小对数据库的读取速度有直接的影响。当用户处理查询时,服务器进程会先从数据库缓冲区查找所需要的数据库,当缓冲区中没有时才会访问磁盘数据。
3.日志缓冲区
当用户通过INSERT、SELECT和DELETE等语句更改数据库时,服务器进程会将这些修改记录到重做日志缓冲区内,这些修改记录也叫重做记录。相对来说,日志缓冲区对数据库的性能影响较小。当数据库发生意外时,可以从日志缓冲区内读取修改记录来恢复数据库。
4.大池
为了进行大的后台操作而分配的内存空间,主要指备份恢复、大型I/O操作和并行查询等。
5.Java池
Java池内存储了Java语句的文本和语法分析表等信息,如果要安装Java虚拟机,就必须启用Java池。
6.Streams池
Streams池是高级复制技术的一部分,其功能是存放消息,这些消息是共享的。
7.数据字典缓冲区
数据字典缓冲区是共享池的一部分,又称为数据字典区或行缓冲区,包含数据库的结构、用户信息和数据表、视图等信息。数据字典缓冲区存储数据库的所有表和视图的名称、数据库基表的列名和列数据类型以及所有Oracle用户的权限等。
PGA包括会话信息、堆栈空间、排序分区以及游标状态。会话信息存放会话的权限、角色和会话性能统计信息等;堆栈空间存放的是变量、数组和属于会话的其他信息;排序区则是用于排序的一段专用空间;游标状态存放当前使用的各种游标的处理阶段。
1.4.2 进程结构
Oracle数据库的进程结构包括用户进程、服务器进程和后台进程这三种类型。用户进程位于客户端,服务器进程和后台进程位于服务器端。
1.用户进程
用户进程是一个需要与Oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程。对于专用连接来说,用户在客户端启用一个应用程序,就是在客户端启用一个用户进程。
2.服务器进程
服务器进程用于处理连接到该实例的用户进程的请求。当用户连接到Oracle数据库实例创建会话时,即产生服务器进程。当用户与Oracle服务器端连接成功后,会在服务器端生成一个服务器进程,该服务器进程作为用户进程的代理进程,代替客户端执行各种命令并把结果返回给客户端。用户进程一旦中止,服务器进程立刻中止。
3.后台进程
后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。Oracle实例启动时即创建一系列后台进程,如PMON监视用户进程运行是否正常,SMON实时监控整个Oracle状况,其他进程这里不再说明。
【范例2】
执行以下语句可以查询启动的后台进程信息:
SELECT * FROM v$process;
执行以下语句查看启动DBWR进程个数:
SHOW PARAMETER db_wr;
1.4.3 物理结构
物理结构就是Oracle数据库所使用的操作系统的物理文件,在数据库中的所有数据都保存在物理文件中,它是存放在磁盘上的结构文件。主要的物理文件包括数据文件、控制文件、重做日志文件和参数文件4类。
1.数据文件
数据文件用于存储数据库的全部数据(如表和索引的数据),每一个Oracle数据库都有一个或多个物理的数据文件。
2.控制文件
控制文件用于控制数据库的物理结构,它记录数据库中所有文件的控制信息,包含数据库名称、数据库建立日期、数据库中数据文件与日志文件的名称和位置、表空间信息、归档日志信息、当前的日志序列号以及检查点信息等。
3.重做日志文件
Oracle用重做日志文件保存所有数据库事务的日志。当数据库被破坏时,用该文件恢复数据库。
4.参数文件
参数文件保存与Oracle配置有关的信息,一般有以下三种参数文件。
(1)初始化参数文件用于在数据库启动实例时配置数据库,该文件主要设置数据库实例名称、主要使用文件的位置和实例所需要的内存区域大小等。
(2)配置参数文件一般被命名为config.ora,由初始化参数文件调用。在数据库对应多个实例的时候才会存在,如果一个数据库只对应一个实例则不会产生此文件。
(3)二进制参数文件pfile(Parameter File,参数文件)和spfile(Server Parameter File,服务器参数文件)都属于二进制文件。pfile包含数据库的配置信息,是基于文本格式化的参数文件;spfile包含数据库及例程的参数和数值,是基于二进制格式的参数文件。
思考与练习
一、填空题
1.Oracle 12c的数据库版本包括企业版、标准版、__________和个人版。
2.Oracle程序开发中必须启动的两个服务是数据库监听服务和__________。
3.Oracle内存由SGA和__________构成。
4.__________的大小对数据库的读取速度有直接的影响。
5.Oracle数据库的进程结构包括用户进程、__________和后台进程三种。
6.__________一般被命名为config.ora,由初始化参数文件调用。
二、选择题
1. Oracle 12c是在__________年发布的。
A. 2006
B. 2007
C. 2013
D. 2014
2. Oracle 12c的新特性不包括__________。
A. 放宽多种数据类型长度限制
B. SELECT语句的改善
C. 使用FETCH实现TOP N的查询
D. WITH语句的改善
3. SGA中的内容不包括__________。
A. Java池
B. 程序全局区
C. 数据库字典缓冲区
D. 数据缓冲区
4.__________记录数据库中所有文件的信息,包括数据库的名称、数据库建立日期、表空间信息、归档日志信息以及检查点信息等。
A. 参数文件
B. 数据文件
C. 重做日志文件
D. 控制文件
三、简答题
1.简单描述Oracle 12c数据库的各个版本。
2.请说出Oracle 12c数据库的新增特性(至少三点)。
3.登录到Oracle 12c数据库的方法有哪些?