64位RHEL6.2上安装oracle10gR2
最近给某电信公司做了个项目,把原oracle库迁移到EnterpriseDB之PPAS上,拿回oracle的dump文件忙乎了一圈,把安装迁移过程写一下。
先列出总结后的安装过程,再列出安装过程中遇到的问题:
安装过程:
1
硬件:
ThinkPad笔记本:
Edge E135
软件:
Linux:
uname -a
Linux host1 2.6.32-220.el6.x86_64 #1 SMP Wed Nov9 9 08:03:13 EST 2011 x86_64 x64 x86_64 GNU/Linux
/etc/redhat-release
Red Hat Enterprise Linux Server release 6.2 (Santiago)
ORACLE:
oracle 10g R2 Linux X86_64
2
修改核心参数配置
编辑文件/etc/sysctl.conf,在最后一行内容后添加:
vm.hugetlb_shm_group = 503
#上面这个值刚开始设置为0,后来改为dba组的id
kernel.shmmni = 4096
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
参数的计算方法和填写原则请参见oracle官方安装文档《oracle 10g install for Linux.txt》
shmmax计算方法为:kernel:shmmax=1024*1024*RAM(M)/2
注:一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912; 如果是8G,可以设置最大共享内存为 8 * 512 * 1024 * 1024 =4294967296;以此类推。)
--Oracle Life
--shmmax内核参数定义单个共享内存段的最大值,如果该参数设置小于Oracle SGA设置,那么SGA就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。
3
修改后运行
#sysctl -p
4
编辑文件/etc/security/limits.conf,在文件最后加入:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
配置完毕,需用root重新登录,使配置生效。
5
编辑/etc/pam.d/login文件,如果该文件中没有如下内容,需要添加
session required pam_limits.so
6
groupadd oinstall
groupadd dba
useradd -g oinstall -g dba -m oracle
7
rpm包
rpm -q binutils compat-db compat-libstdc++-296 control-center gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make pdksh sysstat setarch gnome-libs xscreensaver
按上面的检查结果在操作系统安装光盘里找相关rpm包并打上
有下面4个包没找到
pdksh
setarch
gnome-libs
xscreensaver
7.1
其中pdksh、setarch这两个包是在下面的网站上找到的并下载的
http://pkgs.org/centos-5-rhel-5/centos-rhel-updates-x86_64/pdksh-5.2.14-37.el5_8.1.x86_64.rpm/download/
pdksh-5.2.14-37.el5_8.1.x86_64.rpm
setarch-2.0-1.1.x86_64.rpm
7.2
xscreensaver :没找到,使用gnome-screensaver代替
7.3
gnome-libs包的简介可以到下面的网站上看
http://lfs.linuxsir.org/htdocs/blfscvs/gnome/gnome-libs.html
gnome-libs包括libgnome, libgnomeui, libgnomesupport, libart_lgpl, libgtk-xmhtml, libgnorbagtk 和 libzvt.,
在OS安装盘里找到了libgnome, libgnomeui,libart_lgpl等打上,没找到的没有装。
7.4
其中的libXp包需要依赖32位的,这个包还依赖其他32位的包,通通装上
8
# Oracle Environment
修改/oracle/home/.bash_profile,在后面追加下面内容
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/ora10g
export ORACLE_HOME=/opt/ora10g/product/10.2/db_1
export ORACLE_SID=ora10_sid
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export ORA_NLS33=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:/lib64:/usr/lib64:/usr/local/lib64
export CLATHPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
umask 022
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
因为Redhat 5、6 不支持Oracle 10.2.0.1,所以要修改一些参数
9
编辑/etc/redhat-release文件替换现在的版本信息(Red Hat Enterprise Linux Server release 5 (Tikanga))
Red Hat Enterprise Linux Server release 4.2 (Santiago)
#可能改成这个也可以redhat-4
10
修改安装文件oraparam.ini,在对应的地方添加redhat-5、redhat-6相关内容如下
# vi %安装文件存放路径%/10201_database_linux64/database/install/oraparam.ini
[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,redhat-5,redhat-6,UnitedLinux-1.0,asianux-1,asianux-2
再添加
[Linux-redhat-5.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
[Linux-redhat-6.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
11
$gunzip 10201_database_linux_x86_64.cpio.gz
$cpio –idmv < 10201_database_linux_x86_64.cpio
12
./runInstaller
下面列出遇到的问题
1
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2012-12-02_08-55-04AM. 请稍候...[oracle@localhost database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2012-12-02_08-55-04AM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: wrong ELF class: ELFCLASS64
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.<clinit>(Unknown Source)
at java.awt.Component.<clinit>(Unknown Source)
查了libawt.so的依赖程序:
有libXp.so、linux-gate.so、libXt.so、libXext.so、libXtxt.so、libX11.so
libm.so、libdl.so、libXau.so、libSM.so、libICE.so、libXi.so、libxcb.so、libuuid.so等
把相关的包都装上
2
安装到65%时,检查环境时没有执行网络检查
修改了/etc/hosts文件,把里面的IPV4和IPV6的127.0.0.1都注释掉,同时把这个文件和/etc/sysconfig/network文件中的hostname都改成了host1(这个可能不需要).
再检查就ok了
后来使用oracle时,lsnrctl在启动监听服务时,报下面的错误
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
修改/etc/hosts文件,增加127.0.0.1 localhost后,就可以了
127.0.0.1 localhost
#::1 host1
192.168.1.99 host1
3
安装过程中报如下错误
Error in invoking target 'collector' of makefile
这个问题没有解决,可以参考下面两个网址:
https://forums.oracle.com/forums/thread.jspa?threadID=592448
http://www.ligledba.com/2012/11/13/suse11-oracle10g-ins_emdb-mk/
安装好后数据库运行正常,有无后遗症不详
鄙视一下oracle,安装依赖的包总能带一份吧,还有安装时网络检查和后来启动监听时都修改了/etc/hosts文件,而且冲突。
本次安装参考文件
【1】oracle install for redhat.pdf
【2】涂抹Oracle 三思笔记之一步一步学Oracle.pdf