oracle体系结构图如下:
1.oracle由实例(instance)和数据库(database)组成
2.instance是由一个开辟的共享内存区SGA(System Global Area)和一系列后台进程组成,其中SGA主要被划分为共享池(shared pool)、数据缓冲区(db cache)和日志缓冲池(log buffer);
作用:
1.大型池的作用:用于为某些大型进程提供大量的内存分配
2.java池的作用:用于java虚拟机中特定会话的所有java代码和数据
3.共享池的作用:存储最近执行过的sql语句和数据对象的定义
4.streams池的作用:由oracle streams使用
5.日志缓冲区的作用:用于数据恢复
6.数据缓冲区高速缓存的作用:存储从数据文件中检索出数据块的拷贝
3.数据库是由数据文件、参数文件、日志文件、控制文件、归档日志文件等系列文件组成。归档文件可进行转移,用于数据备份。
4.PGA为非共享内存,用户发起的查询、更新操作,都是在PGA中先预处理。之后才进入instance.
5.PGA的主要作用:1.保存用户的连接信息、权限信息;指令的排序。注意:超过PGA内存限制时,超出的不菲在临时表空间完成。
6.PMON:Processes Monitor 进程监视器。
在执行某些更新语句,未提交进程崩溃了,PMON自动执行ROLLBACK..干预其他后台进程。
7.SMON:System Monitor 系统监视器
重点工作在与instance recovery、清理临时表空间、清理回滚段表空间、合并空闲空间等等。
8.LCKn(锁定进程):仅用于RAC(Real Application Clusters)数据库,最多可有10个进程,用于实例的封锁。
9.RECO(Distributed datebase Recovery)用于分布式数据库的恢复。保证事务性。
10.CKPT:Check point 由oracle的FAST_START_MTTR_TARGET参数控制。用于触发DBWR从数据缓冲区写入磁盘。CKRT执行约频繁。DBWR写入越频繁、批量特性降低、性能降低、恢复性提高。
11.DBWR:Database Writer Process
数据写入磁盘;必须通知LGWR先完成日志缓冲区写入磁盘的动作后,方能开始
12.LGWR:Log Writer
将日志缓存区的数据从内存写到磁盘的REDO文件中。完成对数据库对象创建、更新数据等操作过程的记录。保证数据库的安全。
每隔3s执行一次LGWR;commit触发LGWR;DBWR执行触发LGWR;日志缓冲区满1/3或记录>1M触发LGWR;联机日志文件切换触发LGWR;
13.ARCH:ARCHiver Process
LGWR写满需要覆盖重写。ARCH进行日志文件归档。
用户请求发起经历的顺序:PGA-instance-database ;PGA-instance