Red Hat Enterprise Linux 5(32Bit/64Bit)安装Oracle(10g/11g)

声明:本文中所描述的系统命令,未经特殊标示,均为“#”表明root权限,“$”表明oracle权限。
 
1、安装系统
首先安装Linux系统,根据Oracle官方文档的建议,在机器内存小于1G的状况下,swap分区大小应该设置为内存的2倍大,若内存大于2G则swap分区设置为与内存大小同样。
其实Linux系统的swap分区大小设置是颇有讲究的,若是哪位读者有兴趣,能够参考个人另一篇文章——《 如何合理设置Linux系统的swap分区大小》。
在系统安装的过程当中,必定选择安装全部开发包,建议不要安装SELinux或者安装后在系统中禁止SELinux运行,不然会出现一些莫名其妙的问题。
为防止Oracle安装过程当中出现乱码,建议使用英文做为系统语言,进行Oracle的安装工做
2、安装Oracle前的系统准备工做
1.检查须要的软件包
可使用rpm -qa|grep 软件包关键词命令进行检测,通常状况下会须要手动安装以下的软件包:
  From RedHat AS5 Disk 1(32 Bit)
  # rpm -Uvh setarch-2*
  # rpm -Uvh make-3*
  # rpm -Uvh glibc-2*
  # rpm -Uvh libaio-0*
  From RedHat AS5 Disk 2(32 Bit)
  # 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*
  From RedHat AS5 Disk 3(32 Bit)
  # rpm -Uvh openmotif-2*
  # rpm -Uvh compat-db-4*
若是使用DVD安装介质的话,会很方便。
2.修改Linux发行版本信息
因为Oracle 10g发行的时候,RedHat Enterprise Linux 5没有发行,因此Oracle 10g并无对RedHat Enterprise Linux 5确认支持,咱们有两种方法可让Oracle 10g支持RedHat Enterprise Linux 5。
方法一:
咱们须要手工修改Linux的发行注记,让Oracle 10g支持RedHat Enterprise Linux 5。
编辑/etc/redhat-release文件
# vi /etc/redhat-release
将其中的内容Red Hat Enterprise Linux Server release 5 (Tikanga)修改成Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
方法二:
还有文章说修改Oracle安装包中install/oraparam.ini文件的内容,也可让Oracle 10g支持RedHat Enterprise Linux 5,修改方法以下:
# vi install/oraparam.ini
在其中的Certified Versions段落增长redhat-5
#[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asianux-2]
再添加
[Linux-redhat-5.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
经我测试,发现方法二在安装以前的系统检测过程能够经过,可是在安装过程当中的系统支持检测没法经过,不知道是否是我设置的有问题,但愿有高手能够给我点提示。
3.修改系统内核参数
# vi /etc/sysctl.conf
kernel.shmall = 2097152                    //  该参数表示系统一次可使用的共享内存总量(以页为单位)。缺省值就是2097152,一般不须要修改kernel.shmmax = 2147483648            //  该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来讲,该缺省值过低了,一般将其设置为2G
kernel.shmmni = 4096                       //  这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。一般不须要更改
kernel.sem = 250 32000 100 128        //  表示设置的信号量
fs.file-max = 65536                            //  表示文件句柄的最大数量。文件句柄设置表示在linux系统中能够打开的文件数量
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
4.建立Oracle用户、组、安装目录
在这里我只讨论单主机环境,不考虑RAC环境的配置,在之后我会专门写一篇如何配置Oracle RAC环境的文章。
(1) 建立Oracle用户组
# groupadd oinstall
# groupadd dba
(2) 建立Oracle用户
# useradd -m -g oinstall -G dba oracle
(3) 设置Oracle用户口令
# passwd oracle
(4) 建立Oracle安装目录以及数据存放目录
# mkdir -p /DBSoftware/app/oracle
# mkdir -p /DBData/oradata
(5) 修改目录权限
# chown -R oracle:oinstall /DBSoftware/app/oracle/ /DBData/oradata/
# chmod -R 755 /DBSoftware/app/oracle/ /DBData/oradata/
5.添加如下内容到/etc/security/limits.conf
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
6.添加如下内容到/etc/pam.d/login
# vi /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
7.添加如下内容到/etc/profile
# vi /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
8.配置Linux主机
检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1便可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,致使没法启动监听,在此手工添加此记录便可。
9.配置oracle用户环境变量
# su - oracle
$ vi ~/.bash_profile
增长以下内容:
export ORACLE_BASE=/DBSoftware/app/oracle   // 上面建立的Oracle安装文件夹
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBARY_PATH=$ORACLE_HOME/lib
export PATH
umask 022
保存后使用以下命令,使设置生效:
$ source ~/.bash_profile
3、安装Oracle,并进行相关设置
1.解压缩安装文件
Oracle的安装包有这样几种格式:
(1) zip
这种格式最好解压缩,直接使用命令unzip 文件名便可
(2) cpio.gz
这种格式有这样几种解压缩方式
a.  # zcat XXXX.cpio.gz | cpio -idmv
b.  # gunzip XXXX.cpio.gz解压出XXXX.cpio文件而后再 # cpio -idvm < XXXX.cpio
解压缩完成后,设置oracle账户能够操做安装文件所在的目录
chown -R oracle:oinstall 安装文件所在目录
2. 用oracle账户进入安装文件所在目录,执行以下命令便可看到安装界面:
$ ./runInstaller
若是没法看到安装界面,请使用root账户执行以下命令后再运行安装程序:
# export DISPLAY=:0.0
# xhost +
$ ./runInstaller
出现安装界面后,根据界面提示进行相关的设置,个人建议是在安装过程当中不建立数据库,只安装程序,监听和建立数据库等安装完成后再进行相关的操做。
安装过程当中,须要使用root权限执行两个脚本。
3. 安装完成后,将/etc/redhat-release文件中的内容修改回Red Hat Enterprise Linux Server release 5 (Tikanga)
4.建立监听以及建立数据库
(1) 建立监听程序
使用Oracle提供的NET CONFIGURATION ASSISTANT建立TNS监听
$ netca
基本上就是一直Next就能够了,固然你也能够在这期间修改TNS的监听端口号
TNS监听建立完成后可使用以下命令进行检查:
# netstat -atln    检查监听端口是否打开
$ lsnrctl status    检查TNS监听状态
确认监听已经成功启动后,便可执行Database Configure Assistant进行数据库的建立,执行命令以下:
$ dbca
在建立数据库的过程当中,建议将数据库的字符集设置为Unicode UTF-8,防止出现乱码。
4、数据库的启动脚本(转载自[url]http://82584.blog.51cto.com/72584/110131[/url]
# vi /etc/rc.d/init.d/oracle
================================ Script File Start ================================
#!/bin/bash
#
# chkconfig: 35 95 1
# description: init script to start/stop oracle database 10g, TNS listener, EMS
# match these values to your environment:
export ORACLE_BASE=/DBSoftware/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=/u01/app/oracle/bin:$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export ORACLE_USER=oracle
# see how we are called:
case $1 in
    start)
        su - "$ORACLE_USER"<<EOO
        lsnrctl start
        sqlplus /nolog<<EOS
        connect / as sysdba
        startup
    EOS
    emctl start dbconsole
    EOO
    touch /var/lock/subsys/$scriptname
    ;;
    stop)
        su - "$ORACLE_USER"<<EOO
        lsnrctl stop
        sqlplus /nolog<<EOS
        connect / as sysdba
        shutdown immediate
    EOS
    emctl stop dbconsole
    EOO
    rm -f /var/lock/subsys/scriptname
    ;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
================================ Script File End ================================
受权 :chown root.root /etc/rc.d/init.d/oracle
修改文件属性:chmod 755 /etc/rc.d/init.d/oracle
之后启动/关闭Oracle可使用以下命令操做:
# service oracle start     //  启动监听、数据库以及em
# service oracle stop      //  关闭监听、数据库以及em
固然你也能够把Oracle做为系统服务,随系统启动等等。
本文出自 “ 玄武·巴依” 博客,请务必保留此出处 http://commandos.blog.51cto.com/154976/115268