周末在家闲着无事就决定安装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 Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa44b13a8, pid=2973, tid=3086891216
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c3a8]
#
# An error report file with more information is saved as hs_err_pid2973.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
/u01/app/oracle/product/11.2.0/dbhome_1/bin/netca: line 178: 2973
Aborted $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $*
解决办法:
据说是因为Host是64-Bit的系统,装32位的软件环境下,会产生这个错误bug,主要装个补丁(patch name:p8670579_112010_LINUX.zip)就可以解决问题。
文件名: p8670579_112010_LINUX.zip
文件描述: parche oracle 11gr2
文件大小: 1.13 MB
首先从网上下载这个补丁包,然后用 unzip p8670579_112010_LINUX.zip 解压这个补丁包,会生成8670579命名的文件夹,
cd 8670579 进去后会发现 etc目录和 file目录和一个readme文件。
执行OPatch目录下opatch命令:
$ORACLE_HOME/OPatch/opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc
(补充一点查看oracle数据库中已经安装的补丁列表用 opatch lsinventory 命令)
在执行这个步骤时可能会报错:
Java could not be located. OPatch cannot proceed!
OPatch failed with error code = 1
这是由于环境变量参数路径设置不正确产生的问题,我最开始就碰到了这个问题。
比如说我这个最开始把$ORACLE_HOME设成的路径是/u01/app/oracle,而jdk目录在/u01/app/oracle/product/11.2.0/dbhome_1/下,它当然报错提示找不到jdk了。修改成正确的$ORACLE_HOME路径后这个错误就解决了。
以上就是我安装oracle的全过程和安装过程中可能碰到的问题。
Linux中Oracle的安装
猜你喜欢
转载自zerojava.iteye.com/blog/1113517
今日推荐
周排行