文章目录
- Oracle体系结构
- Oracle的内存结构
- Oracle的进程结构
- 服务器进程
- 后台进程
- 可选后台进程
- 物理存储结构
- 逻辑存储结构
概念: Oracle server由Oracle instance和Oracle database组成,Oracle instance由后台进程和共享内存组成,Oracle的实例包含了内存结构和进程结构,Oracle database由物理文件组成。
Oracle体系结构
总体的体系结构
Oracle的内存结构
oracle 内存主要由SGA+PGA+后台进程组成
SGA 的组成
共享池 shared pool、大池 large pool、流池 streames pool、JAVA 池java pool、重做日志缓冲区 redo log buffer、数据库高速缓冲区 database buffer cache、in-memory 区。
shared pool(共享池)
缓存执行过的SQL语句,执行计划、 PL/SQL语句的代码块、 以及在编译SQL, PL/SQL语句是参照的数据字典信息、 提高SQL语句以及PL/SQL语句的执行效率。
database buffer cache(数据库缓冲区)
数据库缓冲区的主要作用是缓存使用过的数据,Oracle数据库中所有的操作都是在buffer cache中进行,每次做dml或者ddl的时候会先将把数据文件里的数据读取到buffer cache中,再进行操作。
redo log buffer(重做日志缓冲区)
Redo Log Buffer 缓存数据库修改的信息,后台进程LGWR负责将Redo Log Buffer中的信息写入到磁盘上,必要时,重做条目还可以用于数据库恢复。
Large pool(大池)
large pool用来备份恢复,用以缓解oracle对共享池和pga区内存的使用压力。
Java pool(Java池)
用于Java程序使用,JVM等
stream pool(流池)
数据库在流工作是使用的内存区域。
Oracle的进程结构
客户端进程+ Oracle 进程( 后台进程+ 服务器进程 )组成
服务器进程
处理连接到该实例的客户端进程的请求。客户端进程始终通过单独的服务器进程与数据库通信。
1.解析并运行sql语句,包括创建和执行查询计划
2.执行pl/sql代码
3.将数据文件读入高速缓冲区(buffer cache)
4.返回结果
服务器进程分为二类
专有服务器进程: 客户端连接仅与一个服务器进程关联。每个客户端进程都直接与其服务器进程通信
共享服务器进程: 客户端应用程序通过网络连接到调度程序进程,而不是服务器进程,接收来自已连接客户端的请求,并将其放入大型池的请求队列中
后台进程
后台进程执行操作数据库所需的维护任务,并最大化多个用户的性能。
程序监控进程(PMON):
监视其他后台进程和执行进程恢复, 如: 如果Server process非正常关闭,则PMON负责清理它占用的各种资源。
监听器注册器进程(LREG)
LREG 向监听器注册有关实例和调度程序进程的信息, 实例启动时,LREG 轮询侦听器以确定它是否正在运行。如果侦听器正在运行,则 LREG 会向其传递相关参数。如果它没有运行,则 LREG 会定期尝试与它联系。
系统监控进程(SMON)
负责各种系统级清理职责
1.必要时在实例启动时执行实例恢复
2. 清理未使用的临时段。例如,Oracle 数据库在创建索引时分配范围。如果操作失败,则 SMON 清理临时空间。
数据库写进程(DBW n)
将数据库缓冲区的内容写入数据文件。DBW n 进程将数据库缓冲区高速缓存中的已修改缓冲区数据写入磁盘。
日志写进程(LGWR)
负责管理重做日志缓冲区。LGWR 将重做日志缓冲区的一个连续部分内容写入到联机在线重做日志文件中。
在以下情况下,LGWR 将自上次写入以来已复制到缓冲区的所有重做条目写入:
用户提交事务。
发生联机重做日志切换。
自 LGWR 上次写以来已经过去了三秒钟
重做日志缓冲区已满三分之一,或包含 1 MB 的缓冲数据。
DBW n 必须将修改后的缓冲区写入磁盘
在 DBW n 可以写入脏缓冲区之前,必须将与更改缓冲区相关联的重做记录写入磁盘。
检查点进程(CKPT)
更新控制文件和数据文件的相关信息,通知 DBWn 后台进程写磁盘。
可选后台进程
存档进程(ARC n)
将联机重做日志文件复制到脱机的归档文档中,即归档。
作业队列进程(CJQ0 和 Jnnn) Oracle 数据库动态地管理作业队列过程,从而使作业队列客户端可以在需要时使用更多的作业队列过程。
物理存储结构
Oracle 数据库有哪些数据库文件
数据文件: 数据文件是一个由 Oracle 数据库创建,并包含数据结构,包含数据库中的用户数据和应用程序数据。
控制文件 Control files:
存储数据库物理结构(数据文件、联机重做日志文件和归档的重做日志文件)位置的信息。是 Oracle 数据库用来查找定位数据库文件,并管理数据库状态的根文件。在数据库装载(mount)和打开(open)后使用控制文件。
联机重做日志文件 Online redo log files
存储的是数据进行更改的记录信息。数据库维护在线重做日志文件,以防止数据丢失。用于数据库恢复。
逻辑存储结构
Oracle 数据库为数据库中的所有数据分配逻辑空间,数据库空间分配的逻辑单元是数据块、 扩展区、 段、和表空间。在物理级,数据被存储在磁盘上的数据文件中,数据文件中的数据存储 在操作系统块中。以下是物理和逻辑存储的实体关系图