32位 oracle SGA 扩展原理

简介: 32位 oracle由于位数限制,是的oracle进程只能访问4GB(2的32次方)以下的虚拟额内存地址,这样一来,很多情况下内存空着而不能使用。默认情况下SGA不能超过1.7GB,这时,我们就要考虑怎样扩展oracle的SGA。

32位 oracle由于位数限制,是的oracle进程只能访问4GB(2的32次方)以下的虚拟额内存地址,这样一来,很多情况下内存空着而不能使用。默认情况下SGA不能超过1.7GB,这时,我们就要考虑怎样扩展oracle的SGA。

1、识别32为的oracle

通过执行:SQL> select * from v$version;

如果是64位的oracle,在查询结果中一定会显示64bit字样。若没有出现,则一定是32bit oracle。 当然也可以在操作系统上,进入$ORACLE_HOME/bin 目录,执行 $ file oracle

命令,会直接显示。

在确认了32位的数据库之后,通常情况下os系统进程只能访问4GB以下的空间,在 redhat linux as2.1 或者 as 3.0 版本中,他们可以提供VLM(Very  Large  Memory )功能支持,使得通过转换可以使用36bit 来标志内存地址,那么就是2的36次方,理论上最大可支持64GB的内存访问。这在oracle中,则是通过将内存单做文件来访问的,虚拟一个/dev/shm 的文件系统,这个文件系统是完全由内存组成的,这样将突破4GB的限制。

2、为何SGA存在1.7GB的限制

既然进程可以访问4GB以下的内存,为何通常SGA又是1.7GB呢?

在操作系统中,规定了一个进程在应用程序中,能访问的虚拟内存空间为0--3GB,而3--4GB这段虚拟地址空间是保留给kernel使用的。要注意这里强调的是虚拟地址空间,并没有说是物理地址空间。也就是说,假设8GB的内存,这0--3GB的虚拟内存地址空间可能出现在8GB内存的3GB--8GB部分内存段,并不是说物理内存的0--3GB的虚拟地址中,而这0--3GB的虚拟地址中,oracle是的使用时固定好了地址的(是虚拟地址的固定,不是物理地址的固定哦)

0GB  —— oracle program 装载起点。

1GB  ——oracle共享库装载起点。

1.25GB  —— SGA起点。

2GB  ——program stack

3GB  ——kernel

在这段虚拟地址分配中,1.25GB是SGA的起点,而进程的私有空间的分配(stack部分)却是从靠近3GB处开始的。也就是实际上SGA和进程私有空间都是共用了1.25GB--3GB这部分的,由于进程私有空间特别小,通常习惯性的认为SGA可以达到1.7GB。进程私有空间有0.05GB足够了。

从oracle启动开始,或者从任何一用户进程登陆开始,所有的虚拟内存都已经分配固定好了,只有私有用户空间还可以扩展。

相关文章
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
1187 2
|
SQL 存储 Oracle
Oracle数据库中游标的工作原理与优化方法
Oracle数据库中游标的工作原理与优化方法
|
SQL Oracle 关系型数据库
Oracle查看表空间 及表空间是否需要扩展
Oracle查看表空间 及表空间是否需要扩展
270 0
|
Oracle 关系型数据库 MySQL
php7.2安装OCI8扩展支持oracle数据库
做项目的时候,远程的oracle数据库为我们提供一张中间表,我这边业务中的一些数据是需要到oracle数据库中的这张中间表去查询的。 PHP连接oracle数据库。需要用到OCI8的扩展。说来惭愧,工作这么多年,还没有正经的使用过oracle数据库。 mysql数据库的语法跟oracle数据库的语法是不一样的,别跟我似的上来就用mysql的语法来操作oracle数据库……有点丢人了…… 今天我们大概记录一下OCI8扩展的安装过程。
355 0
|
Oracle 安全 关系型数据库
Linux的daemon进程对Oracle数据库的SGA使用大页内存的处理
Oracle对运行在机器内存超过32G上的数据库推荐使用HugePages 来容纳Oracle数据库的SGA,参见。
429 0
|
存储 运维 Oracle
Oracle数据库机:让数据价值回归用户“第一性原理”
Oracle数据库机:让数据价值回归用户“第一性原理”
|
SQL 存储 Oracle
MySQL和Oracle的区别是什么?底层原理是什么?
MySQL和Oracle的区别是什么?底层原理是什么?
1763 0
|
Oracle 关系型数据库 数据库
Oracle SGA大小调整策略
Oracle SGA大小调整策略
1048 0
Oracle SGA大小调整策略
|
Oracle 关系型数据库
oracle学习24-数据文件设置自扩展和监听日志文件过大处理
oracle学习24-数据文件设置自扩展和监听日志文件过大处理
445 0
|
SQL Oracle 关系型数据库
windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
710 0

推荐镜像

更多