ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle专题深入讨论 » 32bit oracle 扩展SGA原理

标题: [精华] 32bit oracle 扩展SGA原理
离线 oracle8idba
中级会员


精华贴数 0
个人空间 0
技术积分 1074 (1720)
社区积分 63 (4422)
注册日期 2001-11-19
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2004-9-26 16:45 
32位的aix, oracle 817如何突破sga 1.7G的限制.

找了好久,找不到这样文章.


__________________
大家好,才是真的好。QQ:           19568414 EMAIL:      oracle11idba@hotmail.comMSN:         oracle11idba@hotmail.comMY WEB:  http://oracle9idba.yeah.net
只看该作者    顶部
离线 asgzg
初级会员



精华贴数 0
个人空间 0
技术积分 22 (50834)
社区积分 0 (168208)
注册日期 2004-9-27
论坛徽章:0
      
      

发表于 2004-9-28 10:22 
有深度


只看该作者    顶部
离线 zhouyunming
资深会员



精华贴数 0
个人空间 0
技术积分 1239 (1434)
社区积分 6 (13926)
注册日期 2002-8-21
论坛徽章:2
授权会员行业板块每日发贴之星    
      

发表于 2004-10-22 14:03 
好文章,谢谢


只看该作者    顶部
离线 tigger7777
老会员



精华贴数 0
个人空间 0
技术积分 938 (2025)
社区积分 47 (5148)
注册日期 2003-4-28
论坛徽章:0
      
      

发表于 2004-10-27 22:27 
3 ks .


__________________
--------------------------------------------------
只看该作者    顶部
在线/呼叫 anlinew


精华贴数 1
个人空间 0
技术积分 6735 (204)
社区积分 131 (3049)
注册日期 2002-11-4
论坛徽章:21
现任管理团队成员ITPUB元老ITPUB北京九华山庄2008年会纪念徽章会员2007贡献徽章授权会员生肖徽章2007版:龙
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:猴ITPUB新首页上线纪念徽章  

发表于 2005-6-2 16:53 
64win2003下32位oracle怎么扩展呢?


只看该作者    顶部
离线 powerws
中级会员



精华贴数 0
个人空间 0
技术积分 320 (6245)
社区积分 1 (37995)
注册日期 2005-3-8
论坛徽章:0
      
      

发表于 2005-10-28 16:18 
好文,收藏,慢慢研究


__________________
Just do it & Try you best!
只看该作者    顶部
在线/呼叫 yanggq
版主


精华贴数 1
个人空间 120
技术积分 26617 (33)
社区积分 16187 (96)
注册日期 2002-10-29
论坛徽章:92
现任管理团队成员铁扇公主2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:马术生肖徽章2007版:狗生肖徽章2007版:牛
2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:花样游泳2008北京奥运纪念徽章:跆拳道2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:艺术体操

发表于 2005-10-31 09:44 
Come from Yong Huang

PHP code:


How to Create a Large SGA Without Relocating sgabeg on 32
-bit Oracle?



One of our production data warehouse servers (Oracle 8.1.7.4 Solaris 2.6 sun4u 

12GB memory
had a 256MB shmmax set in /etc/system for yearsyet the total SGA 

was over 2GB
:



Total System Global Area 2367844512 bytes

Fixed Size 73888 bytes

Variable Size 187043840 bytes

Database Buffers 2129920000 bytes

Redo Buffers 50806784 bytes



One day we realized this mistake 
and changed shmmax to 4GB per Oracle817 Install 

Guide A85471_01
.pdfThen we couldn't startup the instance and got the familiar 

error:



SVRMGR> startup

ORA-27123: unable to attach to shared memory segment

SVR4 Error: 22: Invalid argument

Additional information: 1

Additional information: 106



How interesting! You could create a greater than 1.75 GB SGA without relocating

sgabeg (procedure outlined in Metalink Note:1028623.6). So I did some test on a 

small Ultra2 box running Oracle 9.0.1.3 Solaris 2.6 with only 512MB RAM. What I 

find is quite surprising. When shmmax is set to 268435456, 1073741824, 

1610612736, 1879048192, 2013265920, 2076386194 or 2111934921, the instance can 

startup OK: [note]



Total System Global Area 2131529288 bytes

Fixed Size 282184 bytes

Variable Size 218103808 bytes

Database Buffers 1912602624 bytes

Redo Buffers 540672 bytes



But when it'
s 2139506468I get ORA-27123 when I try to startup OracleWhy is 

the jump from 2111934921 to 2139506468 significant
Because SGA is 2131529288

a number between themSohere's my conclusion:



********************************************************************************

If shmmax < SGA, you can always startup Oracle even with SGA > 1.75GB; but if 

shmmax > SGA, the one segment rule will be enforced and therefore you can'


have an SGA 
1.75GB unless you relocate sgabeg.

********************************************************************************



There's of course an upper limit to which you can increase SGA. 32-bit OS only 

allows 2^32 or 4GB virtual address space. The binary oracle, stack and many 

shared libraries have to take some space. When you arbitrarily increase SGA, 

you'
re squeezing down heap (used by Oracle PGAto a smaller valueThe above 

conclusion basically states that sgabeg loses its meaning when shmmax 
SGA and 

some segments will be created under &quot;sgabeg&quot;, achieving the same effect of 

relocating the SGA beginning address to a lower value
only that multiple 

segments instead of a single one are created
.



Oracle Support's &quot;explanation&quot; why the one-segment rule is not enforced when 

shmmax < SGA didn'
t convince me (see Tars 3018781.999 and 13791543.6 for those 

who can view them
).



By the waytherere some wrong or misleading notes on MeatalinkNote:221805.1 

says 64
-bit OS limits virtual address space to 29GB and therefore you can only 

create an SGA smaller than 29
-14=15GB (14 is sgabeg for 64-bit Oracle). But even

for UltraSPARC-I/IIthe OS limit on virtual address space is 2^44 or 16TB

(see groups.google.com/groups?&selm=8i39dp%24j23%241%40new-usenet.uk.sun.com and

groups.google.com/groups?selm=2002510.22527.9963%40cable.prodigy.com). Oracle 

Install Guide A96167
-01 tells users to set shmmax to 4GB without a caveat that 

this advice is only 
for 32-bit Oracleexcept in the HPUX section where shmmax 

is advised to set to 
&quot;Available physical memory&quot;, the best advice of all!




__________________
好好学习,天天向上------------------------------我也有itpub邮箱了耶"$我的id"@itpub.nethttp://www.dbanotes.net/EvDBT  ORAPERF ASKTOM TAHITI IXORAEygle
只看该作者    顶部
离线 Arraysgzlit
初级会员



精华贴数 0
个人空间 0
技术积分 10 (90988)
社区积分 0 (704081)
注册日期 2005-11-30
论坛徽章:0
      
      

发表于 2005-11-30 14:47 
Relocating the SGA ,meet some error,NEED YOUR HELP,THX

Relocating the SGA  (see metalink DocID: 260152.1) got glibc error !!

- Relocating the SGA:
                    % cd $ORACLE_HOME/rdbms/lib
                    % cp ksms.s ksms.s_orig
                    % genksms -s 0x15000000  > ksms.s     
                    % make -f ins_rdbms.mk ksms.o
                    % make -f ins_rdbms.mk ioracle
After Relink SFRAC  for oracle 9i . We try relocating SGA got some error as below ,

oracle@sfrac1 lib$ make -f ins_rdbms.mk ioracle
- Linking Oracle
rm -f /oracle/orahome/rdbms/lib/oracle
gcc  -o /oracle/orahome/rdbms/lib/oracle -L/oracle/orahome/rdbms/lib/ -L/oracle/orahome/lib/ -L/oracle/orahome/lib/stubs/   -Wl,-E `test -f /oracle/orahome/rdbms/lib/skgaioi.o && echo /oracle/orahome/rdbms/lib/skgaioi.o` /oracle/orahome/rdbms/lib/opimai.o /oracle/orahome/rdbms/lib/ssoraed.o /oracle/orahome/rdbms/lib/ttcsoi.o /oracle/orahome/lib/nautab.o /oracle/orahome/lib/naeet.o /oracle/orahome/lib/naect.o /oracle/orahome/lib/naedhs.o /oracle/orahome/rdbms/lib/config.o  -lserver9 -lodm9 -lskgxp9 -lskgxn9 -lclient9  -lvsn9 -lwtcserver9 -lcommon9 -lgeneric9 /oracle/orahome/rdbms/lib/defopt.o -lknlopt `if /usr/bin/ar tv /oracle/orahome/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap9" ; fi`  -lslax9 -lpls9  -lplp9 -lserver9 -lclient9  -lvsn9 -lwtcserver9 -lcommon9 -lgeneric9 -lknlopt -lslax9 -lpls9  -lplp9 -ljox9 -lserver9 -locijdbcst9 -lwwg9  `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lmm -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9 `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9  -ltrace9 -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9 `if /usr/bin/ar tv /oracle/orahome/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo9"; fi` -lctxc9 -lctx9 -lzx9 -lgx9 -lctx9 -lzx9 -lgx9 -lordimt9 -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -lsnls9 -lunls9 -lxsd9 -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9   `cat /oracle/orahome/lib/sysliblist` -Wl,-rpath,/oracle/orahome/lib:/lib/i686:/lib:/usr/lib  -lm    `cat /oracle/orahome/lib/sysliblist` -ldl -lm   `test -f /oracle/orahome/rdbms/lib/skgaioi.o && echo -laio`
/lib/i686/librt.so.1: undefined reference to `pthread_cond_signal@GLIBC_2.3.2'
/lib/i686/librt.so.1: undefined reference to `pthread_cond_broadcast@GLIBC_2.3.2'
/lib/i686/librt.so.1: undefined reference to `pthread_cond_destroy@GLIBC_2.3.2'
/lib/i686/librt.so.1: undefined reference to `pthread_cond_timedwait@GLIBC_2.3.2'
/lib/i686/librt.so.1: undefined reference to `__librt_enable_asynccancel@GLIBC_PRIVATE'
/lib/i686/librt.so.1: undefined reference to `pthread_cond_wait@GLIBC_2.3.2'
/lib/i686/librt.so.1: undefined reference to `__libc_pwrite@GLIBC_PRIVATE'
/lib/i686/librt.so.1: undefined reference to `__librt_multiple_threads@GLIBC_PRIVATE'
/lib/i686/librt.so.1: undefined reference to `__librt_disable_asynccancel@GLIBC_PRIVATE'
/lib/i686/librt.so.1: undefined reference to `pthread_cond_init@GLIBC_2.3.2'
/lib/i686/librt.so.1: undefined reference to `__register_atfork@GLIBC_2.3.2'
/oracle/orahome/lib//libskgxp9.so: undefined reference to `__ctype_b_loc'
collect2: ld returned 1 exit status
make: *** [/oracle/orahome/rdbms/lib/oracle] Error 1

Now our solution is copy oracle libskgxp9.so back .

[oracle@sfrac1 lib]$ cd $ORACLE_HOME/lib
[oracle@sfrac1 lib]$ cp libskgxp9.so_11_29_05-06_07_33 libskgxp9.so

And re-make oracle binary , It's work !!

[oracle@sfrac1 lib]$ cd $ORACLE_HOME/rdbms/lib
[oracle@sfrac1 lib]$ make -f ins_rdbms.mk ioracle

- Linking Oracle
rm -f /oracle/orahome/rdbms/lib/oracle
gcc  -o /oracle/orahome/rdbms/lib/oracle -L/oracle/orahome/rdbms/lib/ -L/oracle/orahome/lib/ -L/oracle/orahome/lib/stubs/   -Wl,-E `test -f /oracle/orahome/rdbms/lib/skgaioi.o && echo /oracle/orahome/rdbms/lib/skgaioi.o` /oracle/orahome/rdbms/lib/opimai.o /oracle/orahome/rdbms/lib/ssoraed.o /oracle/orahome/rdbms/lib/ttcsoi.o /oracle/orahome/lib/nautab.o /oracle/orahome/lib/naeet.o /oracle/orahome/lib/naect.o /oracle/orahome/lib/naedhs.o /oracle/orahome/rdbms/lib/config.o  -lserver9 -lodm9 -lskgxp9 -lskgxn9 -lclient9  -lvsn9 -lwtcserver9 -lcommon9 -lgeneric9 /oracle/orahome/rdbms/lib/defopt.o -lknlopt `if /usr/bin/ar tv /oracle/orahome/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap9" ; fi`  -lslax9 -lpls9  -lplp9 -lserver9 -lclient9  -lvsn9 -lwtcserver9 -lcommon9 -lgeneric9 -lknlopt -lslax9 -lpls9  -lplp9 -ljox9 -lserver9 -locijdbcst9 -lwwg9  `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lmm -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9 `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 `cat /oracle/orahome/lib/ldflags`    -lnsslb9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9  -ltrace9 -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9 `if /usr/bin/ar tv /oracle/orahome/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo9"; fi` -lctxc9 -lctx9 -lzx9 -lgx9 -lctx9 -lzx9 -lgx9 -lordimt9 -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -lsnls9 -lunls9 -lxsd9 -lnls9  -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9   `cat /oracle/orahome/lib/sysliblist` -Wl,-rpath,/oracle/orahome/lib:/lib/i686:/lib:/usr/lib  -lm    `cat /oracle/orahome/lib/sysliblist` -ldl -lm   `test -f /oracle/orahome/rdbms/lib/skgaioi.o && echo -laio`
mv -f /oracle/orahome/bin/oracle /oracle/orahome/bin/oracleO
mv /oracle/orahome/rdbms/lib/oracle /oracle/orahome/bin/oracle
chmod 6751 /oracle/orahome/bin/oracle

After make oracle , relink SFRAC for oracle 9i

Is it right procedure ?


只看该作者    顶部
离线 gambol05460
初级会员



精华贴数 0
个人空间 0
技术积分 22 (51078)
社区积分 0 (246057)
注册日期 2005-1-10
论坛徽章:0
      
      

发表于 2005-12-1 16:40 
好文章.绝对支持!!!


只看该作者    顶部
离线 IBMDV
中级会员



精华贴数 1
个人空间 0
技术积分 1145 (1596)
社区积分 51 (4946)
注册日期 2005-12-20
论坛徽章:0
      
      

发表于 2005-12-28 11:08 
有谁研究过10G ON SUSE8的测试?


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问