[转]oracle8i中4G以上内存的使用方法_se7en3_新浪博客

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

oracle中4G以上内存的使用方法,使用至强CPU,内存为8GB,系统为windows2003,数据库为oracle8i所以一直在查找如何在32位系统中使oracle使用超过4G内存的问题,baidu了n篇文章,发现在细节上写的都不够详细,又到微软和oracle网站上查找,终于对原理和方法有了一个大致了解,在此写出来供大家参考,如有错误还请指正。
1、由于32位系统内存寻址只能到4G,所以在32位系统上使用超过4G的内存,首先要使用支持大内存的软硬件,比如使用至强的CPU(虽然是32位CPU,但是上增加了扩展寻址的能力),windows2003企业版或数据中心版。
2、在操作系统中启用PAE(Physical Address Extensions )功能,这样oracle便可以通过windows的AWE(Address Windowing Extensions)API使用多余4G的内存。
方法:打开系统根目录下的隐藏文件 Boot.ini ,添加 PAE 开关:
(1)multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="Windows Server 2003, Datacenter Edition" /PAE
(2)multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="Windows Server 2003, Datacenter Edition" /3GB /PAE
我们知道32位windows对于每个进程都分配4GB内存(虚拟内存),其中起始的2GB归windows核心使用,剩余的归应用程序本身使用。因此这两种方法的区别就在于:
方法一只使用了/PAE开关表示启用/PAE功能但是系统对每个进程仍然采用2G核心、2G应用程序的内存分配方式。
方法二除了/PAE开关还使用了/3GB开关表示不仅启用/PAE功能并且系统对每个进程采用1G核心、3G应用程序的内存分配方式。不过这种方式不支持大于16GB的内存,也就是说如果你的实际内存超过16GB则只能使用方法一,这是因为大于16GB后1G的核心内存已经不够windows实现PAE功能。
3、给运行Oracle数据库的操作系统帐户,授予"Lock Pages in Memory"的系统权限。
执行 gpedit.msc打开“组策略”控制台
“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“用户权利指派”
双击右边“锁定内存中的页”(或名为"内存中锁定页"),在“本地安全策略设置”对话框中,单击“添加”按钮,在“选择用户或组”对话框中,添加有权运行 oracle的帐户。
4、配置oracle数据库的参数文件(init*.ora),添加USE_INDIRECT_DATA_BUFFERS=TRUE参数,表示使用扩展的内存。
5、修改注册表中的AWE_WINDOW_MEMORY键值为合适值。该值表示在3GB内存中(如果使用了/3GB开关,如果没有使用该开关则为2GB)有多少用于数据库块缓存。
注意:
(1)该值位置在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0为二进制类型,单位为bytes。
(2)如果不存在表示使用默认值1GB。
(3)该值太大或太小都有可能导致数据库无法启动。
这里解释一下:尽管我们现在拥有超过4GB的内存,但是这些多余的内存并不是oracle可以随便使用的,这些内存只能用于数据库块缓存(即db_buffer),而像share Pool,log buffer等只能保存在应用程序可访问的3GB内存中(如果使用了/3GB开关,如果没有使用该开关则为2GB)。在这里我将4GB以外内存中的数据库块缓存叫做AWE数据块缓存(自己起的名字:-))。这里又有问题了,oracle缓冲的数据块并不能全部保存到4GB以外的内存中,还必须在应用程序可直接访问的3GB内存(如果使用了/3GB开关,如果没有使用该开关则为2GB)中使用一部分空间来保存,这一部分内存我称为直接数据块缓存(自己起的名字:-))。也就是说“数据块缓存=AWE数据块缓存+直接数据块缓存”,为什么会这样呢,因为oracle缓冲到内存中的每个数据块的头部必须保存到“直接数据块缓存”中,是不能够保存到“AWE数据块缓存”中的,并且每个数据块的大小(db_block_size)和数据块的多少(db_block_buffers)都会影响到头部占用空间的多少。并且访问“直接数据块缓存”要比“AWE数据块缓存” 快, 因此AWE_WINDOW_MEMORY一般来讲需要设置的尽量大(但不能无限大,比如必须小于3GB),oracle建议以默认值为基础,以20%递增扩大,进行测试。比如先测试1GB大小,在测试1.2GB大小等等。
一般来讲AWE_WINDOW_MEMORY有一个最小公式
min(AWE_WINDOW_MEMORY)=(4096 * db_block_size * db_block_lru_latches)/8
其中:
max buffer pools是一个常量=8
sets_per_tool=2*cpu_count (use_indirect_data_buffers=true)
sets_per_tool=cpu_count/2 (use_indirect_data_buffers<>true)

 

转自 http://www.svn8.com/sql/Oracle/2009110612327.html

Ceph故障处理(二)-Error EPERM: pool deletion is disabled;you must first set the mon_allow_pool_delete... 最近在使用CEPH的过程中,删除pool的时候提示以下错误: $ ceph osd pool delete cephrbd cephrbd --yes-i-really-really-mean-it Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option... 阅读详情

相关推荐

Vue+ECharts-GL 3D地图实战:5层叠加打造炫酷中国地图(附完整代码)

本文详细介绍了如何利用Vue和ECharts-GL构建具有强烈立体感的3D中国地图。通过5层图层的巧妙叠加与样式调校,实现了从背景阴影到交互高光的完整视觉层次,并整合了动态飞线与散点标记。文章提供了完整的代码实现、核心配置解析以及性能优化与视觉调优的实战技巧,帮助开发者快速打造专业级的交互式地图可视化应用。

d6e7f8g9h的博客 612

MySQL OCP888题解025-MySQL的内存使用机制

MySQL OCP888题解025-MySQL的内存使用机制

日拱一卒的博客 222

图像质量评估(5) -- 畸变(Distortion)

当图像中原本应该是直线的地方看起来发生了不自然的变形或扭曲时,我们称为图像畸变。有三种类型的镜头畸变:桶形畸变(后文使用英文barrel),枕形畸变(后文使用pincushion)和胡子畸变(后文使用英文wavef或mustache,这种畸变里包含了桶形畸变和枕形畸变)。有一个重要的点需要注意,根据透镜的类型以及透镜是否能够从相机中移除等条件不同,畸变会有不同的表现。 总的来说,旋对称光学系统功能上会产生和物体几何相似的图形。但也有少数特殊的系统是例外,例如鱼眼镜头,这种镜头几何是故意设计为

vivo01的专栏 2万+

mysql memory used_mysql 内存统计

在 mysql 5.5 中实现了类似mysql5.7中performance schema 的内存统计功能。功能1 展示mysql层内存总大小。2 展示mysql层内存使用分布情况。3 展示每个线程使用内存总大小。4 展示每个线程使用内存分布情况。演示1 增加状态变量Memory_used 显示mysql层总体使用内存大小。mysql> show global status like ...

weixin_28763005的博客 1424

mysql8.0英文OCP考试第41-50题

Q41.

fengge55的博客 802

MySQL内存逐渐增长导致数据库挂起-解决方案?

MySQL内存逐渐增长导致数据库挂起-解决方案?原创 2018-03-17 徐春阳 数据库随笔      Memory usage gradually increases and brings server to halt。      前几天提到发现某系统MySQL数据库内存疑似泄露, 见链接:   在MySQL 5.7.18或以上版本发现疑似内存泄露的现象 。收到一些网友的反馈,他们也都说在使用...

天道酬勤,自强不息 5015

mysql memoryused_线上MySQL机器内存爆掉原因分析与解决

现象:阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨上去后,却不下来。累积后内存爆掉分析:此业务是间隔的对MySQL有大访问,其它时间几乎无访问。排查发现,内存涨时,一般会有MySQL读非常大,主要是InnoDB_DATA_READS。结合此时的特性,业务同学给出此时的主要场景:1、14个线程并发;2、写入数据流程:先查询再update;select pid,value from tab...

weixin_30400859的博客 294

MySQL 8.0 OCP 英文题库解析(十九)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。本期公布试题171~180试题171:Choose the best answer.Examine this command and output:(见下图)Which statement is true?

DBA_ChenJR的博客 1228

glibc堆内存管理

glibc堆内存管理

qq_35018427的博客 2186

mysql memory used_优化MySQL占用内存过高

在[mysqld]后面修改或添加# The maximum amount of concurrent sessions the MySQL server will# allow. One of these connections will be reserved for a user with# SUPER privileges to allow the administrator to logi...

weixin_39677419的博客 856

mysql optimizing_MYSQL Optimizing LIMIT Queries

如果要指定查询的数据行数,在查询语句中使用limit子句,而不是获取所有数据行结果集,然后去掉没用的数据。MYSQL有时会对没有having子句,带有limit关键字的查询进行优化:1:如果用limit子句选择很少的行数据集,mysql会利用索引来代替全表扫描;2:如果组合使用limit 和order by 查询,mysql会在满足limit数量限制时停止sort,而不是对所有数据sort.如果利...

weixin_32512451的博客 300

MySQL 性能优化技巧

原文地址:MySQL 性能优化技巧博客地址:www.extlight.com 一、背景 最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久。原因是新功能用到旧功能的接口,而这些旧接口的 SQL 查询语句关联5,6张表且编写不够规范,导致 MySQL 在执行 SQL 语句时索引失效,进行全表扫描。原本负责优化的同事有事请假回家,因此优化查询数据的问题落在笔者手中。笔者在查阅网上 SQL...

weixin_33757609的博客 840

MySQL优化optimize、INSERT、ORDER BY、GROUP BY和OR 以及分页和嵌套查询

analyze语句用于分析存储表关键字分布,分析结果使系统得到更准确的信息,SQL生成预期执行计划。如果你感觉实际执行计划没有达到预期结果,不妨尝试执行一次分析表计划。

Purpletaro的专栏 966

mysql optimizing_Mysql优化_内置profiling性能分析工具

如果要进行SQL的调优优化和排查,第一步是先让故障重现,但是这个并不是这一分钟有问题,下一秒就OK。一般的企业一般是DBA数据库工程师从监控里找到问题。DBA会告诉我们让我们来排查问题,那么可能很多种原因,也许是程序内存泄漏、也许是网络、也许是死锁、也许是SQL写的烂。假设是SQL问题我们需要把SQL抓出,一般就是在测试环境跑一下SQL,重现故障。首先打开我们的慢查询日志,这样把有问题的SQL排查...

weixin_35137190的博客 364

Mysql Optimizing SQL Statements (一)

8.2 Optimizing SQL Statements The core logic of a database application is performed through SQL statements, whether issued directly through an interpreter or submitted behind the scenes through an API. The tuning guidelines in this section help to sp..

u013469501的博客 1138

MySQL memory 引擎 table is full 处理

解决mysql的内存表“table is full”错误 101209 13:13:32 [ERROR] /usr/local/mysql/bin/mysqld: The table ‘test_1291870945841162′ is full 101209 13:13:32 [ERROR] /usr/local/mysql/bin/mysqld: The table ‘test_1

上帝之手&传奇 - MartinLee 2826

3.MySQL优化Optimizing InnoDB Transaction Management

介绍 想要优化InnoDB的事务处理,需要在事务功能的性能开销和服务器的工作负载之间找到平衡。举个例子,一个应用每秒提交上千次或者一个应用2-3小时提交一次,这样都会遇到性能问题。 默认的MySQL设置AUTOCOMMIT=1可能对插入繁忙的数据造成性能瓶颈。在可行的情况下,通过SET AUTOCOMMIT=0或START TRANSACTION等指令,将相关的SQL放到同一事务中进行批量处理...

ciqingloveless的博客 274

MySql(八):MySQL性能调优——Query 的优化

一、理解MySQL的Query Optimizer MySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的Query 给出他认为最优的执行计划,也就是他认为最优的数据检索方式。 二、Query 语句优化基本思路和原则 在分析如何优化MySQL Query 之前,我们需要先了解一下Query...

dichengyan0013的博客 609

mysql-Optimization Overview-数据库调优

Notecode.cache.aware of.

luxideyao的专栏 380
上一篇: [转]oracle8i中4G以上内存的使用方法
下一篇: [转]什么时候用LINQ?
stoco
博客等级 码龄19年 5粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值