RHEL5 上 安装 Oracle 10.2.0.1
OS:redhat server5
DB:oracle10.2.0.1
这两天在Red Hat Enterprise Linux 5 (RHEL5)上安装了Oracle 10g(10.2.0.1)
1、下载ORACLE安装文件:
可以从Oracle的主页上下载:
Oracle Database 10g Release 2 (10.2.0.1) Software
解压文件
解压下载好的文件:
unzip 10201_database_linux32.zip
你可以把他解压到一个目录中,例如 "db/Disk1" 或者 "database".
2、RHEL5 操作系统内核参数调整:
以root的身份完成下面的工作:
修改内核参数
增加下面的内容到文件 /etc/sysctl.conf 中:
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
增加下面的内容到文件 /etc/security/limits.conf 文件中:
# 20091010 add content for oracle install
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
增加下面的内容到文件 /etc/pam.d/login 中:
# 20091010 add content for oracle install
session required /lib/security/pam_limits.so
因为SELINUX对oracle有影响,所以把secure linux设成无效,编辑文件 /etc/selinux/config :
修改/etc/selinux/config文件来关闭linux防火墙,确保SELINUX设置如下:
SELINUX=disabled
当然你也可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择SELinux页面并且设为无效.
安装下面的包:
# 从RedHat AS5 光盘1
cd /media/cdrom/Server
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
cd /
eject
# 从RedHat AS5 光盘2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
cd /
eject
# 从RedHat AS5 光盘3
cd /media/cdrom/Server
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
cd /
eject
创建 Oracle 组和用户帐户
接下来,创建用于安装和维护 Oracle 10g的 Linux 组和用户帐户。用户帐户将称为 oracle,而组将称为 oinstall 和 dba。执行以下命令:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# passwd oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
设置 oracle 帐户的口令:输密码的时候都是没有回显的,输完就回车就好。
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.
(3)创建oracle的安装目录并改好权限
#mkdir -p /opt/oracle/product/10.2.0/db_1
#chown -R oracle.oinstall /opt/oracle
#chmod -R 755 /opt/oracle/product/10.2.0/db_1
[root@ywdb /]# mkdir -p /opt/oracle/oradata
[root@ywdb /]# chown -R oracle.oinstall /opt/oracle/oradata
[root@ywdb /]# chmod -R 755 /opt/oracle/oradata/
为oracle 的官方只支持到RHEL4为止,所以要修改版本说明,编辑文件 /etc/redhat-release 把Red Hat Enterprise Linux Server release 5 (Tikanga) 改成版本
Red Hat Enterprise Linux Server release 4 (Tikanga),当然oracle安装完成后,要修改回来5。
然后用oracle用户登陆做之后的操作。
安装登录到oracle 用户并且配置环境变量(增加下面的内容到文件 .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/opt/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=ywtest2db; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$PATH:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JREORACLE_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
在oracle用户下,执行source .bash_profile文件,立即生效。
修改/etc/hosts
把127.0.0.1改为具体的ip地址,如(192.168.5.253),注意最好去掉那些无用的,格式就是
ip地址 主机名 localhost
特殊处理,如果没有下面这些步骤,oracle在安装时,可能出现问题
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault 等oracle安装完成后,可以修改回来
#reboot(重启)
环境变量,设成英文或中文
export LC_ALL=en_US或export LC_ALL=zh_CN
中文乱码问题解决:
另外编辑/etc/sysconfig/i18n成下面这个样子:
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_TW.Big5:zh_TW:zh:en_US.iso885915:en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"
----------------------------------------------
在文本模式下 用root登录
# startx
# xhost +
# su - oracle
$ export DISPLAY="192.168.1.253:0.0"
$ export LANG=en_US
$ ./runInstaller
/opt/oracle/oralnventory
可以使用VNC客户端安装oracle
1、在服务器端启动vncserver启动
2、编辑 vi .vnc/xstartup
3、加入 startkde & 一行
4、在服务器端杀死进程 vncserver -kill :1
5、重启vncserver
-----------------------------------------------
安装时要注意:在安装到最后处理sqlplus时,系统会要求切换用户root上,执行两相script.
备注:
1。为了让其他计算机能够访问,必须把下面端口打开,端口1521(用于连接数据库),端口1158(如果要用浏览器访问enterprise managment),端口5560(如果要用浏览器访问isqlplus)。你可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择防火墙页面,并且增加上面的端口。
2。如果想开机时自动启动oracle的话,还需另外配置自动启动的脚本。
密码:system88
1)、利用rc.local。直接把dbstart加到rc.local中,实现开机自动启动。这里需要注意是必须以oracle启动该脚本。
用root编辑/etc/rc.local,添加下面一行:
su - oracle -c "/opt/oracle/product/10.2.0/db_1/bin/dbstart"
su - oracle -c "/opt/oracle/product/10.2.0/db_1/bin/emctl start dbconsole"
这里/opt/oracle/product/10.2.0/db_1需要替换成实际的ORACLE_HOME
保存并退出后,reboot服务器测试一下,可以看到,当系统启动以后oracle监听、实例和em都已经起来了
三、常见问题(FAQ)
错误1
在./runInstaller运行时出现,
错误描述:Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-09-25_10-54-49PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
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)
这个错误的出现原因是因为RatHat Enterprise Linux 5标准安装时,缺少libXp-1.0.0-8.i386.rpm包的缘故,我安装时尽管选的是全安装,还是出现这个问题。在光盘的Server文件下找到libXp-1.0.0-8.i386.rpm,在该目录下使用命令:
错误2
在oracle Universal Installer:Install过程中出现,
错误描述:
Exception String: Error in invoking target 'all_no_orcl ihsodbc' of makefile '/oracle/oracle/product/10.2.0/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2007-09-25_03-42-11AM.log' for details.
Exception Severity: 1
这个原因也是由于缺少相应的包compat-libstdc++-33-3.2.3-61.i386.rpm,手动安装吧。进到光盘的Sever目录下,运行下面命令:
错误3:启动监听报错
-bash-3.2$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 12-OCT-2009 18:13:24
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /opt/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /opt/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.62)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.62)(PORT=1521)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection reset by peer
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
-bash-3.2$
原因是/etc/hosts文件里的 127.0.0.1 注释掉了。
在网上搜索一下,另一种TNS-12547: TNS:lost contact的情况,具体错误如下:
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
原因:listener.log文件超过2G
解决方法:清空日志文件
[oracle@chicago ~]$ cd $ORACLE_HOME/network/log
[oracle@chicago log]$ cat /dev/null > listener.log
[root@localhost Server ]#rmp -ivh compat-libstdc++-33-3.2.3-61.i386.rpm