失败了二天了,帮帮忙,数据库在修改db_block_buffers后装载不了了.

zly1980 2005-08-25 08:24:26
在参考以下文章后:
http://www.itpub.net/showthread.php?s=c0741f81a5c9a370fc96902fef2513f0&threadid=406901&goto=nextnewest
数据库机器配置:IBMX346,4GB内存,4*74.3G硬盘,WIN2K高级服务器版,在安装ORACLE8I后,用向导建立一个数据库,选择专用服务器模式,数据库用途那选择的是"数据仓库".一却顺利,在完成后重起机器,重起后数据库不会自动装载,手工装载数据库(建立数据库时DB_BLOCK_SIZE默认是8192)成功,但是在实例里查看高速缓冲只有128M,
查看配置文件是:
db_block_size = 8192
db_block_buffers = 123225 #=962M
shared_pool_size = 349595238
large_pool_size = 614400
java_pool_size = 20971520
在安装数据库的时候WINDOWS已经加了/PAE参数,在注册表增加了AWE_WINDOW_MEMORY的二进制值为12c00000(二进制数值300M),给SYSTEM,SERVICE用户增加了锁定内存页权限,再重新启动WINDOWS,数据库依然不会自动装载,之后手工装载(我是使用DBA Studio图形工具做的),在启动数据库的时候那图标立即就打了个叉了,也没有报什么错误,试了几次还是不行,之后我没办法,把实例删除了,再建立数据库,这次在建立的时候把db_block_size设置为16384了,在建立数据库的时候出现out of memory错误,又删除掉,并且把/PAE参数去掉,把注册表AWE_WINDOW_MEMORY键删除,再建立数据库,并且设置db_block_size = 8192,db_block_buffers=143360默认值(我不明白为什么次次都会变的),数据库建立成功,成功后重起WINDOWS,数据库又不会自动装载,手工装载又成功了,但是查询高速缓冲之有128M,按照计算,16384*123225/1024/1024=1120M的.我快烦死了,我是看了那文档,WINDOWS的一个进程只可以访问2G的内存,因为我有4DGB的内存,除了OS那些应该还有3-3.5G的内存可以给ORACLE使用的.并且数据量也不小的,为什么这样的呢,我在实践之前看这文档看了好多天了,也看过其他相关的资料,都是这么说的,但是为什么我自己去实践的时候却不是那么一回事的呢?各位帮帮我吧.
...全文
226 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zly1980 2005-10-24
  • 打赏
  • 举报
回复
说得很清楚了啊!我又不怎么会ORACLE的啊,只是用图形界面来启动数据都启动失败的了!
daydayupliq 2005-10-24
  • 打赏
  • 举报
回复
并且设置db_block_size = 8192,db_block_buffers=143360默认值(我不明白为什么次次都会变的),数据库建立成功,成功后重起WINDOWS,
没问题

数据库又不会自动装载,手工装载又成功了,
没问题,你这里只要oradim edit
oradim -EDIT -SID 新数据库SID -STARTMODE auto
但是查询高速缓冲之有128M,
不知道你怎么查的?
开始》运行》CMD>sqlplus "/ as sysdba"
show parameter db_block
把内容贴上来
按照计算,16384*123225/1024/1024=1120M的
你的计算是不对的应该是:8192*143360/1024/1024=1120M

最后,你的这个问题应该是32位SGA不能超过1.7G,biti_rainy有篇大作,但是不能超过1.7G不能让你练库都起不来了!呵呵~


FROM ITPUB FROM COOLYL
http://www.itpub.net/showthread.php?s=&threadid=124424
WINDOWS平台上扩展SGA
针对32bit的Windows。Windows2000上不能利用超过4G的内存,一般是2G的内存保留给进程,2G内存保留给核心的。在Windows2000 Advanced Server上可以分配3G给进程,1G留给核心的。
1. 如果机器的内存在4G以下,可以使用Physical Address Extensions(PAE)或者是Address Windowing Extensions(AWE)进行扩展,如果机器内存大于4GB就只能使用AWE进行扩展了。
AWE支持以下的Windows操作系统:
Windows 2000 Datacenter Server
Windows 2000 Advanced Server
Windows 2003 Datacenter Edition(32bit)
Windows 2003 Enterprise Edition(32bit)
AWE不支持以下的Windows操作系统:
Windows 2000 Server(Standard)
Windows2000 Professional
Windows XP Home Edition
Windows XP Professional
Windows 2003 Standard Edition
Windows 2003 Web Edition
AWE支持的Oracle数据库的版本:
Oracle 8.1.6.X
Oracle 8.1.7.X
Oracle 9.2.X
AWE不支持Oracle9.0.1.X
在标准版的Oracle9.2.0.1上,如果你设置了use_indirect_data_buffers=true,启动就会报错:
ORA-439-feature not enabled:very large memory.
这个是标准版的Oracle的9.2.0.1的一个bug(#2520796),在Oracle9.2.0.2中解决了。
2. 在操作系统上启动AWE
AWE在操作系统上可以通过在boot.ini文件中加/PAE切换启用。
例如:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /PAE
也可以同时使用/PAE和/3G在同一台机器上,例如:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /3GB /PAE
但是同时使用内存最到能够支持到16G,如果用使用16G以上的内存,则必须选择其中的一种使用了。
3. 在Oracle上启用AWE
首先要在启动的参数文件中设置参数
USE_INDIRECT_DATA_BUFFERS=TRUE
如果设置了这个参数,对于Oracle9.2.0的版本则不能再使用DB_CACHE_SIZE参数了,只能使用DB_BLOCK_BUFFERS参数。
扩展的内存只能增加到BUFFER CACHE中去使用,因此只能增大DB_BLOCK_BUFFERS这个参数去扩展SGA区。
4. AWE_WINDOW_MEMORY实现故障解决
在Oracle8.1.7版本以下启动数据库的时候不用设置AWE_WINDOW_MEMORY的最小值,而在Oracle9.2.0的版本中则强制要设置AWE_WINDOW_MEMORY的最小值,这个最小值在Oracle8.1.7中通过DB_BLOCK_LRU_LATCHES参数设定,在Oracle9.2.0中则通过_DB_BLOCK_LRU_LATCHES隐含参数设定,Oracle9.2.0的AWE_WINDOW_MEMORY的最小值由以下的公式计算:
MIN(AWE_WINDOW_MEMORY)=(4096 * DB_BLOCK_SIZE * _DB_BLOCK_LRU_LATCHES)/8
_DB_BLOCK_LRU_LATCHES = (Max buffer pools * SETS_PER_POOL)
Max Buffer Pools是个常量,等于8,SETS_PER_POOL是个变量,它的大小由是否启用VLM(即设定USE_INDIRECT_DATA_BUFFERS=TRUE参数)决定:
SETS_PER_POOL = 2* CPU_COUNT (启用 VLM)
SETS_PER_POOL= CPU Count /2 (不启用VLM)
例如:
CPU's = 16
DB_BLOCK_SIZE = 8192
Total RAM = 16 GB
SETS_PER_POOL = 2 * CPU_COUNT = 32
_DB_BLOCK_LRU_LATCHES = (max buffer Pools * sets_per_pool) = 8*32 = 256 MIN(AWE_WINDOW_MEMORY)=(4096*DB_BLOCK_SIZE*_DB_BLOCK_LRU_LATCHES)/8 =( 4096 * 8192 * 256) / 8 = 1073741824 bytes = 1024 MB
这样在Windows的注册表中的HKLM\Software\Oracle\Homex下的AWE_WINDOW_MEMORY值至少是1024M,否则就会提示错误:
ORA-27102 out of memory
OSD-00034 Message 34 not found; Product=RDBMS;facility =SOSD
O/S Error: (OS 8) Not enough storage is available to process this command
skytears 2005-09-18
  • 打赏
  • 举报
回复
你得把错误信息贴上来才行啊
  • 打赏
  • 举报
回复
SGA改动要小心..
zly1980 2005-09-07
  • 打赏
  • 举报
回复
看来CSDN也是废物!会的人不肯教的!
ABDK 2005-08-31
  • 打赏
  • 举报
回复
关注!
zly1980 2005-08-26
  • 打赏
  • 举报
回复
这个是他默认的哦.我看了那些文档N天.对着做的了,不知道那些高人是怎么设置的.我的机器都和那文档的一样的.郁闷
qiuyang_wang 2005-08-26
  • 打赏
  • 举报
回复
帮你UP一下吧,俺也不太清楚。我曾经手动修改过PFILE,结果数据库装载不上,改回去也不行。只得重建事例。
large_pool_size = 614400 //是不是有点小

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧