目录
1 Oracle系统框架
1.1 Orace SGA组成
1.2 Oracle后台进程
1.3 PGA服务进程
2 数据库与实例
2.1 数据库
2.2 实例
3 总结
Oracle公司(甲骨文)是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州Redwood shore,面向全球开放oracle认证。
Oracle开发的关系数据库产品因性能卓越而闻名,Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统,是世界最好的数据库产品。此外,Oracle公司还开发其他应用程序和软件。同时,Oracle在英语里还是“神谕”的意思,意为“替神说话的”,寓指Oracle公司的发展目标和决心地位。
本系列文章将围绕Oracle11g及Oracle12c两个版本的相关内容展开
1 Oracle系统框架
学习Oracle,首先应了解Oracle整个框架体系,从整体来讲Oracle由实例和各种物理文件组成
1.1 Orace SGA组成
- Shared Pool:包括数据字典缓存,查询结果缓存,执行计划缓存,大小由shared_pool_size控制。
- Database Buffer Cache(DBC):就是Block(页)的缓存,计算引擎无论读或写文件中的数据,先把要读写的那部分Block加载到DBC,写之前要加锁,得到锁之后,读或写的就是这个DBC,而不是数据文件,DBWR(或DBWn)会适时将DBC写到磁盘。参数db_cache_size控制其大小,如果是0表示自动管理。每个Block的大小是创建表空时设置,不可修改,从db_block_size查看块大小。
- Redo Log Buffer:redo日志的缓存,参数log_buffer控制其大小,更改记录的操作,通过并发调度后,先写Redo Log Buffer,再写DBC,commit时Redo Log Buffer会部分落盘,但DBC不会。
- Java Pool:专用于存储Java代码和数据。
- Large Pool:与Shared Pool类似,用于需要大内存的情况,以减轻Shared Pool负担。
1.2 Oracle后台进程
- DBWn - 数据库写进程,负责将缓冲区数据刷新到数据文件
- SMON - 系统监控进程,负责实例和数据库恢复
- PMON - 进程监控进程,负责进程控制和故障转移
- CKPT - 检查点进程,负责进行数据文件和控制文件的检查点更新
- LGWR - 日志写进程,负责将日志缓冲区数据写入联机日志文件
- ARCn - 归档进程,负责存档和备份填满的日志文件
- MMON - 内存监控进程,负责监控和优化SGA内存
- RECO - 恢复进程,负责控制和协调数据库恢复操作
- MMAN - 内存管理进程,管理数据库内存结构
- MMNL - 共享服务器监视进程,管理共享服务器进程
1.3 PGA服务进程
PGA:即,Server服务器进程。当客户端接入服务器时,在服务器端为每个连接分配一个进程和内存,这个内存就是PGA,SQL计算时(如排序、聚合)的中间数据,用户数据,cursor等,存放在PGA中,UGA在PGA中。
2 数据库与实例
每一个Oracle数据库都是数据的集合,这些数据包含在一个或多个文件中。数据库有物理结构和逻辑结构两种。实例则是由命名为系统全局区的内存区域和相应的后台进程组成,这些后台进程负责(System Global Area 即SGA)和数据库磁盘文件之间的交互。虽然在实际的应用场合"数据库"和"实例"可以交换使用,但是这两者之间存在本质的区别,他们是完全不同的实体
2.1 数据库
数据库是数据的集合,位于收集和维护相关信息的数据库服务器上的一个或多个文件中,数据库由各种物理结构和逻辑结构组成,而数据库表则是数据库中最重要的逻辑结构。表由包含相关的数据行和列组成.
表的基本组成
组成数据库的文件主要分为两类,数据库文件和非数据库文件,两者之间的区别在于存储什么类型的数据,数据库文件包含数据和元数据;非数据库文件则包含初始参数、记录信息等
2.2 实例
企业服务器是主要组成部分是一个或多个CPU、磁盘空间和内存。Oracle数据库存储在服务器磁盘上,而Oralce实例则存储于服务器的内存中。Oracle实例由一个大型的内存块和大量后台进程组成,该内存块分配分配在Oracle数据库的系统全局区域中,即SGA,通过后台进程在SGA和磁盘上的数据库文件进行交互。但在Oracle应用集群(RAC)中,多个实例将使用相同的数据库。共享数据库的实例可以在相同的服务器上,但最好是分布在不同的服务器上,这些服务器通过高速互联进行连接,并且访问专门的、支持RAID的磁盘子系统上的数据库,关于Oracle RAC的相关内容,后续进行阐述
3 总结
本文从Oracle数据库的基础架构、数据库及数据库实例三个方面进行了相关的阐述。主要讲述了Oracle SGA、后台进程、PGA等方面基础组成;讲述了数据库和实例的区别等方面的内容。从整体上对Oralce数据库的组成。