第一章:Oracle数据库结构
基本知识
三个概念:Oracle服务器、Oracle实例和Oracle数据库。
Oracle服务器是最大的一个概念,包含一个Oracle实例和一个Oracle数据库。
Oracle实例是后台进程和内存结构的组合。
Oracle数据库包含一些数据库文件。
基本结构:2个部分组成,Oracle实例和Oracle数据库。
Oracle实例主要是SGA(系统全局区),其中主要三块包括Shared Pool(共享池)、Database Buffer Cache(数据库缓存)、Redo Log Buffer(重做日志缓存);另外可选的还有Java Pool(Java池)、Large Pool;
Oracle实例中还包括:后台进程,其中有PMON(进程监控)、SMON(系统监控)、DBWR(数据库写入)、LGWR(日志写入)、CKPT(检查点)、Others。
Oracle数据库主要三个块,包括:Datafiles(数据文件)、ControlFiles(控制文件)、RedoLogfiles(重做日志文件);另外还有Parameterfile(参数文件)、Passwordfile(口令文件)、ArchiverLogfiles(归档日志文件)。
---------------------------
Oracle服务器
是信息管理的关键。必须可靠的管理多个用户的数据,以便多个用户能够同时访问同一数据。包括Oracle实例和Oracle数据库。
Oracle实例
是用户与数据库连接一种方式,始终打开一个,并且只打开一个数据库;由内存结构和后台进程组成。
Oracle数据库
数据文件集合,包括三类文件:数据文件,控制文件和重做日志文件。
内存结构
两个区:SGA(系统全局区)和PGA(程序全局区);
SGA包括:共享池、数据库缓冲区高速缓存、重做日志缓冲区、其它结构。还有大型共享池和Java池。
SGA
SGA是动态的,大小由参数SGA_MAX_SIZE参数指定,由粒组单位进行分配,当SGA小于128M时,粒组大小为4M,若SGA大于128M时,则为16M;粒组大小由SGA_MAX_SIZE总计大小;
共享池
用于存储最近执行的SQL语句和使热土的数据定义,包含两个关键性内存结构:数据库高速缓存和数据字典高速缓存;其大小由SHARED_POOL_SIZE参数确定;
数据库高速缓存
存储最近使用的SQL和PL/SQL语句,使用LRU管理,包括两个结构:共享的SQL区和共享的PL/SQL区,大小由共享池大小确定;
数据字典高速缓存
数据中最近使用的定义集合,包括数据库相关各个对象的信息,大小由共享池大小决定;
重做日志缓冲区
记录对数据块所做的全部更改,主要用于恢复数据,大小由LOG_BUFFER参数确定;
大型共享池
分担共享池的部分工作,大小由LARGE_POOL_SIZE确定;
Java池
存储Java命令的服务分析,在使用Java时是必须的,大小由JAVA_POOL_SIZE确定;
PGA
为连接到Oracle数据库的每个用户进程保留的内存,在创建进程时分配,在终止进程时回收,一个进程使用一个PGA;
Process Structure 进程结构
包括三种:用户进程、服务器进程和后台进程;
用户进程:在数据库用户在客户端请求连接到Oracle服务器时启动;
服务器进程:与Oracle实例相连,在用户和数据库之间建立一个连接;
后台进程:在Oracle实例启动时启动。服务器进程与数据库通过后台进程进行数据操作。
用户进程
请求与Oracle服务器连接的程序,必须先建立连接,但不与Oracle数据库直接连接;
服务器进程
直接与Oracle服务器连接的程序,执行生成的调用并返回相关结果;当用户进程连接上服务器是,服务器进程就启动,当用户进程与Oracle 服务器断开时,服务器进程回收;
后台进程
包括两部分:必备后台进程和可选的后台进程。
必备的:DBWn、PMON、SMON、CKPT、LGWR;
可选的:ARCn、LMDn、RECO、CJQ0、LMON、Snnn、Dnnn、Pnnn、LCKn、QMNn;
实际上,ARCn(归档进程)是很关键的,为了提高Oracle服务器的安全性及备份和可用性,该进程是必须的。
本文出自 “snowyan welcome!” 博客,谢绝转载!