彻底讲明白ORACLE数据库管理系统体系结构

时间:2020-04-13 13:52:49   收藏:0   阅读:120

ORACLE数据库管理系统体系结构

 

介绍ORACLE数据库管理系统的基本轮廓和程序模块结构、实例概念和组织、进程结构和功能、内存结构和用途,数据字典结构和使用、进程配置和管理、运行模式、程序接口、事务管理。

 

一、基本轮廓和程序模块结构

 技术分享图片

 

DBMS程序模块结构

模块类别

模块名称

系统运行管理类

(运行管理)

系统启停控制

存储管理

数据存取

并发控制

安全控制

完整性控制

事务管理

通信控制

数据更新

运行日志管理

语言翻译解释处理类

(数据操纵)

DDL翻译

DML处理

终端查询语言结识(交互、嵌入)

DB控制语言解释

公用定义类

(数据定义)

模式定义

字模式定义

安全定义

信息格式定义

公用维护类

(建立和维护)

装入

DB重构

DB恢复

统计分析

信息格式维护

工作日志

数据转储、编辑、打印

 

二、实例的基本概念

 

实例:SGA+ORACLE进程(用户、服务器、后台)=ORACLE实例

  启动实例(分配SGA、启动ORACLE进程)

 

  实例装配数据库(装配时实例查询控制文件:mount)

  数据库准备打开(打开前,数据库为关闭状态,只有DBA可存取)

  数据库打开(打开后,授权的用户可以存取数据库)

  关闭数据库(先卸载数据库,后关闭实例:unmount)

 

三、进程结构

 

 

1、单进程ORACLE实例

单个进程负责执行客户端和服务器端代码,ORACLE实例和客户端应用程序不能分开执行,又称单用户ORACLE(如MS-DOS下的ORACLE),使用很少。

技术分享图片

2、多进程ORACLE实例

多个进程负责执行代码的不同部分,为每个连接的用户使用单独的进程,又称多用户ORACLE。用户进程执行客户端代码(应用程序或ORACLE工具代码),ORACLE进程执行ORACLE服务器代码。

 

3、用户进程

 

4、ORACLE进程

 

技术分享图片

5、后台进程的作系用与关

 

序号

后台进程

功能与说明

1

数据库写(DBWn

0-9

功能:按照最近最少使用(LRU)算法,以批量(多块)方式,将“脏的”缓冲区的内容写入数据文件,保持缓冲区的“清洁”和数量。

写入:

  • 服务器进程找不到清洁的可用缓冲区时;

  • 发生检查点时(LGWR停止写一联机重做日志文件并开始写另一个,且初始化参数LOG_CHECKPOINT_INTERVAL和LOG_CHECKPOINT_TIMEOUT指定时间间隔到时)写相应缓冲区;

  • 发生增量检查点时(脏缓冲区数量大于初始化参数DB_BLOCK_MAX_DIRTY_TARGET值)。

说明:

  • DBW0对多数系统已足够;

  • 大负荷系统可配置额外进程(DBW1-DBW9),但必须是多CPU系统,且应配置和调整初始化参数DB_WRITER_PROCESS和DB_BLOCK_LRU_LATCHES;

  • 在某些平台上,一个DBW进程可以有多个I/O服务器进程,若一个I/O进程被阻塞,其它I/O进程可继续写其它磁盘,但该平台上不能使用多个DBW进程。

2

日志写(LGWR

功能:将重做日志缓冲区中自上次写以来已经拷贝到缓冲区中的所有重做条目写入重做日志文件。重做日志缓冲区是一个循环缓冲区,LGWR正常写的速度很快。

写入:

  • 用户提交一个事务时;

  • LGWR3秒内未活动时;

  • 重做日志缓冲区1/3被填满时;

  • DBWn进程将修改的缓冲区写入磁盘时。

说明:

  • LGWR可同步写活动的镜像联机重做日志文件;

  • 在某些平台上,一个LGWR进程可以有多个I/O服务器进程,若一个I/O进程被阻塞,其它I/O进程可继续写其它磁盘。

3

检查点(CKPT

功能:发生检查点时,修改所有数据文件的标题和记录该检查点的细节。通常由LGWR完成,但有多个数据文件,而使用LGWR又明显降低系统性能时才使用CKPT。

说明:

  • CKPT不将块写磁盘,而由DBWn完成;

  • 初始化参数CHECKPOINT_PROCESS控制CKPT是否使用,缺省为False。

4

系统监控(SMON

功能:在实例启动时执行实例恢复,整理不再使用的临时段,合并邻近的空闲空间获得更大的空闲可用块。

说明:定期被唤醒,或在需要时被其它进程调用。

5

进程监控(PMON

功能:恢复出故障的用户进程,整理缓冲区的高速缓存和释放用户进程使用的资源。定期检查调度进程和服务器进程状态,重新启动非正常终止的进程。

说明:定期被唤醒,或在需要时被其它进程调用。

6

存档(ARCH

功能:联机重做日志填满时,将日志内容拷贝到指定的存储设备中。

说明:在ARCHIVELOG方式中重做日志和自动存档使能时,ARCH才出现。

7

恢复(RECO

功能:在分布式数据库环境中自动解决分布式事务中的故障。

8

锁(LCKn(0-9)

功能:在并行服务器系统中提供实例间的封锁。

9

作业队列(SNPn(0-Z)

功能:在分布式数据库环境中自动刷新表快照,还执行DBMS_JOB包创建的作业请求。

说明:定期被唤醒,并刷新预定义刷新的任何快照,故障不会引起实例故障,ORACLE重启故障进程。

10

队列监控(QMn

功能:监控消息队列的ORACLE高级(AQ)队列。

说明:故障不会引起实例故障,ORACLE重启故障进程。

11

调度(Dnnn

功能:通过允许用户进程共享限定数量的服务器进程来支持多线程配置。

说明:每个实例可建立多个调度进程,每个网络协议至少建立一个调度进程,在实例运行时可增加或删除调度进程以达到最佳数量。

12

共享服务器(Snnn

功能:在多线程配置模式下,每个服务器进程服务于多个客户请求。

 

6、跟踪文件和报警文件

 

四、内存结构

 

ORACLE内存结构

SCA

PGA

堆栈区

会话信息区

私有SQL区(专用模式)

SGA

数据库高速缓存(DBC

重做日志缓冲区(RLB

SA

共享池(SP

库高速缓存

共享SQL

私有SQL区(共享模式)

PL/SQL区(过程和包)

控制结构(锁、库、句柄)

数据字典高速缓存(DC

控制结构(字符集转换、网络安全属性)

数据字典高速缓存(DC

其它信息区

 

1、ORACLE内存中保存的信息

 

2、虚拟内存

 

3、软件代码区(SCA)

 

4、系统全局区(SGA)

 

5、程序全局区(PGA)

 

6、排序区(SA)

 

五、进程配置方案

 

 

1、用户/服务器进程结构

 

 

2、专用服务器进程结构

 

3、多线程服务器进程结构

 

技术分享图片

 

六、程序接口

 

1、程序接口的功能:

 

2、程序接口的结构

 

3、程序接口的驱动程序

 

4、操作系统通信软件

 

七、数据字典

 

1、数据字典(Data Dictionary)的信息

 

2、数据字典的结构(基表、视图和动态性能表)

 

3、数据字典的使用

 

八、事务管理

 

1、事务(Transaction)

 

2、事务结束的情况

 

3、事务提交(修改永久化)

SGA的回滚段缓冲区中生成回滚记录(含旧数据)

SGA的重做日志缓冲区中生成重做日志条目(提交前可存入磁盘)

SGA的数据库缓冲区中生成数据的修改(提交前可存入磁盘)

分配回滚段记录及事务的系统修改序号(SCN:唯一),并记录到表中

LGWR将SGA重做日志条目和SCN写入联机重做日志文件中

ORACLE释放表和行上的锁

ORACLE将事务标记为“完成”

 

4、事务回滚(全部或部分取消修改)

取消全部修改

ORACLE释放事务的所有数据锁

事务结束

回滚保留点之后执行的语句

保护指定的保留点,但丢弃指定保留点之后的保留点

ORACLE释放所有表和指定保留点获得的行锁,但保留指定保留点前获得的数据锁

事务保持活动,可以继续

 

5、保留点(SavePoint)

 

 

技术分享图片

更多内容请关注微信公众号:数据与人

技术分享图片

原文:https://www.cnblogs.com/sunkang-dba/p/12690728.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!