CentOS5.5虚拟机安装Oracle11gR2的全过程
本文主要参考这篇文章,地址是http://ivan.kartik.sk/oracle/install_ora11gR2_elinux.html,来安装Oracle11gR2,完成文章中的Pre-InstallationTasks和Download& Install这两大步骤。结合自己的实践,指出安装时遇到一些问题,供参考。
(1)准备工作
相关软件:CentOS5.5、Oracle11gR2(Linux版本)、VMware Workstation 7(我使用的是虚拟机作为学习环境)、Xmanager 4(可选使用)
(2)Pre-InstallationTasks
由于是参考别人的文章,所以具体步骤的作用参考原文章比较好,这里列出基本步骤。
1. 创建oracle用户su - # groupadd dba # groupadd oinstall # groupadd asmdba # groupadd asmadmin # useradd -g oinstall -G dba,asmdba,asmadmin oracle
2. 设置系统参数
2A. 编辑/etc/sysctl.conf文件,修改和增加的内容如下:kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6815744 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
注意:要使用以上修改生效,重启系统或者执行sysctl –p命令。
2B. 编辑/etc/pam.d/login文件,增加下面内容:session required pam_limits.so2C. 编辑/etc/security/limits.conf文件,增加下面内容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 655363. 创建oracle用户的安装目录
# mkdir /opt/oracle # chown -R oracle:dba /opt/oracle
4. 设置oracle的环境变量
4A. 编辑/home/oracle/.bash_profile文件,修改和增加的内容如下:ORACLE_BASE=/opt/oracle ORACLE_HOME=$ORACLE_BASE/112 ORACLE_SID=ORCL LD_LIBRARY_PATH=$ORACLE_HOME/lib PATH=$PATH:$ORACLE_HOME/bin export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH运行下面命令,使以上修改生效
cd /home/oracle . .bash_profile
4B. 检测SELinux是否关闭
检查当前SELinux的状态/usr/sbin/getenforce如果输出是“Enforcing”,那么用以下命令将其改成“Permissive”。
/usr/sbin/setenforce 0为了防止Enforcing模式在重启后又自动恢复,直接可以修改/etc/sysconfig/selinux文件,将SELINUX的值改成“permissive”或者“disabled”。
SELINUX=permissive
我在做这一步时,使用setup命令,进行图形界面,将SELinux和防火墙都禁用了。效果是一样的。
4C. 如果使用的是CentOS 5而不是RHEL 5,那么要进行下面的修改。# cp /etc/redhat-release /etc/redhat-release.old # echo "Red Hat Enterprise Linux Server release 5 (Tikanga)" > /etc/redhat-release # cp /etc/issue /etc/issue.old # echo "Red Hat Enterprise Linux Server release 5 (Tikanga)" > /etc/issue # echo "Kernel \r on an \m" >> /etc/issue # echo "" >> /etc/issue # echo "redhat-release-5Server-5" > /tmp/.linux_release
(3)Download & Installation
1. 下载和安装所需要的.rpm包
使用下面的命令,可以查看需要哪些RPM包。rpm -q binutils compat-db compat-libstdc++-33 glibc glibc-devel glibc-headers gcc gcc-c++ libstdc++ gdbm make ksh elfutils-libelf sysstat libaio libaio-devel setarch unixODBC libXp libXtst xorg-x11-utils --qf '%{name}.%{arch}\n'|sort对于32位(i386)Linux系统,输出结果,应该如下:
binutils.i386 compat-db.i386 compat-libstdc++-33.i386 elfutils-libelf.i386 gcc-c++.i386 gcc.i386 gdbm.i386 glibc-devel.i386 glibc-headers.i386 glibc.i386 glibc.i686 ksh.i386 libaio-devel.i386 libaio.i386 libstdc++.i386 libXp.i386 libXtst.i386 make.i386 setarch.i386 sysstat.i386 unixODBC.i386 xorg-x11-utils.i386
对于64位的Linux系统的输出结构,参考原文章吧,这里我不列出了。
做到这一步,出现了一些提示说有些RMP包没有找到,这时我们需要在CentOS5.5的光盘(DVD版本)中去找,位置在光盘中的CentOS目录,可以看到一大堆的.rpm包。将缺少的包收集起来,注意别弄错了,有些包名很相近,然后将这些包,直接拖到虚拟机里,或者使用Xmanager的Xftp工具上传到虚拟机里。
注意:上面的清单会有glibc.i386和glibc.i686。系统默认已有glibc.i686,我尝试安装glibc.i386,结果和glibc.i686出现一大堆冲突,这里就不严格按照指南安装glibc.i386。
安装上面清单上的RPM包,可能会报找不到kernel-headers和libgomp包,同样在CentOS5.5光盘中找到这2个包,和所有要安装的放在一起。然后再一次性安装。
2. 下载Oracle 11gR2的安装包
我下载的是linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将它们解压出来,只有一个database目录。这时,要切换到oracle用户的身份,来运行runInstaller安装,如下:
su oracle cd database ./runInstaller
至此,Pre-InstallationTasks和Download& Install这两大步骤已经完成,原文章中的还有Post-InstallationTasks和CommonInstallation Errors可供参考。
(4)进入Oracle安装向导
Oracle的安装需要图形化界面,这里我使用Xmanager – Passive,它能自动检测到虚拟机的图形界面,因此下面的安装界面就像是在Windows一样,功能很强大哈! 注意,到了这个界面,Oracle Base要和之前配置的ORACLE_BASE环境变量一致,而且Software Location要和ORACLE_HOME一致。我第一次安装Oracle,这里直接默认了,结果在对Oracle进行配置时,Oracle提示环境变量不一致,我才回头发现Oracle的安装位置和环境变量的配置不一样。这里我安装默认的位置后,修改了oracle用户的.bash_profile文件,如下:
ORACLE_BASE=/home/oracle/app/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 ORACLE_SID=ORCL LD_LIBRARY_PATH=$ORACLE_HOME/lib PATH=$PATH:$ORACLE_HOME/bin export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH继续根据自己的选择进行设置,然后一路next下去,到了下面这个界面,可能Oracle报告有些RPM包依然需要(汗~Oracle安装真烦人)。
还是老办法,去CentOS5.5光盘中找到这3个包,实际上这3个包又要依赖一些包,晕~。最好自己先安装这3个包,根据报错来收集依赖包,最后再一起安装,直至安装成功。因为安装CentOS时,每个人的系统安装可能软件配置不一样。最后,点击“Check Again”,让Oracle再检查一遍,出现下面的界面。
这时,Oracle需要的所有RPM包都不再缺了,但是Oracle依然抱怨物理内存和交换分区太小(下面有详细信息提示),这里我点击“Ignore All”,因为我安装在虚拟机里供学习使用。经过一段时间的安装,安装界面会停止在下面的界面。
如果始终不出现下面的界面,就以root身份登录系统,执行下面2个脚本。
[root@localhost database]# cd /home/oracle/app/oraInventory/ [root@localhost oraInventory]# ./orainstRoot.sh Changing permissions of /home/oracle/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /home/oracle/app/oraInventory to oinstall. The execution of the script is complete. [root@localhost oraInventory]# cd /home/oracle/app/oracle/product/11.2.0/dbhome_1/ [root@localhost dbhome_1]# ./root.sh Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /home/oracle/app/oracle/product/11.2.0/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Finished product-specific root actions.可能执行第一个脚本时,就会出现对话框,如下。完成后点击“OK”。
最后,看到Oracle终于安装成功了!
(5)对Oracle进行配置和创建数据库,并测试数据库是否安装正常。
刚才的安装才把Oracle安装上,但是还没有创建Oracle数据库,下面就分别使用netca命令和dbca命令,进行配置和创建数据库,同样是图形界面。
1. 使用netca命令 使用netca命令的配置,基本上一路next,我这里只配置Listener configuration,其他的不配置(因为是菜鸟哈~)。完成后出现下面的界面。
和开始的界面几乎一样,就多了一个“Finish”按钮,点击它退出配置向导。
2. 使用dbca命令
使用dbca命令,同样会启动一个配置向导,next到下面这个界面时,填写ORACLE_SID的值(这个环境变量,之前配置过。忘记了?快到/home/oracle/.bash_profile文件里看看)一般domain没有配置过的话,就是空的。所以,这里的2个值都是一样的。
下面请填写下密码。 在下面的界面中,选择“Use Unicode (AL32UTF8)”,增加对中文的支持。
最后,会出现一个所有配置的总结,如下。
点击“OK”,就开始创建数据库了,这个过程有点长哈,耐心点~
最后,弹出一个提示框,大功告成!
3. 测试Oracle数据库,是否可正常使用。[oracle@localhost ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 20 13:53:15 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL> show user USER is "" SQL> conn /as sysdba Connected to an idle instance. SQL> show user USER is "SYS" SQL> startup ORACLE instance started. Total System Global Area 422670336 bytes Fixed Size 1336960 bytes Variable Size 281020800 bytes Database Buffers 134217728 bytes Redo Buffers 6094848 bytes Database mounted. Database opened. SQL> create table t(id int, name char(10)); Table created. SQL> insert into t values(0, 'bbk'); 1 row created. SQL> commit; Commit complete. SQL> select * from t; ID NAME ---------- ---------- 0 bbk SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> quit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost ~]$至此,Oracle数据库从安装到测试都全部完成,Oracle的学习环境已经搭建好。Congratulations!
参考资料:
1. http://ivan.kartik.sk/oracle/install_ora11gR2_elinux.html
2. 网上视频: http://www.boobooke.com/v/bbk1111
http://www.boobooke.com/v/bbk1668
http://www.boobooke.com/v/bbk1669