Oracle实例=内存+后台进程
Oracle数据库=实例+物理存储结构
由上图可知Oracle实例(一个Instance)由内存结构和程序结构组成,内存结构主要是SGA,程序结构主要是后台进程。
物理存储结构主要是数据库文件。
这次仔细学习了Oracle实例的具体内容。
为什么Oracle数据库做的这么复杂?
内存
- 数据查询的速度
- 更好的提升数据处理的速度
后台进程
- 为了完成特定的任务的服务进程
数据文件
- 数据的永久性保存
- 也是数据库性能下降的主要原因
实例之内存结构
System global area(SGA)
SGA区包括Oracle实例需要的一系列内存组件,用于存放数据信息和数据控制信息,这些内存信息被所有进程所共享。SGA的各个组成包括:
组成 | 描述 |
---|---|
Database buffer cache | 数据库高速缓冲区,里面存放着从磁盘读取到内存的数据块,这些数据块可以被所有的会话访问,是全局共享的。buffer cache分为三个部分,分别是default pool,keep pool,recycle pool。default pool是正常情况下,数据块存放的内存区域,default pool会根据一个过期算法(LRU,Least Recently Used,近期最少使用)将过期的脏数据(修改过的数据,没有修改的数据可以不写到磁盘上)写到磁盘上。keep pool这个区域用于将一些数据始终固定在内存中。recycle pool存放一些不经常使用的数据块,避免这些数据块在default pool中占据空间。 |
Shared pool | 共享池缓存着一些用户可以共用的信息:1、可以重新使用的SQL |