7 SGA主要有那些部分,主要作用是什么
2 t3 \ p1 v4 V5 l$ v3 [系统全局区(SGA):是ORACLE为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。 + _6 Y! z; D3 M( i6 z( n' w
SGA主要包括:
- t5 O" d8 k U! L! @$ D4 ^a)共享池(shared pool) :用来存储最近执行的SQL语句和最近使用的数据字典的数据。
) I1 {" S. c/ s& [* Bb)数据缓冲区 (database buffer cache):用来存储最近从数据文件中读写过的数据。
1 [8 a7 M$ U# h! gc)重作日志缓冲区(redo log buffer):用来记录服务或后台进程对数据库的操作。
* M, ?7 c5 u7 C1 [另外在SGA中还有两个可选的内存结构: 5 |4 k) r# O' c- W1 W% G
d)Java pool: 用来存储Java代码。 $ q" G4 ~4 f* c% ^
e)Large pool: 用来存储不与SQL直接相关的大型内存结构。备份、恢复使用。 : ~/ D8 w; s2 C& b- n* _: w
' c3 y' }) V/ ~
GA:db_cache/shared_pool/large_pool/java_pool , M0 G9 ?1 U" \: k) n
db_cache: 数据库缓存(Block Buffer)对于Oracle数据库的运转和性能起着非常关键的作用,它占据Oracle数据库SGA(系统共享内存区)的主要部分。Oracle数据库通过使用LRU算法,将最近访问的数据块存放到缓存中,从而优化对磁盘数据的访问.
! u# _/ M: f/ a/ o" H9 O6 ?' vshared_pool: 共享池的大小对于Oracle 性能来说都是很重要的。共享池中保存数据字典高速缓冲和完全解析或编译的的PL/SQL 块和SQL 语句及控制结构 1 f' J! S" ^6 D, x& p
large_pool: 使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器
+ `- S. v5 a/ \/ Y# l. a# mjava_pool: 为java procedure预备的内存区域,如果没有使用java proc,java_pool不是必须的
0 e7 _3 c" v5 f1 a5 G6 c# m
" c5 u* `* R0 l8 T% |8 Oracle系统进程主要有哪些,作用是什么
; j7 V, H8 D: r v数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文件 0 Q3 f: k3 p y. D2 }
日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件 7 H& q" N4 l- X/ ^) j O
系统监控 (SMON): 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 # u4 R% k7 j/ u% g- Q
进程监控 (PMON): 负责在一个Oracle 进程失败时清理资源
' Q7 V1 O8 g4 R/ ]! J检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
u' q& v- H) q* O1 F3 Y* x归档进程 (ARCH):在每次日志切换时把已满的日志组进行备份或归档 " O2 w; |% \% V, _% e# {5 K
恢复进程 (RECO): 保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;
2 l' z, m6 j3 E/ ]- A9 D作业调度器(CJQ ): 负责将调度与执行系统中已定义好的job,完成一些预定义的工作. |