- oracle内存概述
oracle用内存在存储如下信息:
1.程序代码;
2.会话信息,不管会话活动与否;
3.程序执行时所需的信息(例如,查询返回哪些行)
4.oracle进程之间通信和共享的信息(例如,锁)
5.需要在外部内存里永久保存的缓存数据(例如,数据块和redo日志条目)
oracle基本内存结构的分类:
1.System Global Area(SGA),它可以被所有服务和后台进程共享;
2.Program Global Area(PGA),每个服务和后台进程都一个私有的PGA。
- oracle内存结构图
如图所示,SGA是由Java Pool,Buffer Cache等内存结构组成的,它可以被所有的server和process共享,而PGA是私有的,每个server和Process都单独拥有一个PGA。
- SGA简介
SGA是System Global Area的简写,它是oracle实例中包含数据信息和控制信息的共享内存的集合。当有很多用户同时连接到数据库实例时,那么所有的用户都可以共享SGA,SGA也叫Shared Global Area。
一个oracle实例是由SGA和oracle进程组成的。当oracle启动是它会自动分配内存给SGA,当实例关闭时操作系统收回分配给SGA的内存,每个oracle实例都有属于他自己的SGA。
SGA是可读写的。所有连接到多进程的oracle实例都可以读SGA中的信息,一些进程在oracle运行时向SGA写数据。
组成SGA的内存结构:
- Java Pool
- Large Pool
- Share Pool
- Stream Pool
- Database buffer cache
- Redo log buffer
- Data dictionary cache
- othe miscellaneous information
一部分SGA中包含数据库和实例的一般信息和后台进程需要访问的信息,这部分SGA叫fixed SGA。没有用户的数据存储在这里。
如果数据库用的是共享模式,SGA里还包含请求和相应队列和一些PGA包含的内容。
转载于:https://blog.51cto.com/tjlvff/585322