RedHat EL5 x86-64上命令行安装Oracle
10g笔记
声明:本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。
1 安装前的准备
准备工作要用登录为root用户来进行。
1.1. 选择安装环境的语言
Oracle安装时可以通过环境变量LANG指定安装语言,如果Linux命令行不能显示中文,就要将语言环境设置为英语。 例如:export LANG=en_US.UTF-8
1.2. 修改gennttab
Oracle 10g在一些Linux系统下安装可能会被中断,在安装日志文件$ORACLE_HOME/install/make.log里可以看见以下错误信息: /bin/sed: -e expression #1, char 7: unterminated `s' command 要解决这个问题就必须编辑文件 gennttab。 先解压Oracle安装目录下的
stage/Components/oracle.network.rsf/10.2.0.1.0/1/DataFiles/filegroup6.jar,可以用以下方法之一进行解压 用jar解压:
$jar -xf filegroup6.jar bin/gennttab
用unzip解压:
$unzip filegroup6.jar bin/gennttab
再用文本编辑器(例如vi)打开解压出来的 gennttab,将以下内容
LIB=`$ECHO ${TtoLIB} | $SED 's/ /\\\\ /g' | $GREP \ INI=`$ECHO ${TtoINI} | $SED 's/ /\\\\ /g' | $GREP \ BAS=`$ECHO ${TtoBAS} | $SED 's/ /\\\\ /g' | $GREP \
改为
LIB=`$ECHO ${TtoLIB} | $SED 's/ /\\n/g' | $GREP \ INI=`$ECHO ${TtoINI} | $SED 's/ /\\n/g' | $GREP \ BAS=`$ECHO ${TtoBAS} | $SED 's/ /\\n/g' | $GREP \
保存后再用将gennttab更新到filegroup6.jar里面。 网上有用jar打包的方法,如下: 用jar更新:
$jar -uvf filegroup6.jar bin/gennttab
我在用jar打包出现了同题,就是这么个问题花了我3天时间来找。用jar打包后新的jar 包再用jar –xf 解时解不了!这真是个可笑的问题,自己打的包自己解不了。
我测试过用zip是可以的,不会破环jar包。用zip更新:
$zip -vu filegroup6.jar bin/gennttab
1.3. 修改内核参数
编辑文件 /etc/sysctl.conf,修改以下项目,如果没有可以自己添加。
# 可以使用的共享内存的总量。 kernel.shmall = 4294967296 # 最大共享内存段大小。
kernel.shmmax = 68719476736 # 整个系统共享内存段的最大数目。 kernel.shmmni = 4096
# 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。 kernel.sem = 250 32000 100 128 # 系统中所允许的文件句柄最大数目。 fs.file-max = 65536
# 应用程序可使用的IPv4端口范围。
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 #
注:内核参数并非必须修改,可以根据自己实际情况而定。
1.4. 为Oracle创建DBA组和用户
安装Oracle必须指定拥有DBA权限的组和运行Oracle的用户。
创建组:
#groupadd dba #groupadd oinstall #groupadd oper
创建用户:
#useradd -g oinstall -G dba oracle #passwd oracle
下面修改 oracle用户的.bash_profile文件
注:组名和用户名可以任意指定,不一定要照搬本文。
su - oracle vi .bash_profile
#-------------------------------------- # Set for Oracle10g Install | #-------------------------------------- trap \trap clear 0 export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=UIP export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export LD_ASSUME_KERNEL=2.6.9
export NLS_LANG=\LC_CTYPE=zh_CN.UTF8 LC_ALL=zh_CN.UTF8 LANG=zh_CN.UTF8 umask 022 #
if [ $USER = \if [ $SHELL = %ulimit -p 16384 ulimit -n 65536 else
ulimit -u 16384 -n 65536 fi
fi
#------------------- Set Over
1.5. 创建安装Oracle的目标目录
创建Oracle系统目录:mkdir /oracle 创建Oracle服务器主目录:mkdir /oracle/10g
将该目录的所有者设置为oracle:chown oracle /oracle -R 编辑 /etc/profile,在后面追加以下两行
export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle/10g
注:安装Oracle的目标目录可以任意指定,但是安装和运行Oracle的用户必须有完全修改该目录的权限。
1.6. 下载安装32位JAVA所需的X环境的组件
如果你是在普通的32位的linux下安装oracle 10g,无需做此步骤。但在64位的linux上安装oracle 10g时,必须做此步骤,原因很简单,因为64位的oracle 10g安装包里内含的jdk1.4.2和jre1.4.2都是32位的,所以若不做此步骤便会在下面执行dbca的时候出现提示缺少了libXp.so.6包的错误。 下载安装安装
xorg-x11-deprecated-libs-6.8.2-1.EL.13.20.i386.rpm包即可,据说在Oracle提供的ENTERPRISE Linux for X86-64 R4里有相应的包。不过可以在rpmbones.net上找到下载的。
rpm -ivh xorg-x11-deprecated-libs-6.8.2-1.EL.13.20.i386.rpm