一、配置内核参数
为了让oracle数据服务器正常运行,必须配置一定的操作系统资源。默认情况下,这些资源的设置不足以满足oracle 10g数据库的正常启动与运行。不过好在linux操作系统允许动态修改这些参数,使得内核参数调整以后不用重新启动操作系统。
修改内核参数的方法有好几种,比如可以通过修改/proc伪文件系统的方法动态地修改内核参数。除了修改内核参数的方法以外,/proc文件系统还含有内核系统的性能及配置信息。
1.使用/proc伪文件系统配置内核参数
linux需要配置的参数包括信号量、共享内存、可同时打开的最大文件数以及端口号的范围。信号量参数全部保存在/proc/sys/kernel/sem文件中,分别是semmsl、semmns、semopm和semmni。这些参数的配置必须达到下面的最低标准:
参数 | 值 | 描述 |
semmsl | 250 | 每个ID的最大信号数目 |
semmns | 32000 | 系统中信号量的最大数目(必须大于或等于semmni*semmsl) |
semopm | 100 | 每次信号量调用的最大操作次数 |
semmnni | 128 | 信号量识符的最大数目 |
SGA的大小由/proc/sys/kernel/shmall、/proc/sys/kernel/shmmax和/proc/sys/kernel/shmmni等文件中的共享内存参数决定,这些文件描述如下:
参数 | 值 | 描述 |
shmall | 297152 | 系统共享内存页面的最大数目 |
shmmax | 内存容量的1/2 | 共享内存段的最大尺寸 |
shmmni | 4096 | 系统共享内存段的最大数目 |
除此之外,需要设置的参数还包括/proc/sys/fs/file-max和/proc/sys/net/ipv4/ip_local_port_range,如下所述:
参数 | 值 | 描述 |
/proc/sys/fs/file-max | 65536 | linux分配的最大文件句柄数 |
/proc/sys/net/ipv4/ip_local_port_range | 1024~6500 | ip端口号,默认为1024~4999,只允许3975个向外的连接,但这不够oracle的使用 |
以上为/proc使用伪文件系统修改配置内核参数,该方法为动态地,任何时候都可以修改,但是系统每次重启时都会恢复!
修改方式:
e.g.
查看当前参数值:
cat /proc/sys/kernel/shmmax
修改参数值:
echo 2147483638 > /proc/sys/kernel/shmmax
如果希望每次启动时都能自动执行上述修改参数的命令,可以将他们写入/etc/rc.local文件,该文件与shell脚本类似:
# configuration parameters for oracle
echo "2147483638" > /proc/sys/kernel/shmmax
............
每次系统启动都会执行/etc/rc.local文件,从而可以重新设置这些参数。不过,最好的方法还是修改/etc/sysctl.conf文件。
2.使用/etc/sysctl.conf文件配置内核参数
除了前面所说的方法,还可以将参数写入/etc/sysctl.conf文件,就可以在系统启动时设置内核参数。/etc/sysctl.conf文件中包含/proc目录下的文件及其值,如下所示:
kernel.shmall = 2098152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range= 1024 65000
可以运行/sbin/sysctl -p 程序载入这些数据,并检查这些参数的设置是否正确。默认情况下,red hat linux启动时会读取这个文件,对于suse linux,则可以使用以下命令激活该文件:
/sbin/chkconfig boot.sysctl on
二、添加用户及用户组
oracle的账号必须属于oinstall用户组,并且必须是dba组的成员。
添加用户组:
groupadd oinstall
groupadd dba
添加用户账号:
useradd -g oinstall -G dba oracle
三、为oracle用户配置shell限制
提高oracle用户的shell限制,以便可以创建和打开大文件。完成这些工作需要修改/etc/profile文件,提高其中设置的上限。将下列内容添加到/etc/profile文件中:
if [ $USER = "oracle" ] ; then
if [ $SHELL = "/bin/ksh" ] ; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
此外,还需要在/etc/security/limits.conf 文件中加入以下几行内容,已修改单个用户允许使用的进程和文件数目:
*soft nproc 2047
*hard nproc 16384
*soft nofile 1024
*hard nofile 65536
最后,再修改/etc/pam.d/login文件,在其中添加下面一行代码:
sessionrequired/lib/security/pam_limits.so
四、创建目录结构
需要创建3个目录:
- oracle base 此目录作为oracle的基本目录
- oracle inventory 此目录用于oracle统一安装程序(oracle universal installer,OUI)
- oracle home 此目录用于安装某些特定的软件,通常作为oracle base的子目录
通常使用/u01、/u02 ...作为数据文件的安装点,使用opt/oracle作为oracle home目录,而oracle inventory的目录则通常为oracle_base/oraInventory
修改oracle目录权限:oracle目录的所有者应设为oracle用户,且用户组应设为oinstall,同事权限应设置为755。
e.g.
mkdir /opt/oracle
chown -R oracle.oinstall /opt/oracle
chmod -R 755 /opt/oracle
五、设置oracle环境
在安装oracle 10g时只需要在.bash_profile文件中添加以下内容:
umask 022
这个命令用来设置默认的文件创建掩码,将掩码设置为022后,创建的文件默认权限将为644,即rw-r--r--。
如果临时目录没有足够的空间,则应设置temp和tempdir环境变量:
TEMP=/u01/temp
TEMPDIR=/u01/temp
export TEMP TEMPDIR
最后是设置oracle_base和oracle_sid环境变量:
ORACLE_BASE=/opt/oracle
ORACLE_SID=orac
export ORACLE_BASE ORACLE_SID
接下来就可以安装oracle了!
——摘自Edward Whalen《基于linux平台的oracle database 10g管理》
---------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!