在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了