Linux上安装Oracle 10g 装后感
Linux技术杂谈。
介绍
最近想研究下LoadRunner测试Oracle性能,然后自己就开始尝试着Linux上安装Oracle.本来感觉这件事情不怎么容易,听朋友说他安装的时候大费周折,重新安装多次,问了好多人才解决的,但完成安装后就感觉还是比较轻松的。现在和大家分享下我的经验,我本身也是Linux菜鸟。
材料来源:Fedora8下安装ORACLE10G数据库图文详解
说明:红字标明处是我的安装体会。
环境介绍
VMWare7.1,Fedora 8(Rad hat下的一个比较老的版本),Oracle 10g
安装准备
在WINDOWS上下载了10201_database_linux_x86_64.cpio.gz
然后用WINRAR解压成.cpio文件,我是通过建立WEB链接方式下载到虚拟机上的LINUX的。至于其他方式N种,找个自己熟悉的方式就行。
安装流程
1.解压
cpio -idmv < (这个类似于WINRAR,非常麻烦要进行2次解压)
2.设置内核参数:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
/sbin/sysctl -p
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
4.加入下面内容到/etc/pam.d/login文件
session required /lib/security/pam_limits.so
5.加入下面内容到/etc/selinux/config文件,如果此设置已经存在,改变value值就可以
SELINUX=disabled
6.使用下面的命令检查必须的包
rpm -q 包名
需要的包有:
binutils-2.* elfutils-libelf-0.* glibc-2.* glibc-common-2.* libgcc-4.*
libstdc++-4.* make-3.* elfutils-libelf-devel-0.* glibc-devel-2.* gcc-4.*
gcc-c++-4.* libstdc++-devel-4.* unixODBC-2.*
如果没有安装使用如下命令进行安装
yum install 包名
(注:包名可以写成上面的形式)
7.创建用户及组
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
usermod -G oinstall oracle
passwd oracle
8.创建目录
mkdir -p /usr/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /usr/app
9.修改/etc/redhat-release文件
内容为:redhat-4
10.向/etc/profile文件中加入如下内容
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/usr/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=TSH1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
设置之后重新启动计算机
11.以root 用户登录执行以下命令:
xhost +
12.切换到oracle用户
su oracle
执行:export DISPLAY=:0.0
13.进入oracle安装文件的目录
执行 : ./runInstaller
说明:这里要注意的是一定要在当前Oracle解压的目录下执行(cd命令和DOS一样),切记要在oracle帐号下执行,否则会抛一个错误。
14.当开始安装之后,如果出现在下面的几种异常的处理办法:
(1)Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2005-09-07_01-21-03AM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred
解决:运行 rpm -p – -whatprovides libXp.so.6 打印出此文件依靠的安装包, 运行 yum install [打印出来的文件名]
说明:这里报的错误可能会因为一些包被更新而不同,最方便的方法是安装包错的包直接使用yum命令,有些版本虚拟机不支持yum命令,你可以自己安装下,网上这类的教程很多。
(2)在进入图形安装界面后,验证安装条件时,如果出现error的情况,请根据提示进入日志文件内.
如果出现:xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock failed.这样的错误
解决:
A.先root用户登录,执行下面内容
yum –enablerepo=development update libxcb
说明:这里一些情况不太一样,使用该指令没有更新成功,一直报找不到资源错误,然后通过yum update libxcb,继续运行没有任何错误。
B.回到oracle用户,执行下面内容
export LIBXCB_ALLOW_SLOPPY_LOCK=1
15进入界面安装流程
(1)选择Advanced Installation
(2) 下一步
(3)选择Enterprise Edition
(4)下一步
(5)这里是Check你的安装条件,必须全部通过,否则无法顺利安装
说明:
(1)首先这里可能出现一些问题,Checking operating system package requirements(也就是验证操作系统包的完整性)虽然按照第6个流程安装了所有包,但一些特殊情况有些包可能会遗漏,如果出现Error或者Warning一定要看下面的日志,那些包是Fail的,你直接使用yum命令安装。
(2)有一个验证网络设置的选项,你可以通过vi编辑器打开/etc/hosts文件,把120.0.1修改成固定IP
(3)可能会出一些特殊的情况,这个和你本身的Linux版本,以及更新的包有关系,如果不行可以更新最新的,还是不行可以删除对应报错的包,然后安装指定版本的。
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
说明:这里要注意的是,记得报错后看日志,你可以看到因为什么原因报错。我碰到过一个问题, 在Link pending…流程中抛出异常,然后我找到对应的日志,发现因为找不到一个叫/urs/lib/libstdc++.so.5的文件,而文件夹下仅仅只有一个叫libstdc++.so.6的文件,明显版本比Orecla 10g指定的高,但Orecla 10g不认这个包。我使用ln命令解决了这个问题。命令:ln -s -f libstdc++.so.6 libstdc++.so.5。如果缺少包你也可以直接使用yum或者rpm命令安装。
(15)
(16)
(17)
(18)
(19)
16 尝试使用Oracle
命令如下:
>sqlplus
>userName:sysman
>passWord:******(第12步流程输入的密码)
SQL>select * from dba_tables where ROMNUM <= 10 (查出当前号下的所有表信息)
总结
在安装过程中你可能遇到各类不同问题,网上也写了一大堆,但是可能都不是你当前情况出现的问题,别急只要按Oracle本身的Install Guides去操作就可以了,其他问题基本上就属于出现包需要更新,安装类似的问题。 如果碰到特殊问题只要去网上查询下,基本上能找到解决方案。