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(需要自己创建)

CentOSOracle11g安装完毕以后,如果重新启动Linux Oracle是不会自动启动的,我们可以通过手动调用dbstart命令来进行启动。我们可以通过配置Oracle的自动启动脚本,然后利用CentOSService来启动Oracle服务器。

文件1:

Oracle11g安装完成后,提供dbstart,dbshut两个服务控制脚本,用来控制oracle的启动与关闭.

dbstart文件受/etc/oratab控制

dbstart文件只能启动/etc/oratab文件中第三列为YSID

修改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