OCP复习 - 管理(1-7) - 整体架构

Oracle系统架构由文件、进程和内存区组成。

文件包括:

控制文件、数据文件、联机重做日志、参数文件、密码文件、归档日志。另外还有运行时的TRACE文件和ALERT文件。
控制文件时一个二进制文件,其中保存了数据库名称,数据文件和日志名称,表空间,备份信息,日志SCN,CHECKPOINT信息,控制文件信息在V$CONTROLFILE视图中。

进程包括:

DBW0, LGWR, SMON, PMON, CKPT。

DBW0: 将data buffer cache中的数据写入数据文件。
LGWR: 将redo log cache中的数据写入重做日志。
SMON: 检查数据一致性,如果需要的话,在数据库打开的时候执行回滚、重做;管理资源(合并空间)
PMON: 在数据库会话发生失败时清理资源。
CKPT: 检查点进程,用以管理定期的将数据永久性写入物理文件。
ARC0: 备份进程(可选)。注意ARCHIVELOG和NOARCHIVELOG参数。

注意:在Unix平台下,以上的每个Oracle进程对应1个实际的操作系统进程,如果采用dedicated server模式,Oracle为每个会话创建1个操作系统进程,MTS模式则共享一个进程。在Win平台下,所有的后台进程和会话都共享一个Oracle.exe,不管采用Dedicated server还是MTS模式。

内存区:

内存区主要指SGA(System Global Area)和PGA(Program Global Area)。

 

SGA由多个进程共享,包括Shared pool,Data buffer cache,Redo Log Buffer。
共享池(shared pool)存放最近使用的SQL语句(包含SQL文本、解析树、执行计划)和数据字典中的数据(元数据、存储过程)。共享池的大小由SHARED_POOL_SIZE决定。
数据缓存区(data buffer cache)存放最近访问的数据。大小由DB_BLOCK_SIZE和DB_BLOCK_BUFFERS决定。
重做日志缓冲区(redo log buffer)用以跟踪最近修改的数据的变化情况。大小由LOG_BUFFER决定。
另外还有两个可选的缓冲区:Java pool用以存放Java代码,Large Pool用于和SQL语句执行无直接关系的数据,如备份恢复的数据块。

PGA由单个进程(会话)拥有。在MTS模式下,多个会话共享一个进程,这时候PGA中的部分信息会被移到SGA中。

执行一个SQL语句的过程包括:解析、执行、获取数据。其中,解析包含在shared pool中查找相同的SQL语句副本、语法检查、权限检查、决定执行计划、锁表等。

你可能感兴趣的:(OCP复习 - 管理(1-7) - 整体架构)