oracle体系结构
作者:网络转载 发布时间:[ 2016/6/6 13:47:30 ] 推荐标签:Oracle 数据库
2)、共享池由库缓存和数据字典缓存组成。
3)、共享池的大小直接影响数据库的性能。
i3、数据缓冲区
1)、用于存储从磁盘数据文件中读入的数据,所有用户共享。
2)、服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。
3)、数据缓冲区的大小对数据库的读取速度有直接的影响。
4)、硬盘上的数据文件中的数据,如何返回给用户的?
i、从硬盘取出来,直接返回给用户,使得获取数据的效率非常低。
ii、从硬盘取出来,放到数据缓冲区,从数据缓冲区中把数据返回给用户。下次读取同样的数据的话,直接从数据缓冲区中获取,不需要再从硬盘获取。
i4、日志缓冲区
1)、日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。
2)、当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。
3)、相对来说,日志缓冲区对数据库的性能影响较小。
eg、UPDATE emp SET empno=7935 WHERE empno=7934;首先在日记缓冲区中被记录,某个时候(三种情况;一、日志缓冲区中的记录达到1M 二、每隔3秒 三、日志缓冲区已经用了三分之一,满足其中任意一项可以)把日志缓冲区中的这些记录写到在线日志中去。
i5、Large池
为了进行大的后台进程操作而分配的内存空间,主要指备份恢复、大型IO操作、并行查询等。
i6、Stream池
为了stream应用而分配的内存空间,高级复制技术一部分。
i7、JAVA池
为了java应用而分配的内存空间。
7、PGA(Process Global Area): 程序全局区
i0、程序全局区(PGA)包含单个服务器进程所需的数据和控制信息,比如每个session传入的SQL绑定变量、以及对该session进行控制的控制信息。如果该session进行了排序或hash连接操作,也会使用PGA中的内存。
i1、PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle数据库连接的用户进程所需的信息
i2、共享连接模式和专用连接模式,PGA的管理方式不同。
大多情况下,采用专用连接模式。其产生的用户进程和服务器进程后面讲述
8、oracle进程:用户进程、服务器进程(影子进程,相对用户进程而言)、后台进程
i、用户进程是一个需要与oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程。用户进程位于客户端,服务器进程、后台进程位于服务器端。
ii、服务器进程用于处理连接到该实例的用户进程的请求。当用户连接至oracle数据库实例创建会话时,即产生服务器进程。
iii、后台进程是Oracle数据库为了保持佳系统性能和协调多个用户请求而设置的。Oracle实例启动时即创建一系列后台进程。
10、用户进程和服务器进程
i、对专用连接来说,用户在客户端启动了一个应用程序,例如sql*plus,是在客户端启动一个用户进程;与oracle服务器端连接成功后,会在服务器端生成一个服务器进程,该服务器进程作为用户进程的代理进程,代替客户端执行各种命令并把结果返回给客户端。9i、10g、11g都使用专用连接。
ii、用户进程一旦中止,服务器进程立刻中止。
iii、SGA对所有用户共享,PGA不共享。
11、会话
i0、会话是用户与 Oracle 服务器的单个连接
i1、当用户与服务器建立连接时创建会话
i2、当用户与服务器断开连接时关闭会话
i3、从v$session中查询会话信息,SELECT * FROM v$session;
12、后台进程
i0、PMON 进程监控进程,监控用户进程是否正常。
1)、清理出现故障的进程。
2)、释放所有当前挂起的锁定。
3)、释放故障进程使用的资源。
i1、SMON 系统监控进程,实时监控整个oracle状况。
1)、在实例失败之后,重新打开数据库时自动恢复实例。
2)、整理数据文件的自由空间,将相邻区域结合起来。
3)、释放不再使用的临时段。
i2、DBWR 数据写入进程
1)、管理数据缓冲区,将近使用过的块保留在内存中。
2)、将修改后的缓冲区数据写入数据文件中。
i3、LGWR 日志写入进程
1)、负责将日志缓冲区中的日志数据写入日志文件。
2)、系统有多个日志文件,该进程以循环的方式将数据写入文件。
i4、CKPT检查点进程
1)、为了防止实例崩溃,为了尽快进行实例恢复的进程。
2)、检查点包括两种:完全检查点、增量检查点。
3)、完全检查点只有下面两种情况下被触发:
1,用户发出alter system checkpoint;
2,除了shutdown abort以外的其他方式正常关闭数据库。
3)、增量检查点触发情况:
1,每隔三秒。
2,在线日志切换。
DBWR、LGWR、CKPT之间如何协调工作的?
i5、查看进程信息
1)、从v$process中查询启动的后台进程信息
2)、查看启动了几个DBWR进程
select * from v$process where program like '%DBW%';
查看DBWR进程个数: show parameter db_wr,DBWR进程个数跟脏数据的产生有一定的影响。
修改DBWR进程个数:
alter system set db_writer_processes=3 scope=memory; --会报"无法修改指定的初始化参数"错误
alter system set db_writer_processes=3 scope=spfile;--修改成功,下次启动时才生效
3)、查看启动了几个ARC进程
select * from v$process where program like '%ARC%';
13、9i中的自动PGA管理
i、前提是:必须设置初始化参数workarea_size_policy为AUTO。
ii、自动PGA管理,DBA根据数据库的负载情况,估计所有的session大概需要消耗的PGA的总的大小,然后把该值设置成初始化参数pga_aggregate_target,Oracle会自动调整每个session的PGA的大小。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com