日期:2014-05-16  浏览次数:20767 次

Linux中Oracle的安装

周末在家闲着无事就决定安装Oracle玩玩。这次用的是 RedhatEnterprise 4 + Oracle11gR2,在这次安装过程中遇到了些问题,特总结下来以备后用。

在开始安装之前先是安装Linux,由于在前几次的安装中跟/只挂载了10G左右的容量,没想到/u01也是用的/的容量,因此在安装完Linux系统后/只有大概4G左右的容量了是不够安装Oracle的。而且安我的习惯是将安装包解压到/tmp目录下,而/tmp目录也是用的/的容量。因此在这次安装中,在装Linux时,我就单独将/u01挂载了一些容量,只是这次挂载的容量还是小了点,只挂载了5G左右的容量,下次安装要挂载8-10G左右的容量才行。我看了下Oracle完全安装完大概要5.3G的容量。好了废话不多说,下面开始安装之前需要注意的东西。

检查硬件
内存
# grep MemTotal /proc/meminfo
交换空间
# grep SwapTotal /proc/meminfo
磁盘空间
# df -ah

首先是要检查需要支持的软件包:
就我的RedHatEnterprise4为例:

binutils-2.15.92.0.2-18
compat-libstdc++-33.2.3-47.3

elfutils-libelf-0.97-5
elfutils-libelf-devel-0.97.5
elfutils-libelf-devel-static-0.97.5

glibc-2.3.9.4-2.19
glibc-common-2.3.9.4-2.19
glibc-devel-2.3.9.4-2.19
glibc-headers-2.3.9.4-2.19

gcc-3.4.5-2
gcc-c++-3.4.5-2

kernel-headers-2.6.18
ksh-20060214

libaio-devel-0.3.105-2
libaio-0.3.105-2

libgcc-3.4.5
libstdc++-3.4.5-2
libstdc++-devel-3.4.5-2

make-3.80-5
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11


使用的命令是 rpm -qa | grep "部分包名"
如果没有的话可以在安装盘中找到相应的包,然后用 rpm -ivh *.rpm安装。

检查完安装包后就是创建相应的Oracle用户了,涉及到oinstall(The Oracle Inventory group)用户组、dba(The OSDBA group)用户组和oracle(The Oracle software owner)用户。

用root用户执行:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle


添加好用户和用户组后,就是修改内核参数,修改/etc/sysctl.conf文件,加上如下参数:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586


配置完后用 sysctl -p 应用配置。

修改用户限制,修改/etc/security/limits.conf 文件,加上下面的参数:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536


修改用户验证选项,修改/etc/pam.d/login 文件,加上如下参数:

session required pam_limits.so

修改用户配置文件,修改/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


然后再设置目录的权限和拥有者:
mkdir -p /u01/ (当然这步可以免了,因为我在最开始装Linux系统中就创建了这个目录并挂载了容量,只是容量要挂载大点)
chown -R oracle:oinstall /u01/
chmod -R 775 /u01/


最后就是修改oracle用户的.bash_profile文件了,增加一些环境变量:
增加
(注意在设置环境变量值时,等号左右两边是没有空格的)
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=zero(用来设置全局数据库名的,在安装过程中会用到这里设置的值)
export PATH=$ORACLE_HOME/bin:$PATH


其实我认为在设置环境变量这一步应该是安装完oracle后再设置的,因为在安装的过程中目录可能会有变化,这会导致执行oracle下的命令时提示命令找不到的错误。比如我安装后又修改了环境变量参数如下:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

其他的不用作任何改动。

还有一点要说明下,就是oracle是不允许动态IP安装的。像我是在安装Linux系统时选择DHCP动态分配IP,然后在安装oracle之前调用 netconfig 命令将动态分配IP禁掉,然后在静态IP中填写之前动态分配的IP地址就OK了。当然还要修改 /etc/hosts 文件,加上静态IP地址、主机域名和主机名。

以上准备工作全部结束后,就是安装oracle的时候了。
切换成oracle用户 su - oracle
执行安装 ./runInstaller

然后就照着提示一路next就OK了。

安装完成后就是配置监听器了,执行 netca 命令,而我在这一步遇到了错误,大概如下:

#
# An unexpected error has been detected by HotSpot