有感于网上资料给的不全不细致,做这个实验耽误了大量时间,因此写了这篇文章 理论不多,全是具体操作步骤。 背景介绍: 系统:redhat5.5 xen内核 ; oracle:10g 32位 Release 10.2.0.1.0 内存4G,swap8g
目前:升级到8G内存,sga调整到3g以上 操作步骤如下: 1关闭oracle: #su - oracle $sqlplus / as sysdba SQL> select status from v$instance; SQL>shutdown immediate 2修改文件系统 # umount /dev/shm # mount -t ramfs ramfs /dev/shm -o maxsize=4000m # chown oracle.oinstall /dev/shm 3修改参数 # vim /etc/rc.local 添加: umount /dev/shm mount -t ramfs ramfs /dev/shm -o maxsize=4000m chown oracle.oinstall /dev/shm :wq 保存退出
#vim /etc/security/limits.conf 添加: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
oracle soft memlock 1048576 oracle hard memlock 1048576 前4行有的可以不写,直接添加下面2行
#su - oralce $ ulimit -l 1048576 $ exit 回退到root #vim /etc/sysctl.conf
kernel.shmmax = 4194967295 #Linux主机内存的一半,单位为byte,但最大最不能超过4294967295 kernel.shmmni = 4096 #一般固定为4094 kernel.shmall = 2097152 #应该>或= kernel.shmmax/kernel.shmmni 这些配置参数就是参考没有就添加,有就看下一步了亲。
#sysctl -p
5启动数据库并修改参数文件 #su - oracle $cd $ORACLE_HOME/dbs $cp spfileorcl.ora /home/oracle/ //这一步就是备份下文件用的 $ strings spfileorcl.ora > init.ora.bak $vim init.ora.bak 添加: *.use_indirect_data_buffers=true *.db_block_buffers = 393216 *.shared_pool_size = 452984832 删除: *.sga_max_size *.sga_target
db_block_buffers表示db_block_size的大小,如欲使用3g的db_block_size,则公式:(3×1024×1024/8=393216)
$ sqlplus / as sysdba SQL> startup pfile='?/dbs/init.ora.bak' 生成spfile SQL> create spfile from pfile='?/dbs/init.ora.bak'; SQL> shutdown immediate SQL> startup SQL> select status from v$instance;
这样就可以了,sga可以突破1.7G限制了。
|