CentOS56下自动安装oracle11G R2.docx
《CentOS56下自动安装oracle11G R2.docx》由会员分享,可在线阅读,更多相关《CentOS56下自动安装oracle11G R2.docx(19页珍藏版)》请在冰豆网上搜索。
CentOS56下自动安装oracle11GR2
CentOS5.6下自动安装oracle11GR2
我这里装的是32位版的oracle11gR2,以下所讲的没有特殊说明的话,都是说的11gR232位
先说一下oracle11gR2对linux系统的最低要求:
可用的物理内存最低是1G,查看可用物理内存最好是通过free-m这个命令来查看,因为如果你的显卡是集成的显卡,即使你机器上装的1G的内存条,那你的可用的物理内存就不够1G,也就是不能装。
另外,oracle11gR2还要求/tmp下的空间大于1G,安装EnterpriseEdition的软件部分需要3.95G的磁盘空间,数据文件需要1.7G,安装StandardEdition的软件部分需要3.88G的空间,
数据文件需要1.5G。
还有一个就是对swap大小的要求,oracle官方文档的要求是:
如果可用的物理内存在1G
2G之间,则swap最少应该是可用物理内存大小的1.5倍(不过我的脚本里面定义成了2倍)
如果可用的物理内存在2G
16G之间,则swap最少应该是可用物理内存大小的1
如果可用的物理内存大于16G,swap最小是16G。
关于如何制作swap文件和swap分区,可以去看我先前的文章。
先说一下oracle11gR2的下载地址,分为两个zip的压缩包:
下载完之后,直接解压,解压之后,会得到一个叫做database的文件夹,这个里面就是oracle的安装文件。
下一步就是安装oracle之前必须要的包。
oracle官方文档要求RHEL5的环境必须装的包:
binutils-2.17.50.0.6compat-libstdc++-33-3.2.3 elfutils-libelf-0.125
elfutils-libelf-devel-0.125elfutils-libelf-devel-static-0.125
gcc-4.1.2gcc-c++-4.1.2glibc-2.5-24 glibc-common-2.5
glibc-devel-2.5glibc-headers-2.5 kernel-headers-2.6.18
ksh-20060214libaio-0.3.106libaio-devel-0.3.106
libgcc-4.1.2libgomp-4.1.2libstdc++-4.1.2 libstdc++-devel-4.1.2
make-3.81numactl-devel-0.9.8.i386sysstat-7.0.2 unixODBC-2.2.11
unixODBC-devel-2.2.11不过在centos下面还需要装一个pdksh的包,如果是RedHatEnterpriseLinux5上,可以不装这个包。
下面就是去调内核的参数,因为内核参数中,默认是对某些参数进行限制的,比如,限制系统内共享内存段的数量等。
内核参数的存放位置为/etc/sysctl.conf。
通常情况下,我们需要调的内核参数是:
fs.aio-max-nr=1048576
fs.file-max=6815744
net.ipv4.ip_local_port_range=900065500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
net.core.wmem_default=262144
kernel.sem=25032000100128
我们直接把这几行追加到/etc/sysctl.conf文件中即可,然后我们使用sysctl–p这个命令使内核参数生效。
现在我们要创建oracle这个用户和相关的组。
创建Oracle用户组
groupaddoinstall
groupadddba
创建Oracle用户
useradd-m-goinstall-Gdbaoracle
然后使用passwd设置oracle这个用户的密码。
现在创建oracle的安装目录,并且改一下权限
mkdir-p/oracle/xiaosu
然后把oracle安装文件复制到/oracle这个目录
mvdatabase/oracle/database
chown-Roracle.oinstall/oracle
下面要修改一下oracle这个用户的环境变量
vim/home/oracle/.bash_profile
在其中添加如下内容:
#.bash_profile
#Getthealiasesandfunctions
if[-f~/.bashrc];then
.~/.bashrc
fi
#Userspecificenvironmentandstartupprograms
ORACLE_SID=xiaosu
ORACLE_BASE=/oracle/xiaosu
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
exportORACLE_SIDORACLE_BASEORACLE_HOME
PATH=$PATH:
/$ORACLE_HOME/bin:
$HOME/bin
exportPATH
修改一下用户资源的限制文件,在/etc/security/limits.conf中添加如下内容:
oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
oraclesoftstack10240
设置一下登录限制。
添加以下内容到/etc/pam.d/login
sessionrequired/lib/security/pam_limits.so
sessionrequiredpam_limits.so
在全局的环境变量中进行设置,添加以下内容到/etc/profile
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
下面还有两个比较重要的命令,就是让oracle这个用户能够将图形程序显示到桌面上:
exportDISPLAY=:
0.0
xhost+
现在,切换到oracle这个用户,进入到/oracle/database目录下,执行./runInstaller这个命令,就可以开启图形化的安装程序了。
大家可以看到,准备oracle的安装环境比较复杂,所以我写了一个脚本,可以用这一个脚本完成所有的环境变量的配置,并且这个Shell脚本能够根据内存的大小,自动配置swap,稍作修改,就可以拿到生产环境中进行应用。
脚本内容如下:
#!
/bin/bash
functionmkswapfile
{
ddif=/dev/zeroof=/swapfilebs=1Mcount=$tmpmem
mkswap/swapfile
echo"/swapfile swap swap defaults 00">>/etc/fstab
swapon-a
}
phymem=`free-m|grepMem|awk '{printf$2}'`
swapmem=`free-m|grepSwap|awk '{printf$2}'`
if[$phymem-lt1024];then
{
echo"yourRAMistoosmall,youcan'tinstalloracle11gR2onthismachine"
exit1
}
else
if[$phymem-lt2048];then
{
#推荐是物理内存的1.5倍,这里我们做成两倍
tmpmem=`expr$phymem\*2-$swapmem`
mkswapfile
}
else
if[$phymem-lt16384];then
{
tmpmem=`expr$phymem-$swapmem`
mkswapfile$tmpmem
}
else
{
tmpmem=`expr16384-$swapmem`
mkswapfile$tmpmem
}
fi
fi
fi
unziplinux_11gR2_database_1of2.zip
unzip-olinux_11gR2_database_2of2.zip
mkdir-p/oracle
mvdatabase/oracle/database
yum-yinstallbinutilscompat-libstdc++-33elfutils-libelfelfutils-libelf-develgccgcc-c++glibcglibc-commonglibc-develglibc-headerslibaiolibaio-devellibgcclibstdc++libstdc++-develmakesysstatunixODBCunixODBC-develkshnumactl-develkernel-headerspdkshjre
groupaddoinstall
groupadddba
useradd-goinstall-Gdbaoracle
echoredhat|passwdoracle--stdin
mkdir-p/oracle/xiaosu
chownoracle.oinstall/oracle
cat>/home/oracle/.bash_profile< #.bash_profile
#Getthealiasesandfunctions
if[-f~/.bashrc];then
.~/.bashrc
fi
#Userspecificenvironmentandstartupprograms
ORACLE_SID=xiaosu
ORACLE_BASE=/oracle/xiaosu
ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db_1
exportORACLE_SIDORACLE_BASEORACLE_HOME
PATH=\$PATH:
/\$ORACLE_HOME/bin:
\$HOME/bin
exportPATH
EOF
cat>>/etc/security/limits.conf<oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
oraclesoft stack 10240
EOF
echo"sessionrequired/lib/security/pam_limits.so">>/etc/pam.d/login
cat>>/etc/profile<if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
EOF
exportDISPLAY=:
0.0
xhost+
cat>>/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
EOF
sysctl-p
chownoracle-R/oracle
cd/oracle/database
suoracle
执行完上面这个脚本之后,你就可以直接用./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后再解压