Oracle数据库的实例构成分析

2017-04-01 17:39邓丽萍
数字技术与应用 2016年10期

摘要:内存结构是Oracle数据库体系结构中最为重要的部分之一,也是影响数据库性能的主要因素。在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则不是有的用户可能连接上,就是查询速度明显下降。因此,在开始对Oracle数据库学习和操作前,有必要理解Oracle的内存结构。

关键词:Oracle数据库 内存结构 运行速度

中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2016)10-0251-01

1 内存结构

影响数据库性能的最主要因素是内存。Oracle数据库的内存结构分为程序全局区(PGA)和系统全局区(SGA),每个Oracle数据库实例有且仅有一个系统全局区SGA。在Oracle实例的启动时自动分配内存,Oracle数据库关闭时释放。

SGA(System Global Area)是一组共享缓冲存储区,它由Oracle系统分配,用来存放控制信息和数据库数据,以便实现对oracle数据库的管理和操作。SGA中包含3个必备(共享池(Shared Pool)、日志缓冲区(RedoLog Buffer Cache))、数据缓冲区(Database Buffer Cache)和2个可选(Java池(可选)(Java Pool)、大型池(可选)(Lager Pool))。可通过SHOW命令查看SGA的大小,SQL>SHOW PARAMETER sga_max_size;

共享池包含的库高速缓存器对SQL语句和PL/SQL程序进行语法分析、编译和执行的内存区能提高SQL性能和用于收集最近使用的数据库中的数据定义信息的数据字典缓存器能有效改善响应时间。可通过SHOW命令查看shared pool的大小并用ALTER SYSTEM SET命令修改shared pool的大小,SQL>SHOW PARAMETER shared_pool_size;

SQL>ALTER SYSTEM SET shared_pool_size =15M;

数据缓冲区(Database Buffer Cache)存储数据文件中数据块的拷贝。利用最近最少使用算法(LRU)可以使数据的更新操作性能大大地提高。查看数据缓冲区的大小和修改大小的方法同上用SHOW和ALTER SYSTEM SET命令,只需将shared_pool_size改为db_cache_size即可。

日志缓冲区(Database Buffer Cache)是个环状的(可循环的)缓存器,用于存储数据库的修改操作信息,恢复数据库信息。其查看大小方法为:SQL>SHOW PARAMETER log_buffer;

Java池(Java Pool)是可选项,为执行Java命令提供分析与执行的内存空间。其查看大小和修改大小的方法同上用SHOW和ALTER SYSTEM SET命令,只需将shared_pool_size改为java_pool_size即可。

大型池(Lager Pool)也是可选项,用于Oracle数据库的备份与恢复操作、并行的消息缓存等。其查看和修改大小的方法同上,将shared_pool_size改为large_pool_size。

2 进程结构

Oracle进程结构的类型有:用户进程和Oracle进程,服务器进程和后台进程构成Oracle进程,每个系统进程的大部分操作都是相互独立的,互不干扰。

用户进程是连接Oracle数据库执行应用程序时创建用以完成相关用户所指定的任务。在oracle数据库中有两个与用户进程相关的概念:连接与会话。连接是一条用于连接用户进程与数据库实例的通信路径,该通信路径由硬件线路、网络协议和操作系统进程通信机制构成。

服务器进程用于处理用户进程所提出的请求,此用户进程是由连接到Oracle数据库实例的用户所提出的。

后台进程:是一些相互独立的附加进程。此进程用于确保oracle数据库不仅能在任意时刻都能处理复杂的数据操作和多用户的并发请求,还能提高并优化系统性能。

后台进程分为必备进程和可选进程。

必备进程是当Oracle开启时所必须要有的5个基本进程,缺一不可,如果进程崩溃数据库也会崩溃。它们分别是:DBWRn(将数据缓冲区中被修改过的数据写回到数据文件里)、LGWR(将日志缓冲区写入磁盘上的一个日志文件,是负责管理日志缓冲区的一个Oracle后台进程)、PMON(监视数据库的用户进程,并释放不当中断连接而被占用的资源)、SMON(在实例开始时执行必要的恢复。负责清理不再使用的临时段和在字典管理的表空间中合并临近的空闲区段)、CKRT(主要负责数据文件和控制文件的最新状态)。

可选进程是当有需要开启特殊功能时才会启动的进程如:ARCn(自动地在LGWR进程将事务日志文件填写重做项后备份这些事务日志文件)、REDO(负责在分布式数据库环境下,自动恢复失败的分布式事务)等等。

参考文献

[1]王红艳,李涛.ORACLE数据库集群技术的具体实施[J].电脑知识与技術,2011(02).

[2]张学义,王观玉,黄隽.基于Oralce数据库SQL查询优化研究[J].制造业自动化,2011(02).

[3]李可可.浅析Oracle数据库的性能优化方法[J].硅谷,2011(02).

[4]卢友娥,游莉.Oracle数据库系统内存优化探讨[J].石油工业计算机应用,2011(01).

[5]张婷.Oracle数据库优化研究[J].中国新技术新产品,2011(10).

[6]杨俊杰.浅析Oracle数据库应用[J].中国新技术新产品,2011(10).

收稿日期:2016-09-08

作者简介:邓丽萍(1982—),女,汉族,江西贵溪人,毕业于江西师范大学,现就职于江西信息应用职业技术学院,讲师,硕士,研究方向:软件开发、

软件教学。