Oracle引航课程第5课-数据库架构.pdf
DATAGURU专业数据分析网站 2012.10.15 2012.10.15 数据库引航数据库引航 第五课第五课OracleOracle数据库的架构数据库的架构DATAGURU专业数据分析网站2012.2012.10.1510.15OracleOracle整体架构图整体架构图DATAGURU专业数据分析网站2012.2012.10.1510.15OracleOracle数据库的组成数据库的组成 实例 instance内存sga,pga,streams pool.进程Oracle 后台进程,服务器端进程,客户端进程 数据库 database文件控制文件,重做日志文件,数据文件 其它组成部分参数文件,密码文件,归档日志DATAGURU专业数据分析网站2012.2012.10.1510.15实例实例-Instance-InstanceDATAGURU专业数据分析网站2012.2012.10.1510.15OracleOracle实例实例-SGA-SGA Oracle最重要的内存区域,是数据库中共享资源的内存区域。SQL字典区-shared Pool数据缓冲区 db buffer重做日志区 redo log bufferDATAGURU专业数据分析网站2012.2012.10.1510.15SGASGA区里发生了什么?区里发生了什么?SQL语句在这里被解析,生成执行计划,执行计划被共享。数据在这里被访问,被共享。重做日志在这里被产生。DATAGURU专业数据分析网站2012.2012.10.1510.15OracleOracle实例实例-PGA-PGADATAGURU专业数据分析网站2012.2012.10.1510.15PGAPGA里发生了什么?里发生了什么?私有SQL区 私有SQL区包含了绑定变量值和运行时期内存结构信息等数据。每一个运行SQL语句的会话都有一个块私有SQL区。所有提交了相同SQL语句的用户都有各自的私有SQL区,并且他们共享一个共享SQL区。因此,一个共享SQL区可能和多个私有共享区相关联。游标和SQL区一个Oracle预编译程序或OCI程序的应用开发人员能够很明确的打开一个游标,或者控制一块特定的私有SQL区,将他们作为程序运行的命名资源。会话内存基于排序的操作(ORDER BY、GROUP BY、ROLLUP、窗口函数);Hash JoinBitmap mergeBitmap createDATAGURU专业数据分析网站2012.2012.10.1510.15实例的具体运作者实例的具体运作者-后台进程后台进程DATAGURU专业数据分析网站2012.2012.10.1510.15后台进程后台进程-SMON-SMONDATAGURU专业数据分析网站2012.2012.10.1510.15后台进程后台进程-PMON-PMON 回滚事务 释放锁及其它资源.重启死掉的调度器.(在共享服务器中用).在监听器中注册服务信息DATAGURU专业数据分析网站2012.2012.10.1510.15后台进程后台进程-DBWRn-DBWRn和和LGWRLGWRDATAGURU专业数据分析网站2012.2012.10.1510.15后台进程后台进程-CKPT-CKPT 会启动DBWn来写脏数据(SIGNALLING DBWn at CKPT.)完后会更新DATAFILE的HEADER和控制文件的HEADER.而HEADER中有同步所需要的信息,即CHECKPOINT的信息.在ORACLE中,正常情况下,所有文件必须同期性地同步;靠CHECKPOINT来完成.DATAGURU专业数据分析网站2012.2012.10.1510.15服务器进程服务器进程-server process-server process接受客户端发出的SQL请求。完成SQL的分析,执行计划和SQL的执行过程。DATAGURU专业数据分析网站2012.2012.10.1510.15服务器进程服务器进程-server process-server processDATAGURU专业数据分析网站2012.2012.10.1510.15服务器进程服务器进程-server process-server processDATAGURU专业数据分析网站2012.2012.10.1510.15一条一条SQLSQL的执行过程的执行过程客户端SQL监听器服务器进程shared pool数据文件sql解析,生成执行计划db buffer在内存中找到数据块update t set id=1客户端 commitlog filelgwr将产生的redo日志写到磁盘上客户端alter system checkpoint数据文件dbwr将内存中的脏数据写回磁盘上内存中找不到,从磁盘文件中读取DATAGURU专业数据分析网站ThanksThanksFAQ时间