分类: Oracle
2009-05-07 20:55:33
注意:说明手册中运行命令带‘#’号的表明以root用户的身份登录系统;带‘$’号的表明以oracle用户身份登录。
一、检查硬件是否满足要求。
n 至少需要512M内存
n SWAP空间大于等于内存的1倍(8192M内存以内,超过8192M时为内存的0.75
n 400M以上的/tmp目录
n 1.5G到3.5G的硬盘空间用于安装Oracle软件(不包括数据库的数据文件)
1、查看内存大小的命令:
# grep MemTotal /proc/meminfo
2、查看SWAP大小的命令:
# grep SwapTotal /proc/meminfo
3、查看RAM和SWAP可用空间命令:
# free
4、查看/tmp大小的命令:
# df -k /tmp
5、查看硬盘空间的命令:
# df -k
6、查看计算机CPU情况的命令:
# grep "model name" /proc/cpuinfo
二、创建磁盘分区
#cat /proc/partitions
#fdisk /dev/sdb
p
d
n
1
w
#mkfs.ext3 /dev/sdb1
#vi /etc/fstab
/dev/sdb1 /opt ext3 defaults 0 0
#mount -a
三、检查系统软件是否满足安装要求。
1. Linux的内核版本:Red Hat Enterprise Linux 4.0 2.6.9-11.EL
2. 针对Redhat AS4.0,计算机所安装的系统(或开发)软件需包含以下版本的包:
binutils-2.15.92.0.2-10.EL4
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9.EL4
libstdc++-devel-3.4.3-9.EL4
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
注意:以上内容直接从Oracle数据库的安装手册上得到,其实这个清单即使安装完全,也并不足以使oracle数据库的安装顺利完成。因此在安装Linux操作系统时,在不是非常了解所需的必备软件包的情况下,建议选择安装全部可安装的软件。
n Redhat4.0需要安装Gcc3.2.3版本,SUN JDK1.5.0以上版本。
1、查看Linux的安装版本命令:
# cat /proc/version
2、查看Linux的内核版本命令:
# uname -r
3、查看已经安装的包的版本的命令:
# rpm -q package_name
如果系统显示的安装版本不符合要求,需要到Redhat的官方网站下载所需rpm,更新即可;如果系统显示所需软件没有安装,则应立即安装。
(安装rpm包,需要解压缩Linux格式的一些rpm包:tar –xvf 包名;强制安装包:rpm –Uvh 包名,以上操作需以root用户身份完成。另外,有的包还具有相关性,需要下载相关的包才能安装,如:内核包的升级需要安装mkinitrd包才可以)
四、检查网络设置是否满足安装要求
网络设置一般在安装时按照具体情况进行配置即可。当因为网络情况引起安装问题时,应按照安装手册的说明对网络情况进行检查。也可以暂时不考虑网络因素。
五、创建安装所需的操作系统组和用户
必须添加的系统组有:oinstall、dba(大小写敏感)。oper组不属于必须安装选项。
n 创建Oracle首要组oinstall。
1、用命令查看oracle首要组的安装情况:
# more /etc/oraInst.loc
如果有信息输出表明首要组存在,否则就需要创建。命令为:
# /usr/sbin/groupadd oinstall
2、用命令查看oracle dba组的是否存在:
# grep dba /etc/group
如果不存在,用以下命令创建:
# /usr/sbin/groupadd dba
3、创建oper组的命令:
# /usr/sbin/groupadd oper
n 创建oracle的属主用户(oracle)
1、查看oracle用户的情况:
# id oracle
2、创建oracle用户命令:
# /usr/sbin/useradd -g oinstall -G dba oracle
3、修改oracle数据库属主用户(oracle)的属性,使oinstall作为oracle用户的首选组:
# /usr/sbin/usermod -g oinstall -G dba oracle
4、要确认nobody用户存在,如果不存在创建它。
# id nobody
# /usr/sbin/useradd nobody
六、配置内核参数
要使你的操作系统上所设置的内核参数大于等于以下相应值:
semmsl 250
semmns 32000
semopm 100
semmni 128
shmall 2097152
shmmax 物理内存的一半
shmmni 4096
file-max 65536
ip_local_port_range Minimum:1024 Maximum:65000
rmem_default 262144
rmem_max 262144
wmem_default 262144
wmem_max 262144
1、用以下命令查看相应的参数值
#/sbin/sysctl -a | grep sem(参数名)
如果参数值达不到上述要求,则需要修改/etc/sysctl.conf文件,在其中添加或修改以下内容:
kernel.shmall = 2097152
kernel.shmmax = 物理内存的一半(1024*1024*物理内存)
kernel.shmmni = 4096
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
注意:若使此参数配置生效,需要重启操作系统。(在suse linux下则不需要)
2、为oracle用户设置shell限制:
u 首先在/etc/security/limits.conf文件中添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
u 然后在/etc/pam.d/login文件中添加以下内容:
session required pam_limits.so
u 在/etc/profile下添加以下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
七、确认将要安装的的软件目录
n oracle首选目录一般为:oracle_base/oraInventory
n oracle home目录一般为:oracle_base/product/10.2.0
n 确认并生成oracle base目录(在我的安装过程中,oracle base目录是/opt/oracle)
上述具体目录由你自己确定。
1、创建oracle base目录
在创建之前,需要确认你所创建的目录满足oracle的安装空间需要。创建例子为:
#mkdir -p /opt/oracle
创建完毕,需要将该目录的属主限授予oracle首选组,并改变其操作权限,例子如下:
# chown -R oracle:oinstall /opt/oracle
# chmod -R 775 /opt/oracle
注:对于使用裸设备和ASM(自动存储管理)的oracle数据库的特别安装配置,在此不作特别说明,如果需要,可参考oracle数据库的完整安装手册。
八、配置用户环境变量
1、设定mask和DISPLAY环境变量。
在oracle用户的根目录下的文件/home/oracle/.bash_profile中添加如下内容:
$umask 022
$DISPLAY=:0.0; export DISPLAY
远程安装的,还需要在运行安装程序之前。在根用户下运行xhost + rlinux.localdomain(你的完整机器名)。如果ORACLE_SID, ORACLE_HOME, 或 ORACLE_BASE等环境变量在profile文件中已经存在,请注释或删除掉相应内容。
2、修改配置文件/etc/inittab , 将 x:5:respawn:/etc/X11/prefdm –nodaemon 修改为 x:3:respawn:/etc/X11/prefdm –nodaemon
3、重启
#reboot
#su – oracle
$startx
3、运行以下命令,使oracle的一些参数生效:(不要添加到profile中,安装完成后再添加不迟)
$ export ORACLE_BASE=/opt/oracle
$ export ORACLE_SID=db_1
$ export ORACLE_HOME=/opt/oracle/product/10.2.0
九、安装
在安装目录下运行安装程序:
上传10201_database_linux_x86_64.cpio
#cp 10201_database_linux_x86_64.cpio /home/oracle
#su - oracle
$cd /home/oracle
$cpio –imd < 10201_database_linux_x86_64.cpio
$ export ORACLE_BASE=/opt/oracle
$ export ORACLE_SID=db_1
$ export ORACLE_HOME=/opt/oracle/product/10.2.0
$./runInstaller
安装过程全部是用户图形界面,与在windows环境下的安装界面没有多大区别,用户按照系统要求和你自己计算机的情况完成即可。安装过程中,需要注意的是oracle首选组的选择、oracle home的输入以及可能出现的错误提示和解决办法。(具体出错提示和解决办法参考本手册附带内容)。另外,安装过程中,安装程序会检测你为系统配置的参数是否存在问题并显示结果报告,如果结果存在问题,应先退出,待修正问题以后再启动安装。
安装结束前,安装界面会弹出窗口,需要以root用户身份运行两个命令:
# /home/oracle/oraInventory/orainstRoot.sh
# $ORACLE_HOME/root.sh
安装完成,需要立即备份root.sh文件,以便将来安装新的oracle产品时使用。如果要删除oracle数据库,需要通过运行dbca命令首先删除oracle数据库实例,然后再运行$ORACLE_HOME/oui/install/runInstaller命令,进入安装界面,根据需要选择删除全部或需要删除的部分软件即可。
十、安装完成后的配置
n oracle安装完成后,需要设置相应的环境变量,即将环境变量添加到/home/oracle/.bash_profile中。
export ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/10.2.0
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin
export TNS_ADMIN
ORA_NLS33=$ORACLE_HOME/nls/data
export ORA_NLS33
PATH=$PATH:$ORACLE_HOME/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
CLASS_PATH=$CLASS_PATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export CLASS_PATH
自动启动oracle数据库:
首先,在root用户模式下修改/etc/oratab 文件,如下:
SID:ORACLE_HOME:AUTO
O10g:/opt/oracle/product/10.2.:Y <-- 设成Y,dbstart才会启动这个实例
其次,在根用户模式下在/etc/rc.d/init.d目录下添加文件oracle(此文件中含OEM的启动与停止,不需要的可去掉相应内容):#!/bin/sh # #/etc/rc.d/init.d/oracle #racle 数据库和监听程序 # 检查如何执行脚本文件 case "$1" in start) echo -n "Starting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstart >> /var/log/oracle echo "Done." echo -n "Starting Oracle Listeners: " su - oracle -c "lsnrctl start" >> /var/log/oracle echo "Done." echo "Startup Oracle Enterprise Manager Console" >> /var/log/oracle su - oracle -c "emctl start dbconsole" >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; stop) echo -n "Shutting Down Oracle Listeners: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle echo "Stop Oracle Enterprise Manager Console" >> /var/log/oracle su - oracle -c "emctl stop dbconsole" >>/var/log/oracle echo "Done." echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c "lsnrctl stop" >> /var/log/oracle echo "Done." rm -f /var/lock/subsys/oracle echo -n "Shutting Down Oracle Databases: " su - oracle -c dbshut >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle ;; restart) echo -n "Restarting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstop >> /var/log/oracle su - oracle -c dbstart >> /var/log/oracle echo "Done." echo -n "Restarting Oracle Listeners: " su - oracle -c "lsnrctl stop" >> /var/log/oracle su - oracle -c "lsnrctl start" >> /var/log/oracle echo "Done." echo -n "Restarting Oracle Emterprise Mnaager Console:" su - oracle -c "emctl stop dbconsole" >> /var/log/oracle su - oracle -c "emctl start dbconsole" >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; *) echo "Usage: oracle {start|stop|restart}" exit 1 esac |
注意,此文件的第一个注释# !/bin/sh必须存在,否则,该文件无法执行。文件建立后,执行chmod 777 oracle命令修改该文件的权限。
最后,在根用户模式下,执行以下命令以便在系统运行等级目录中建立链接:
# ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle #启动
# ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle #启动
# ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle #启动
# ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle #停止
# ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle #重新启动
附:安装前后出现的错误、出错原因以及解决办法:
1、安装开始后即退出,无法进入安装用户图形界面。
一般是由于DISPLAY设置错误造成的,需要重新设置DISPLAY环境变量。
2、安装过程中,出现错误提示,make 文件ins_ctx.mk、ins_rdbms.mk 时出错。
出现make ins_ctx.mk文件出错,一般是由于glibc6-dev包没有安装造成的,重新安装即可。而出现make ins_rdbms.mk文件出错,则一般可以忽略。另外,可以查看当时的安装日志,具体情况具体分析。
3、安装完成后,用dbca运行数据库的配置运行到2%时报错。TNS-12547,TNS:lost contact
这通常是由于安装前环境变量的配置出错造成的;也有可能是操作系统安装不全造成的。需要对照安装手册检查环境变量或重新安装操作系统。
4、安装完成后,用dbstart命令启动数据库时报错找不到路径/ade/vikrkuma_new/oracle。
这是oracle安装软件本身的一个bug造成的。可以编辑$ORACLE_HOME/bin/dbstart文件,找到相应的路径,将该路径修改为$ORACLE_HOME即可
5、安装完成后,用dbstart命令启动数据库时出现ora-12547的错误。
这个问题通常是表现为用户已完成dbca的配置,但在配置dbca过程中出现过TNS-12547的错误,用户选择了忽略并完成安装。那么,这个问题出现的原因与3同样。
6、安装完成后,用SQLPLUS启动数据库出现ora-12547错误,同时显示libaio.so.l文件不存在。
出现这个问题有可能是异步开关的问题,也有可能同3的原因一样。解决异步开关的问题,可以通过对异步开关进行配置完成。
备注:出现安装错误时,可利用google搜索中英文页面,一般能在网上找到翔实的解决方案。 网站上有很多oralce数据库安装、配置问题相关的解决方案。