本文将指导大家安装以下内容:
Oracle g () on Red Hat Enterprise Linux Advanced Server (RHELAS)
Oracle g () on Red Hat Enterprise Linux Advanced Server (RHELAS)
Oracle g () on Red Hat (RH)
Oracle g () on Red Hat Fedora Core (FC)
从OTN上下载Oracleg for Linux 版
l
下载的文件shipdbcpiogz作如下处理:
如果你是在windows os下载的文件可以通过linux的samba功能直接拷贝shipdbcpiogz至你的linux目录下
做一下CRC (cyclic redundancy check)检查:
$cksum shipdbcpiogz
将shipdbcpiogz放在/tmp下解压shipdbcpiogz
$gunzip shipdbcpiogz
得到Disk这样的目录这就是oracleg For Linux的安装文件
===========
再做以下检查:
$grep MemTotal /proc/meminfo
检查swap空间的大小
$grep SwapTotal /proc/meminfo
请确保你的swap大小为内存的倍左右这样对于oracle的安装和使用有好处否则在建立资料库时会出问题我的内存为g 我的swap设为G
如果你安装linux时预先没有设定swap至足够大请照如下设定执行
$su root
#dd if=/dev/zero of=tmpswap bs=k count=
#chmod tmpswap
#mkswap tmpswap
#swapon tmpswap
=======
安装Oracle Universal Installer 需要在/tmp下至少 MB 的自由空间
检查/tmp:
$df /tmp
如果你在/tmp下没有足够空间 你可以在另一个分区中临时的建立一个tmp目录请看如下做法:
$su root
#mkdir /<AnotherFilesystem>/tmp
#chown rootroot /<AnotherFilesystem>/tmp
#chmod /<AnotherFilesystem>/tmp
#export TEMP=/<AnotherFilesystem> # 被oracle使用
#export TMPDIR=/<AnotherFilesystem> # 用于linux应用程序
当你安装完Oracleg 关闭Oracle并移除临时性的tmp目录如下作法:
$su root
#rmdir /<AnotherFilesystem>/tmp
#unset TEMP
#unset TMPDIR
=====
检查linux上的安装包(RPMS)主要检查与compatgcc compatlibstdc++等等兼容性因为在XWINDOWS下安装ORACLEg需要用到窗口api函数接口
检查linux核心RPMS
$uname –a
结果应该是以上的版本才行
检查glibc RPMs
对于RedHat ELAS 需要如下变更
$su – root
#rpm Uvh glibcirpm glibccommonirpm
检查gcc make and binutils RPMs
#rpm q gcc make binutils
查出以下RPMs是否被安装:
对于RHELAS 和RHELAS: make 或以上版本
对于RHELAS and RHELAS: binutils 或以上版本
对于RHELAS: gcc或以上版本
对于RHELAS: gcc或以上版本
RHELAS 系统中 make和binutils RPMs 已经被安装然而 还有以下一些RPMs 需要安装你能在RHELAS安装碟中的第个找到这些RPMs当然也可以下载新版的来装
$su root
#rpm Uvh gccirpm
glibcdevelirpm
glibcheadersirpm
glibckernheadersirpm
RHELAS系统中 在RedHat Advanced Server安装中如果你没有选择Software Development 将不会安装binutils 和gcc的RPMs为了满足oracle安装对于xwindows的需要相依性需要执行以下指令
$su root
#rpm ivh gccirpm
binutilsirpm
cppirpm
glibcdevelirpm
kernelheaderseirpm
RH系统中 make RPM 已经被安装 还有以下包需要再装请注意oracle不支持在RH上安装你应该努力去找到一些合适的RPM 以下需安装的包请先在你的RH的CD中找找如没有可以在中搜索到
$su root
#rpm Uvh gccirpm
glibcdevelirpm
cppirpm
glibckernheadersirpm
binutilsirpm
FC系统中 make RPM 已经被安装 还有以下包需要再装 注意FC的情况与RH类似都不被ORACLE支持 你应该努力去找到一些合适的RPM 以下需安装的包请先在你的RH的CD中找找如没有可以在中搜索到
$su root
#rpm Uvh gccirpm
glibcdevelirpm
cppirpm
glibcheadersirpm
glibckernheadersirpm
binutilsirpm
检查openmotif RPM
$rpm q openmotif (开放软体基金会的图形介面相关于linux下的Directx)
(以下各个文件请在RH的安装CD中找或去搜索我试过基本都能找到)
RHELAS 如果没有安装openmotif 请执行
$su root
#rpm ivh openmotifirpm (或更新版本)
RHELAS 如果没有安装openmotif 请执行
$su root
#rpm ivh openmotifirpm
RH 请执行
$su root
#rpm Uvh openmotifirpm
FC 请执行
$su root
#rpm Uvh openmotifirpm
检查setarch RPM
RHELAS 执行以下指令查核是否为setarch RPM 或更新版本:
#rpm q setarch
setarch是RHEL的一个新功能 用于模拟一个GB 的虚拟地址空间以允许如此的应用程式能够正常运作假如没有安装请执行:
$su root
#rpm Uvh setarchirpm
RHELAS 和RH 不需要setarch RPM
对于FC 虽然用不到它也请执行:
$su root
#rpm Uvh setarchirpm
检查redhatrelease RPM
查出redhatrelease RPM 是否被安装:
$rpm q redhatrelease
这个RPM对于RHEL系列的LINUX很重要因为它将用于ORACLE的安装认证 没有这个包 Oracleg 将会认定该OS不被支持
对RHELAS 请执行(在RHELAS disk 中可找到此RPM):
$su root
#rpm ivh redhatreleaseASirpm
对 RHELAS 请执行(在RHELAS disk 中可找到此RPM):
$su root
#rpm ivh redhatreleaseasASnoarchrpm
但是对于RH 和FC 你只要编辑一下/etc/redhatrelease 这个文件就行了
$su root
#cp /etc/redhatrelease /etc/redhatreleasebackup
#cat > /etc/redhatrelease << EOF
#Red Hat Enterprise Linux AS release (Taroon)
#EOF
记得安装完Oracleg要还原该文件内容:
$su root
#cp /etc/redhatreleasebackup /etc/redhatrelease
好了做完以上的準备工作我们该开始令人激动的Oracelg安装! 安装前我们还需设定一下与Oracle相关的内核参数
先看看所有内核参数:
$su root
#sysctl a
安装执行指令在/tmp/Disk下我们不建议直接执行
runInstaller ignoreSysPrereqs
对于Oracleg 需要设定为以下参数值可以设定更大一点的值:
查核结果可执行右边括号中内容
shmmax = (cat /proc/sys/kernel/shmmax)
这意味着系统的共享内存达到G这是不合适的一般SHMMAX的设置可略大于本机内存配置
事实上缺省安装的RedHat 核心运行Oracle 是没有问题的一般情况下可不对这些参数作出调整
如确需调整在完成修改后要按文档要求重生成核心并用lilo命令指定用新的核心进行引导
shmmni = (cat /proc/sys/kernel/shmmni)
shmall = (cat /proc/sys/kernel/shmall)
shmmin = (ipcs lm |grep min seg size)
shmseg = (被硬编码在kernel中缺省值更高)
semmsl = (cat /proc/sys/kernel/sem | awk {print $})
semmns = (cat /proc/sys/kernel/sem | awk {print $})
semopm = (cat /proc/sys/kernel/sem | awk {print $})
semmni = (cat /proc/sys/kernel/sem | awk {print $})
filemax = (cat /proc/sys/fs/filemax)
ip_local_port_range =
(cat /proc/sys/net/ipv/ip_local_port_range)
NOTE: Do not change the value of any kernel parameter on a system where it is already higher than listed as minimum requirement
On RHELAS RHELAS RH and on FC I had to increase the kernel parameters shmmax semopm and filemax to meet the minimum requirement
Oracle also recommends to set the local port range ip_local_port_range for outgoing messages to which is needed for highusage systems This kernel parameter defines the local port range for TCP and UDP traffic to choose from
I added the following lines to the /etc/nf file which is used during the boot process:
kernelshmmax=
kernelsem=
fsfilemax=
netipvip_local_port_range=
Adding these lines to the /etc/nf file will cause the system to change these kernel parameters after each boot using the /etc/rcd/rcsysinit script which is invoked by /etc/inittab But in order that these new added lines or settings in /etc/nf become effective immediately execute the following command:
su root
sysctl p
For more information on shmmax shmmni shmmin shmseg and shmall see Setting Shared Memory
For more information on semmsl semmni semmns and semopm see Setting Semaphores
For more information on filemax see Setting File Handles
<在/oracle//bin/dbshut 加入>
##自动关闭Listner
if [ f $ORACLE_HOME/bin/lsnrctl ] ; then
$ORACLE_HOME/bin/lsnrctl stop
fi
##自动关闭Oracle Apache Jserv
if [ f $ORACLE_HOME/Apache/Apache/bin/httpdsctl ] ; then
$ORACLE_HOME/Apache/Apache/bin/httpdsctl stop
fi
完成后请测试
$/oracle//bin/dbstart
$/oracle//bin/dbshut
开机自动启动 Oracle
请将oracleg这个script cp至/etc/rcd/initd
$cp oracleg /etc/rcd/initd
再加入开机服务程序中
#chkconfig add oracleg
#linuxconf
用linuxconf即可控制启动的层次
************
***oracleg 执行档
#!/bin/sh
#
# chkconfig:
# description: starts the oracle dabase de
#
echo Oracle g auto start/stop
ORA_OWNER=oracle
ORA_HOME=/oracle//db
case $ in
start)
echo n Starting Oracleg:
su $ORA_OWNER c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/oracleg
echo
;;
stop)
echo n Shutting Oracleg:
su $ORA_OWNER c $ORA_HOME/bin/dbshut
rm f /var/lock/subsys/oracleg
echo
restart)
echo n Restarting Oracleg:
$ stop
$ start
echo
;;
*)
echo Usage: oracleg {start | stop | restart }
exit
esac
exit