我这里装的是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
如果可用的物理内存大于16G,swap最小是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.4和5.5的环境下测试了该脚本脚本,均能完美安装。
脚本和rsp文件在附件中可以下载,脚本的和rsp文件的使用方法:把脚本和两个zip压缩的安装程序放到root的根目录,把rsp文件拷贝到/tmp目录,然后运行脚本,脚本运行完之后自动切换到oracle这个用户,然后直接敲入./runInstaller -silent -responseFile /tmp/db.rsp进行安装,安装结束后,根据提示来运行那两个脚本,然后就可以用Firefox进行登录了。
由于不能上传tar.gz的文件,请把文件名从.zip改为tar.gz后再解压
本文出自 “飞翔的单车” 博客,转载请与作者联系!