CentOS5.6下自动安装oracle11G R2

 我这里装的是32位版的oracle 11g R2,以下所讲的没有特殊说明的话,都是说的11gR2 32

 

                先说一下oracle 11gR2 linux系统的最低要求:可用的物理内存最低是1G,查看可用物理内存     最好是通过free -m这个命令来查看,因为如果你的显卡是集成的显卡,即使你机器上装的1G     内存条,那你的可用的物理内存就不够1G,也就是不能装。

                另外,oracle 11gR2还要求/tmp下的空间大于1G  ,安装Enterprise Edition的软件部分需要    3.95G的磁盘空间,数据文件需要1.7G,安装Standard Edition的软件部分需要3.88G的空间,

                数据文件需要1.5G

                还有一个就是对swap大小的要求,oracle官方文档的要求是:

                如果可用的物理内存在1G

2G之间,则swap最少应该是可用物理内存大小的1.5倍(不过我的  脚本里面定义成了2倍)

                如果可用的物理内存在2G

16G之间,则swap最少应该是可用物理内存大小的1

 

                如果可用的物理内存大于16Gswap最小是16G

                关于如何制作swap文件和swap分区,可以去看我先前的文章。

 

先说一下oracle 11gR2的下载地址,分为两个zip的压缩包:

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.zip

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip

下载完之后,直接解压,解压之后,会得到一个叫做database的文件夹,这个里面就是oracle的安装文件。

 

                下一步就是安装oracle之前必须要的包。

                oracle官方文档要求RHEL5的环境必须装的包:

binutils-2.17.50.0.6   compat-libstdc++-33-3.2.3    elfutils-libelf-0.125

elfutils-libelf-devel-0.125     elfutils-libelf-devel-static-0.125

gcc-4.1.2   gcc-c++-4.1.2   glibc-2.5-24    glibc-common-2.5

glibc-devel-2.5     glibc-headers-2.5   kernel-headers-2.6.18

ksh-20060214     libaio-0.3.106    libaio-devel-0.3.106

libgcc-4.1.2  libgomp-4.1.2 libstdc++-4.1.2    libstdc++-devel-4.1.2

make-3.81   numactl-devel-0.9.8.i386   sysstat-7.0.2   unixODBC-2.2.11

unixODBC-devel-2.2.11           不过在centos下面还需要装一个pdksh的包,如果是RedHat Enterprise Linux 5 上,可以不装这个包。

 

                下面就是去调内核的参数,因为内核参数中,默认是对某些参数进行限制的,比如,限制系统内共享内存段的数量等。

                内核参数的存放位置为/etc/sysctl.conf。通常情况下,我们需要调的内核参数是:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000    65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_max = 1048576

net.core.wmem_default = 262144

kernel.sem = 250        32000   100      128

我们直接把这几行追加到/etc/sysctl.conf文件中即可,然后我们使用sysctl –p这个命令使内核参数生效。

 

现在我们要创建oracle这个用户和相关的组。

创建Oracle用户组

groupadd oinstall

groupadd dba

创建Oracle用户

useradd -m -g oinstall -G dba oracle

然后使用passwd设置oracle这个用户的密码。

 

 

现在创建oracle的安装目录,并且改一下权限

mkdir -p /oracle/xiaosu

然后把oracle安装文件复制到/oracle这个目录

mv database /oracle/database

chown -R oracle.oinstall /oracle

 

下面要修改一下oracle这个用户的环境变量

vim /home/oracle/.bash_profile

在其中添加如下内容:

  # .bash_profile

  # Get the aliases and functions

  if [ -f ~/.bashrc ]; then

          . ~/.bashrc

fi

# User specific environment and startup programs

ORACLE_SID=xiaosu

ORACLE_BASE=/oracle/xiaosu

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID ORACLE_BASE ORACLE_HOME

PATH=$PATH:/$ORACLE_HOME/bin:$HOME/bin

export PATH

 

修改一下用户资源的限制文件,在/etc/security/limits.conf中添加如下内容:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft        stack  10240

 

设置一下登录限制。添加以下内容到/etc/pam.d/login

session required /lib/security/pam_limits.so

session required pam_limits.so

 

 

在全局的环境变量中进行设置,添加以下内容到/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

 

下面还有两个比较重要的命令,就是让oracle这个用户能够将图形程序显示到桌面上:

export DISPLAY=:0.0

xhost +

 

 

现在,切换到oracle这个用户,进入到/oracle/database目录下,执行./runInstaller这个命令,就可以开启图形化的安装程序了。

 

大家可以看到,准备oracle的安装环境比较复杂,所以我写了一个脚本,可以用这一个脚本完成所有的环境变量的配置,并且这个Shell脚本能够根据内存的大小,自动配置swap,稍作修改,就可以拿到生产环境中进行应用。

 

脚本内容如下:

 

#!/bin/bash

function mkswapfile

{

dd if=/dev/zero of=/swapfile bs=1M count=$tmpmem

mkswap /swapfile

echo "/swapfile         swap    swap    defaults        0 0">> /etc/fstab

swapon -a

}  

phymem=`free -m | grep Mem | awk  '{printf $2 }'`

swapmem=` free -m | grep Swap | awk  '{printf $2 }'`

if [ $phymem -lt 1024 ];then

       {

       echo "your RAM is too small , you can't install oracle 11gR2 on this machine"

       exit 1

       }

       else

                if [ $phymem -lt 2048 ];then

                   {

#推荐是物理内存的1.5倍,这里我们做成两倍

                            tmpmem=`expr $phymem \* 2 - $swapmem`

                            mkswapfile

                   }

                   else

                            if [ $phymem -lt 16384 ];then

                                     {

                                               tmpmem=`expr $phymem - $swapmem`

                                               mkswapfile $tmpmem

                                     }

                            else

                                     {

                                               tmpmem=`expr 16384 - $swapmem`

                                               mkswapfile $tmpmem

                                     }

                            fi

                   fi

fi

unzip linux_11gR2_database_1of2.zip

unzip -o linux_11gR2_database_2of2.zip

mkdir -p /oracle

mv database /oracle/database

yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel ksh numactl-devel kernel-headers pdksh jre

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

echo redhat | passwd oracle --stdin

mkdir -p /oracle/xiaosu

chown oracle.oinstall /oracle

cat > /home/oracle/.bash_profile <<EOF

  # .bash_profile

  # Get the aliases and functions

  if [ -f ~/.bashrc ]; then

          . ~/.bashrc

fi

# User specific environment and startup programs

ORACLE_SID=xiaosu

ORACLE_BASE=/oracle/xiaosu

ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID ORACLE_BASE ORACLE_HOME

PATH=\$PATH:/\$ORACLE_HOME/bin:\$HOME/bin

export PATH

EOF

cat >> /etc/security/limits.conf <<EOF

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft        stack  10240

EOF

echo "session required /lib/security/pam_limits.so ">> /etc/pam.d/login

 

cat >> /etc/profile <<EOF

if [ $USER = "oracle" ]; then

         if [ $SHELL = "/bin/ksh" ]; then

                 ulimit -p 16384

                 ulimit -n 65536

         else

                 ulimit -u 16384 -n 65536

         fi

fi

EOF

export DISPLAY=:0.0

xhost +

cat >>/etc/sysctl.conf <<EOF

fs.aio-max-nr = 1048576

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000    65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_max = 1048576

net.core.wmem_default = 262144

kernel.sem = 250        32000   100      128

EOF

sysctl -p

chown oracle -R /oracle

cd /oracle/database

su oracle

 

 

执行完上面这个脚本之后,你就可以直接用./runInstaller运行图形化安装程序了,效果如下图:

 

 

这里前面的勾要去掉,然后点下一步。

 

 

 

这里我们选服务器类,

 

这里选高级安装

这里选择安装目录和软件的安装位置。

 

 

 

这里输入你的主机名。

 

 

 

 

到这一步是,我们千万别点击完成,因为我们想要实现rsp自动应答安装,所以我们先点击保存响应文件,然后再点击取消。这样,我们就获得了一个.rsp的文件。

 

 

我们现在把刚才生成的文件拷贝到/tmp目录下,然后尝试进行rsp安装。

 

我们使用这个命令,./runInstaller –silent –responseFile /tmp/db.rsp

 

这里加入的silent,安装程序就不会每次都问你确认参数,否则就达不到自动问答的目的了

 

运行效果如下图:

 

这里提示我们密码是空的,我们通过查看db.rsp这个文件发现,我们的很多密码都是空的,我现在在oracle.install.db.config.starterdb.password.ALL=后面加入redhat123Red

就把所有的用户的密码都设置为了redhat123Red。当然,在生产环境下,你不要这样做,你要给不同的人设置不同的密码。

 

 

修改完之后,我们再次运行进行安装一下,安装过程比较慢,请耐心等待,当你安装完成之后,会有提示,截图如下:

 

提示让我们以root的身份去运行两个脚本,运行效果如下:

 

运行完之后,我们用Firefox去访问oracle的管理界面:

 

 

因为链接使用了SSL加密,我们就点击添加一个例外,

 

先点击获取证书,然后点击永久保存此例外,然后再点击确认安全例外。

然后就进入了oracle的登录界面:

 

 

我们输入SYS,然后输入密码,选择SYSDBA的身份进行登录,可以看到下图这个界面,说明我们安装成功了。

 

下面,我们换一台机器,然后使用哪个脚本和刚才生成的rsp文件进行oracle的部署。截图如下:

 

 

注:

本人在CentOS5.6 RedHat5.45.5的环境下测试了该脚本脚本,均能完美安装。

脚本和rsp文件在附件中可以下载,脚本的和rsp文件的使用方法:把脚本和两个zip压缩的安装程序放到root的根目录,把rsp文件拷贝到/tmp目录,然后运行脚本,脚本运行完之后自动切换到oracle这个用户,然后直接敲入./runInstaller -silent -responseFile /tmp/db.rsp进行安装,安装结束后,根据提示来运行那两个脚本,然后就可以用Firefox进行登录了。

 由于不能上传tar.gz的文件,请把文件名从.zip改为tar.gz后再解压

 

 

 

 

本文出自 “飞翔的单车” 博客,转载请与作者联系!

你可能感兴趣的:(oracle,response,脚本,自动安装,rsp)