本文由一木译编著
请您多指正!
[@more@]ORACLE有一大块称作SGA的内存,它将作如下举例的工作:
管理所有进程需要访问的许多内部数据结构。
缓冲从磁盘来的数据,缓存被写到磁盘前重做数据。
保持已分析的SQL执行计划等。
ORACLE的一些进程跟系统全局区紧密相关,但它们相关的机制因为操作系统不同而不同。在UNIX环境里,他们将与被操作系统分配的一大块共享内存段物理相关,这一大块内存段可以被很多进程并发访问使用。
但在WINDOWS平台上,这些进程只简单使用C请求和malloc()来分配内存。因为它们实际上是一个进程的线程,同时共享同一个虚拟内存空间。ORACLE也会有一些允许数据库进程或线程读写文件集合。这些文件保存了我们所有的表数据,索引,临时表空间,重做日志等等。
如果你在UNIX平台上启动了ORACLE,通过用PS命令,你会看到很多有不同名字的物理进程。如在前面例子里你可以看到PMON,SMON和其它进程。当然,我将在第5章具体谈这些进程,所以现在只是让你知道它们是经常指的ORACLE后台进程。这些稳定的进程构成了实例,你能看到它们从你启动实例开始直到你关闭实例。
比较有趣的时你会发现这些进程都不是单独的程序,在UNIX平台上只是一个ORACLE二进制执行程序。在运行的不同时刻它有很多不同,取决于它被告诉去做什么。同一个二进制程序会得到PMON进程,同样也可以被用作得到CKPT进程。总之,只有一个简单被命名为ORACLE的二进制执行程序。
在WINDOWS平台上,我们使用pslist工具(http://www.sysinternals.com/ntw2k/freeware/)pslist.shtml,可以发现只有一个ORACLE.EXER的进程。同样,在WINDOWS上也只有一个ORACLE.EXE的二进制可执行程序。但在这个进程里,我们能发现有很多线程代表ORACLE的后台进程们。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7248175/viewspace-999787/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7248175/viewspace-999787/
本文介绍了Oracle数据库中系统全局区(SGA)的作用及其管理机制。SGA负责管理多个内部数据结构、缓存数据和SQL执行计划等。此外,文章还讨论了Oracle在不同操作系统下如何实现内存管理和后台进程的工作原理。
1万+

被折叠的 条评论
为什么被折叠?



