Chinaunix

标题: (原)sybase如何在windows上使用大内存 [打印本页]

作者: echoaix    时间: 2005-09-21 14:21
标题: (原)sybase如何在windows上使用大内存
最近一直在折腾这个问题,网上的资料都不大可行,总结如下:
缺省情况下
操作系统方面:
32位可以支持2G memory。
sybase:
max memory 超不过1.5G
步骤:
1) windowns支持超过2G内存:boot.ini文件加/3GB或/PAE,我加/3GB
2 )sybase可用超过1.5G:sp_configure 'shared memory starting address', 23662592改后重启sybase就可以使用1.5G以上内存但不能超过2G
3)sybase可用超过2G:网上都说是执行imagecfg.exe -l sqlsrver.exe,可是我按他们说得从NT4。0的安装盘得到或下载的imagecfg.exe都无-l选项,怎么也不行,不知谁有?给我一个试试。可以用vc的editbin.exe,执行
editbin.exe /LARGEADDRESSAWARE sqlsrvr.exe即可。执行editbin还需要link.exe和MSPDB60.DLL,在vc安装包中都有,很容易找到。sybase重启可配置2G以上内存,但最多不能超过3G
感想:
1   32位windows太弱
2   网上有的东西互相抄真害人
3   一定要自己动手试验才行

写的不对的地方请指正。我会陆续写一些我在使用sybase的一些经验,今天就先写这两篇吧。咳,忙不完的事情。
作者: hiaw    时间: 2005-09-21 18:01
标题: (原)sybase如何在windows上使用大内存
支持原创,

感谢分享!
作者: flybean    时间: 2005-09-22 21:17
标题: (原)sybase如何在windows上使用大内存
楼主显然没有明白WINDOWS的内存管理。
作者: echoaix    时间: 2005-09-23 22:30
标题: (原)sybase如何在windows上使用大内存
能不能仔细讲讲WINDOWS的内存管理或者你有办法让sybase可用内存突破3G
作者: flybean    时间: 2005-09-24 13:47
标题: (原)sybase如何在windows上使用大内存
呵呵,突破3G是不可能的,因为WINDOWS的AWE做得不是很好,要求应用做大量修改,而SYBASE认为不值得去做这样的修改。如果你用LINUX,那么是可以超过3G的。条件是硬件要支持PAE。说到这,你也应该明白为什么是加3G,而不是PAE了吧。

PAE其实也很简单,大概类似于DOS年代的A20吧。INTEL32位的CPU实际的寻址线是36位。

关于WINDOWS的内存管理模式,请GOOGLE一下,简单地说WIN32上的一个进程可以有4G(32位的限制)的内存空间,但其中2G是为内核态准备的(所有进程共享),3GB模式实际上是从大家共用的2G空间中拿1G出来,同时,对进程而言,所获取的3G空间是不连续的。

由于我对WINDOWS并不了解,难免有错,请指正。
作者: echoaix    时间: 2005-09-24 14:45
标题: (原)sybase如何在windows上使用大内存
谢谢
作者: 青萍之末    时间: 2005-11-21 19:12

sp_configure 'shared memory starting address', 23662592


搂住,这上面的23662529什么个意思?
作者: 青萍之末    时间: 2005-11-22 07:27

执行imagecfg.exe -l sqlsrver.exe  


这句话肯定是网上那位“聪明人”想当然的”,在Windows的官方资料上,imagecfg.exe程序的作用有点类似于DOS时代的LH命令--把驱动加载到上位内存。像Sybase这类DD,恐怕不是imagecfg.exe能处理的。
作者: echoaix    时间: 2005-11-22 09:26
标题: 再说一下
代-l参数的imagecfg.exe在sybase版的ftp中找到,可用,谢谢上传的同志。

这个问题应该可以over了

imagecfg.zip

23.01 KB, 下载次数: 247


作者: 青萍之末    时间: 2005-11-23 07:13
楼主是不是认为:

1、在win.ini中,加上启动参数 /3GB 或者 /PAE
2、在sybase配置文件中,说明'shared memory starting address'=23662592
3、用你说的那个imagecfg.exe -l  sqlserver.exe  ,就行了?这样做完了,能够使用多大内存呢?

我用windows ADV,如果机器有8G内存,能够给sybase配置多少?
作者: jarjar    时间: 2006-11-21 21:25
在12.5版本以上,执行第一和第二步就可以配置内存到2.7G左右,不能再大了。
作者: Blackrose    时间: 2006-11-21 22:11
标题: 回复 10楼 青萍之末 的帖子
我知道的方法:

1、在win.ini中,加上启动参数 /3GB
2、sp_configure 'shared memory starting address',23662592
3、imagecfg.exe -l  sqlserver.exe

最大可以到3G
主机内存超过4G的服务器,建议使用linux了,32bit可支持到32G
64bitlinux没有限制了

等64bit的windows版本 ASE出来应该也可以支持很大了
作者: yaledu    时间: 2006-11-22 09:28
现在linux X86-64已经非常流行,Sybase 12.5.3 for X86_64 EBF13339也非常稳定,讨论这些问题将逐渐过时。
不过,有说法目前linux X86-64效能不高,有机会对比一下。
作者: echoaix    时间: 2006-11-22 09:48
sybase最近在传统db方面是越来越不行了,不争气啊。
作者: ebluesky    时间: 2006-12-07 17:18
楼主,按照你说的方法,使用你给的软件,那个软件报错:
IMAGECFG: unable to map and load sqlserver.exe  GetLastError= 2
这是什么问题?
是imagecfg.exe放的位置不对?
我用的windows 2003标准版
作者: ebluesky    时间: 2006-12-09 10:14
怎么没有人知道啊?
作者: wpklgo    时间: 2008-03-11 19:59
谢谢提供方法!
作者: scorpiocl    时间: 2013-10-10 16:55
带-l参数的imagecfg.exe确实好啊,解决大问题了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2