在CentOS Linux上安装oracle11g之一 CentOS简介
CentOS与Red Hat 的关系
CentOS(Community Enterprise Operating System)是在2003年Red Hat决定不再提供免费的技术支持及产品认证之后的部份"红帽重建者"之一。
CentOS依据Red Hat Enterprise Linux(以下简称RHEL)按照开源许可规定所放出的源代码编译而成,它是RHEL的100%兼容的重新组建,并完全符合Red Hat的再发行要求与RHEL的不同之处在于CentOS不包含封闭代码。
CentOS如何产生
CentOS社区将Redhat的网站上的所有源代码下载下来,进行重新编译。重新编译后,由于RHEL是商业产品,必须将所有Redhat的Logo和标识改成自己的CentOS标识。比如将RHEL5.2原版的SRPM源码编译后,就成为了CentOS 5.2。而且在 RHEL 的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
CentOS所针对的用户
典型的CentOS用户包括这样一些组织和个人,不需要专门的商业支持就能开展成功的业务。CentOS面向那些需要企业级操作系统稳定性的人们,而且并不涉及认证和支持方面的开销。
CentOS的优势:
1、CentOS完全免费,不存在RHEL需要序列号的问题。
2、CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RHEL那样需要花钱购买支持服务!
3、CentOS修正了许多RHEL的BUG!
4、CentOS与RHEL相同的性能和感受.
5、CentOS适用于对稳定性有严格要求的场合。
CentOS的劣势:
CentOS不提供技术相关支持.
在CentOS Linux上安装oracle11g之二 安装oracle11g
现有机器配置:
CPU:英特尔双核1.8G
内存:3G
硬盘:220G
安装前硬件准备建议:
Swap分区必须要3G以上,最好在安装CentOS5.2时就分配好3G以上的空间.
硬盘不少于10G吧
安装前软件准备建议:
CentOS5.2
Oracle11g linux版
在安装CentOS时尽量多的安装与程序开发相关的程序包,这样可以免去后面需要单个查找安装程序包的麻烦.
在安装过程中涉及的几个文件位置及用途
/etc/sysctl.conf (修改内核参数)
/etc/security/limits.conf (shell对oracle用户的限制)
/etc/profile (系统相关的环境变量)
/opt/oracle/.bash_profile (oracle用户相关的环境变量)
第一步:创建oracle安装相关用户组及用户:
安装oracle必须先创建oinstall,dba组和oracle用户,这点与windows不同,在windows上安装oracle会自动创建的这些用户组和用户的.
创建用户组和用户的命令如下(用root身份):
[root@linuxoa pafirc] groupadd oinstall
[root@linuxoa pafirc] groupadd dba
[root@linuxoa pafirc] useradd –m –d /opt/oracle –g oinstall –G dba oracle
groupadd oinstall 是创建用户组,用来做oracle的安装和维护工作
useradd 是创建用户
-m –d /opt/oracle 是把/opt/oracle目录作为oracle用户的主目录或登录默认目录
–g oinstall 是表示oracle用户的初始组为oinstall
–G dba 是表示oracle用户同时属于dba组,做数据维护,和数据库管理工作.
创建oracle用户的密码:命令如下
[root@linuxoa pafirc] passwd oracle
根据提示,输入2次密码就可以了.
为了让oinstall用户组对oracle安装目录有写权限,需要做如下修改
[root@linuxoa pafirc] chmod –R 775 /opt/oracle
第二步:修改内核参数
如果内核参数配置的不对,在”产品特定先决条件检查”中也会被检测出来,也需要修改内核参数.在/etc/sysctl.conf中做如下修改.
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=4194304
net.core.wmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_max=4194304
配置完成后,执行下面的命令,使配置立刻生效:
[oracle@linuxoa pafirc] /sbin/sysctl –p /ect/sysctl.conf
第三步: 设置Shell对于oracle用户的限制:
这一步需要修改/etc/security/limits.conf文件,添加如下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
为了使上述文件生效,需要修改/etc/pam.d/login文件,在这个文件中添加以下内容:
session required /lib/security/pam_limits.so
设置oracle用户的文件权限掩码,并添加特殊的shell限制,通过配置/etc/profile完成,在后面追加如下内容
if [$USER = "oracle"]; then
if [$SHELL = "/bin/ksh"]; then
ulimit -p 16384
ulimit -p 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
注意:
在vi中添加和图形编辑器中添加的区别,如果是在vi中添加,需要在$USER前面加上转义字符”\”,变成 if [\$USER = "oracle"]; then
第四步:设置oracle相关环境变量:
以oracle用户身份登录,修改当前用户下的.bash_profile(这是用户主目录下的一个隐藏文件)
ORACLE_BASE=/opt/oracle;export ORACLE_BASE
ORACLE_HOME=/opt/oracle/app/oracle/product/11.1.0/db_1; export ORACLE_HOME(注意:这个2行应该在一行中)
ORACLE_SID=orcl;export ORACLE_SID
PATH=$PATH:$HOME/bin;$ORACLE_HOME/bin;export PATH
第五步:安装oracle11g及相关命令:
Linux拷贝命令:
cp linux_11gR1_database_1013.zip /home/ oracle/
改变用户命令:
chown oracle linux_11gR1_database_1013.zip
把下载的oracle11g(linux_11gR1_database_1013.zip)解压到一个任意目录
解压缩zip文件命令:
unzip linux_11gR1_database_1013.zip
到解压缩后的database目录下,找到 Runinstaller文件,进行安装前检查,在终端中运行./Runinstaller,就会出现如下的画面(如果是非GUI环境,则不会出现下面画面,只有文字描述,意思是一样的):
在CentOS Linux上安装oracle11g之三 配置oracle11g服务
在这个过程中需要设计的几个文件:
文件1:$ORACLE_HOME/bin/dbstart
文件2:$ORACLE_HOME/bin/dbshut
文件3:/etc/oratab(需要自己从$ORACLE_HOME/install/目录下拷贝)
文件4:/etc/rc.d/oracle11g(需要自己创建)
CentOS中Oracle11g安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,我们可以通过手动调用dbstart命令来进行启动。我们可以通过配置Oracle的自动启动脚本,然后利用CentOS的Service来启动Oracle服务器。
文件1:
Oracle11g安装完成后,提供dbstart,dbshut两个服务控制脚本,用来控制oracle的启动与关闭.
dbstart文件受/etc/oratab控制
dbstart文件只能启动/etc/oratab文件中第三列为Y的SID
修改dbstart文件中ORACLE_HOME_LITENER,修改了dbstart文件中ORACLE_HOME_LITENER=${ORACLE_HOME}后,可以手动运行dbstart文件,来测试是否可以正确启动oracle11g
用法:./dbstart $ORACLE_HOME 就可以启动oracle11g
文件2:
不必修改
用法:./dbshut $ORACLE_HOME 就可以关闭oracle11g
文件3:
/etc/oratab文件内容
#SID;ORACLE_HOME;是否自动启动标志位
orcl; orcl:/opt/oracle/app/oracle/product/11.1.0/db_1:Y
文件4:
首先以root身份在/etc/rc.d/init.d/目录下创建Oracle11g的服务文件。
touch oracle11g
chmod a+x oracle11g
然后修改这个文件内容如下:
# !/bin/bash
# whoami
# root
# chkconfig: 345 51 49
# description: starts the oracle dabase deamons
#
#ORACLE_HOME=/opt/oracle
ORACLE_OWNER=oracle
ORACLE_DESC="Oracle 11g"
ORACLE_LOCK=/var/lock/subsys/oracle11g
case "$1" in
'start')
echo -n \"Starting ${ORACLE_DESC}:\"
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/lsnrctl start'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/dbstart'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/emctl start dbconsole'
touch ${ORACLE_LOCK}
echo
;;
'stop')
echo -n "shutting down ${ORACLE_DESC}: "
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/lsnrctl stop'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/dbshut'
rm -f ${ORACLE_LOCK}
echo
;;
'restart')
echo -n "restarting ${ORACLE_DESC}:"
$0 stop
$0 start
echo
;;
*)
echo "usage: $0 { start | stop | restart }"
exit 1
esac
exit 0
注意:
从CentOS4开始如同RHEL一样采用了runuser命令,在以前版本,一般采用su命令,由于RHEL4的安全功能,使得su在自动执行过程中需要手工干涉,不再适合自动运行.
就可以远程通过IE访问oracle11了