ORACLE入门(二)——Oracle体系架构
非cdb
Oracle服务器由Oracle例程和Oracle数据库两大部分组成。
Oracle例程是一种数据库访问机制,负责数据处理,主要由内存结构和进程结构组成。
1. 内存结构主要包括系统全局区(System Global Area,SGA)、进程全局区(Process Global Area,PGA)等
- SGA针对一个例程下多个会话共享数据,包含以下几大块:
a) 共享池(Share pool)包含两个部分:库缓存和数据字典缓存。
库缓存按已分析的格式缓存最近执行的代码;数据字典缓存存储系统数据。
b) 数据库高速缓冲区缓存(Database buffer cache):存储用户数据
c) 重做日志缓冲区缓存(Redo log buffer cache):记录事物 - PGA每个会话专用数据
2. 进程包括用户进程、服务器进程、后台进程。
- 用户进程:一般的客户端软件,用户界面
- 服务器进程:处理连接到当前实例的用户进程的请求,对客户端发来的sql进行执行并返回执行结果。
a) 专用服务器进程:效率高
b) 共享服务器进程:支持更多用户的连接 - 后台进程
a) PMON 进程监视器进程:后台进程清除失败的用户进程,负责清理内存储区和释放该进程使用的资源。
b) SMON 系统监视器进程:执行例程恢复操作
c) DBWR 数据库书写进程:负责将被修改的数据块和字典缓冲内容写入到硬盘。
d) LGWR 日志书写器进程:负责把联机重做日志缓冲内容写入到硬盘。
e) CKPT 检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
Oracle数据库包含了内部文件及外部文件
1. 内部文件
- Data files 数据文件
- Control files 控制文件
- Redo log files 日志文件:Oracle用来循环记录数据库改变的操作系统文件
2. 外部文件:管理员可更改
- Parameter file 参数文件
- Password file 口令文件
- Archived log files 归档日志文件:避免联机日志文件重写时丢失重复数据而对联机日志文件所做的备份
每个实例只能操作其对应的一个数据库,但一个数据库可以同时被几个实例操作(RAC)
cdb
oracle 12c引入了多租户环境,允许一个数据库容器CDB承载多个可插拔数据库PDB,CDB全称为Container Database翻译为数据库容器,PDB全称为Pluggable Database翻译为可插拔数据库,在oracle 12c之前实例与数据库是一对一或者多对一的关系,而在oracle 12c之后实例与数据库可以实现一对多的关系,也就是一个CDB,多个PDB。
每个CDB都有只有一个CDB根容器(也称为根容器、零个或多个用户创建的PDB
、只有一个SEED PDB(SEED PDB是由系统提供的模板,CDB可以使用它来创建新的PDB)