分类: Oracle
2011-08-14 18:13:29
Oracle 11g安装流程(v1.0)
一、 准备工作
² 安装oracle 11g的服务器必须预先安装好Xwindows和任一种桌面系统(GNOME or KDE),否则安装时会提示java错误,Xwindows和桌面可在服务器安装系统时一并安装,或在系统安装完毕后用命令yum groupinstall "GNOME Desktop Environment"安装,如果希望远程安装oracle,还需要安装vnc包,不过一般在安装Xwindow时候都会捆绑安装vnc;
² 下载oracle 11g安装包并保存在本地目录;
² 在服务器本地新建一个脚本并将以下内容复制粘贴至脚本中并执行:
#!/bin/sh
echo "check software needed for install"
for soft in binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel
do
rpm -qa|grep $soft>>/dev/null
if [ $? != 0 ]; then
echo
echo "$soft doesn't install yet,now install it"
yum install $soft -y
fi
done
#echo "#fs.file-max = 512 * PROCESSES">>/etc/sysctl.conf
#echo "fs.file-max = 4096">>/etc/sysctl.conf
#echo "kernel.shmall = 2097152">>/etc/sysctl.conf
#echo "kernel.shmmax = 2147483648">>/etc/sysctl.conf
#echo "kernel.shmmni = 4096">>/etc/sysctl.conf
#echo "kernel.sem = 250 32000 100 128">>/etc/sysctl.conf
#echo "net.ipv4.ip_local_port_range = 1024 65000">>/etc/sysctl.conf
#echo "net.core.rmem_default = 4194304">>/etc/sysctl.conf
#echo "net.core.rmem_max = 4194304">>/etc/sysctl.conf
#echo "net.core.wmem_default = 262144">>/etc/sysctl.conf
#echo "net.core.wmem_max = 262144">>/etc/sysctl.conf
#
#sysctl -p
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
chown oracle:oinstall /data -R
echo 'ORACLE_SID=ORCL '>>/home/oracle/.bash_profile
echo 'ORACLE_BASE=/data/oracle '>>/home/oracle/.bash_profile
echo 'ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1 '>>/home/oracle/.bash_profile
echo 'export ORACLE_SID ORACLE_BASE ORACLE_HOME '>>/home/oracle/.bash_profile
echo 'oracle soft nproc 2047 '>>/etc/security/limits.conf
echo 'oracle hard nproc 16384 '>>/etc/security/limits.conf
echo 'oracle soft nofile 1024 '>>/etc/security/limits.conf
echo 'oracle hard nofile 65536 '>>/etc/security/limits.conf
echo 'session optional pam_keyinit.so force revoke'>>/etc/pam.d/login
echo 'if [ \$USER = \\"Oracle\\" ]; then'>>/etc/profile
echo ' if [ \$SHELL = \\"/bin/ksh\\" ]; then'>>/etc/profile
echo ' ulimit -p 16384 '>>/etc/profile
echo ' ulimit -n 65536 '>>/etc/profile
echo ' else '>>/etc/profile
echo ' ulimit -u 16384 -n 65536 '>>/etc/profile
echo ' fi'>>/etc/profile
echo 'fi'>>/etc/profile
echo 'su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/lsnrctl start"'>>/etc/rc.local
echo 'su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/dbstart start"'>>/etc/rc.local
脚本主要操作包括:安装oracle11g需要的软件包(需要yum源工作正常)、建立oracle相关用户和组、修改oracle用户设置以及相关系统配置、建立oracle自启动条目等,脚本假定oracle安装目录为/data/oracle,如有变化,请修改脚本中对应用户配置和目录赋权限对应条目;
二、 安装详细流程
以oracle用户登录服务器本地桌面终端或通过vnc连接远端服务器桌面;
Tip:此处强烈建议采用oracle用户直接登录,而不是使用别的用户登陆后su成oracle,包括root,否则会在安装过程中出现各种未知错误;
Su oracle用户,启动vncserver;
查看oracle用户启动的vncserver端口号,通过vnc client连接对应的端口,并输入正确密码;
进入安装包所在目录,解压两个安装文件包:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压后的安装文件会存放在当前目录下一个新建的database目录中;
执行:
Cd database
./runInstaller
正常情况下,安装程序片刻后会启动图形化的安装界面;
Tip:如果出错,请检查具体抛出的错误信息,以及服务器本地时间是否正确;
第一个窗口,设定security update,由于需要 oracle support password,因此我在这里取消了update,并忽略错误提示继续;
数据库安装选项,由于是全新安装,所以选择“create and configure a database”;
数据库系统类型,选择server class;
节点选择,选择“single instance database”;
Tip:RAC(Real Application Cluster,真正应用集群)是Oracle9i以及以后版本中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术,但由于目前我们应用尚不需要集群功能,因此略过。
安装类型选择:
支持语言选择:
数据库类型选择
这里可以点击“select options”按钮,大致定制所需安装的软件包;
指定安装路径,如果之前的预安装脚本工作正常,安装程序会从oracle用户的.bash_profile配置中读到对应设定,这里可检验一下是否一致;
设定Invertory目录:
Tip:个人理解这个目录是用来存放安装过程中生成的一些临时文件用的,配置时注意oracle用户要对相应上一级根目录有可写权限(本例中是/data),否则安装会出错;
安装类型选择,正常情况下应选择第一项;
Tip:Data warehousing,数据仓库,是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。
Oracle预配置,这里主要是对内存的配置,其他设定使用默认值即可;配置的时候,可将“enable automatic memory management(内存自动管理)”取消勾选,然后输入想要设定的数据库可用内存大小,理论上oracle dababase内存可占OS系统物理内存的1/2—2/3,但由于这次的服务器内存较大(48G),因此即使划分40G给oracle使用后,仍有8G的剩余内存,一般来说足够操作系统或其他服务使用;
Tip:PGA,是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写,而SGA则是共享内存区,两者合起来即为总的database使用内存大小。
数据库控制管理配置,默认选项即可;
数据库存储选项,这里如果是安装在本地路径下的话,请选择第一项并指定目录,并确保指定目录的权限正确;
Tip:automatic storage management(ASM),自动存储管理,它是自Oracle10g这个版本Oracle推出的新功能。这是Oracle提供的一个卷管理器,用于替代操作操作系统所提供的LVM,它不仅支持单实例配置,也支持RAC这样的多实例配置。ASM允许你在一组独立的磁盘上创建一个单独的磁盘组。这样就实现了单个磁盘组的I/O均衡。同时ASM还实现了条带化(Striping)和磁盘镜像(Mirroring)以提高I/O的性能和数据可靠性。与RAID或LVM不同的是,ASM是在文件级实现的条带化和镜像,这样的实现方式给用户带了很大选择自由度,我们可以在同一个磁盘组中对不同的文件配置不同的存储属性,实现不同的存储方式。
备份恢复设定,这里暂时不启用自动备份;
数据库用户密码设定,这里可以暂时选第二项,为所有用户配置一个统一密码,将来需要时再单独修改;如果密码不够复杂,点next后会出来一个提示,可以不必理会,点yes继续;
定义oracle用户组权限,默认即可;
安装至此,程序会根据之前的配置检查系统设定和依赖包,并生成一个脚本,此时需要使用root用户执行该脚本,以便修改相关系统配置文件,否则将会出错;有时也会提示某些依赖包需要安装,可用rpm –qa|grep 软件包名称检查,如果确认已经安装对应包,则选择skin继续;
安装最后,程序又会生成新的两个脚本,一样使用root执行。
执行完毕,安装结束。
三、 收尾工作
Oracle11g安装完成后,提供dbstart,dbshut两个服务控制脚本,用来控制oracle的启动与关闭,路径类似于/data/oracle/product/11.1.0/db_1/bin/dbstart;但需要将dbstart文件中内容为“ORACLE_HOME_LITENER=$1”
修改成
“ORACLE_HOME_LITENER=${ORACLE_HOME}”,
同时也要修改/etc/oratab文件,将其中类似如下一行:
ORCL:/data/oracle/product/11.1.0/db_1:N
改为
ORCL:/data/oracle/product/11.1.0/db_1:Y,
这样dbstart脚本才能正常工作,启动命令为:
su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/lsnrctl start"
su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/dbstart start"
(以上命令已经由之前的脚本写入rc.local中)
其中,su –l参数表示,切换至对应用户时,同时读入用户的.bash_profile等相应配置信息,否则脚本启动时可能会出现错误。
附:
如果启动的时候,提示某个.so文件有cannot restore segment prot after reloc: Permission denied 错误提示的话,可以这么解决:
编辑/etc/selinux/config,找到这段:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:
SELINUX=disabled
保存,关闭。
......
编辑/etc/sysconfig/selinux,找到:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:
SELINUX=disabled
保存,退出。
如果你碰到其他类似提示:
cannot restore segment prot after reloc: Permission denied
哪应该是SELinux的问题,可以考虑把它关闭。
在你保证SElinux 被disable后.还执行下
chcon -t texrel_shlib_t
如: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视具体执行文件.)