网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  在linux平台用hugetlbfs模拟lock_sga     
  文章作者:未知  文章来源:未知  
  查看:402次  录入:管理员--2007-05-13  
  在linux平台不支持lock_sga参数。如果设定lock_sga=true,启动时将报ORA-27126错误。

下面是总结的使用hugetlbfs来模拟lock_sga的步骤。

1.查看目前使用的SGA
sqlplus / as sysdba

SQL*Plus: Release 10.1.0.3.0 - Production on ??y 4? 14 15:51:14 2007

Copyright (c) 1982, 2004, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL> show sga;

Total System Global Area 524288000 bytes
Fixed Size 1322760 bytes
Variable Size 123982072 bytes
Database Buffers 398458880 bytes
Redo Buffers 524288 bytes
SQL> show parameter sga;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 500M
sga_target big integer 500M
SQL>

2.换算成2MB的页数, 500M/2M=250

3.设定sysctl.conf和fstab
在/etc/sysctl.conf添加一行
#比SGA_MAX_SIZE最少要多加一页
vm.nr_hugepages = 260

查看oracle的id和gid
#id oracle
uid=501(oracle) gid=502(dba) groups=502(dba)
在/etc/fstab里添加一行
hugetlbfs /dev/hugetlbfs hugetlbfs mode=0777,uid=501,gid=502 0 0

#mkdir /dev/hugetlbfs
#sysctl -p
#mount -a
#grep Huge /proc/meminfo
HugePages_Total: 260
HugePages_Free: 260
Hugepagesize: 2048 kB
注:如果内存已经被占用则需要重起机器才能分配。
#mount
hugetlbfs on /dev/hugetlbfs type hugetlbfs (rw,mode=0777,uid=501,gid=502)
注:每次重新启动都要执行一次:mkdir /dev/hugetlbfs;mount -a。可以加到/etc/rc.local里自动执行

4.设定/etc/security/limits.conf文件
添加两行
oracle soft memlock 1048576
oracle hard memlock 1048576
以K为单位,必须大于sga_max_size,这里设定为1G
#su - oracle
检查limits是否正确
$ulimit -l
1048576

5.重新启动数据库
$sqlplus / as sysdba
SQL>shutdown immediate;
SQL>startup;
SQL>! grep Huge /proc/meminfo
HugePages_Total: 260
HugePages_Free: 24
Hugepagesize: 2048 kB

以上在10.1.0.3 64bit on RHEL4U3 和 10.1.0.3 64bit on FC5上测试通过

说明:
2M的页不要分配超过sga_max_size太多,会造成内存的浪费。
经过测试,对使用文件系统数据库性能有10%-20%的提升,对使用裸设备或ASM的数据库影响较小。
在正式环境已经运行一周,暂时没有发现BUG.
不同平台或不同数据库版本可能存在BUG,可以在测试环境先测试再使用。

 
 
上一篇: 详细讲述 Oracle 密码丢失解决方法    下一篇: 将 Oracle 内置的安全特性用于 PHP
  相关文档
解析:怎样查出前台正在发出的sql语句 08-05
数据库维护 01-15
Oracle DBA数据库日常维护完全手册 04-23
带你快速了解oracle数据库提供的恢复机制 05-05
八个学习点帮助你全面认识Oracle数据库 05-27
帮你解决Oracle 9i和Tomcat的端口冲突 05-27
在Oracle 9i中Form Builder使用树心得 07-07
解析Oracle 9i数据库异常关闭后的启动 08-05
初学者必读:oracle监听口令及监听器安全 07-16
教你轻松掌握Oracle数据库触发器的组成 09-29
Oracle中有没有系统数据库? 09-29
深入讲解阻塞现象的产生原因及处理方法 03-20
详细讲解Oracle中DECODE()函数的使用法 05-27
如何更改rac的vip地址和集群互联地址 (1) 03-07
Oracle和DB2间基本架构和管理的差异 04-11
怎样在数据字典中直接修改oracle表列名 11-15
Oracle案例详细分析:Job任务停止执行 04-23
迅速安装Linux与Oracle数据库步骤精讲 07-07
oracle数据库中获取数据的存储过程示例 08-05
使用多线索服务器的Oracle的运行 09-29
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息