oracle 体系结构
oracle服务器实例
oracle实例由sga和后台进程组成。
sga包含共享池,数据库高速缓冲区,重做日志高速缓冲区,java池,流池,大池等
后台进程由系统监控(SMON)、进程监控(PMON)、数据库写入进程(DBWR)、日志写入进程(LGWR)、检查点(CKPT)、归档(ARCH)等。数据库实例启动必须启动前5个进程,否则数据库无法正常使用。
oracle服务器由实例、数据库文件、用户进程和用户链接数据库的服务器的服务器进程,pga
数据文件(物理结构)
控制文件(crontrol files)维护数据库的完整性信息
重做日志文件(redo log files)记录数据库发生的变更记录,发生故障时用于恢复
数据文件(datafiles)数据库实际的数据
参数文件(parameter)定义数据库实例的特性,sga大小、高速缓冲区大小等
密码文件(password)存放所有以sysdba或者sysoper权限连接数据库的用户的口令,如sys,此密码不是存在数据库中,而是密码文件中,要注意
归档日志文件(archivelog files)日志文件的脱机备份,发生故障时可用户数据恢复
共享池(shared pool)
库高速缓存:缓存最近使用的sql和pl/sql语句,使用LRU算法,将一段时间内没有使用的语句清除
数据字典缓存:缓存了数据文件、表、索引、列、用户、权限信息和其他一些数据对象的定义;比如执行sql需要解析用户名和用户权限,数据字典缓存可以缓存这些信息加快查询,主要的作用就是缓存数据字典信息缩短查询时间
数据库高速缓冲区
数据库高速缓冲区的作用是缓存用户最近从数据文件读入的数据块信息或者用户修改后的数据重写回数据文件中的信息;如果用户修改过的数据还没有提交给数据库称为:脏数据。简单理解就是缓存用户执行过的语句,放到内存中,不用直接物理读,因为内存肯定比物理磁盘读取更快。
重做日志高速缓冲区
当用户执行了DML和DDL语句后,数据发生的任何变化都会写入到重做日志高速缓冲区,不管变化前后,保障了数据库可以顺利的前滚或者后滚进行数据恢复。
大池(Large Pool)
大池为sga可选,只在共享服务器模式下配置,用于分配额外的空间给用户进程和服务器进程之间的辉辉信息
进程全局区(PGA)
专用服务器模式下的pga
oracle 体系结构
共享服务器模式下的pga
oracle 体系结构
服务器进程(server process)
它类似一个中介,完成用户的各种数据库服务请求,再把数据库的响应返回给客户端。
专有服务器模式下,一个服务器进程对一个用户进程;
共享服务器模式下,一个服务器进程对应多个用户进程
用户进程(user process)
终端用户访问数据库客户端链接发起的进程,如sqlplus,plsql developer
oracle 体系结构