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.so
2C. 编辑/etc/security/limits.conf文件,增加下面内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
3. 创建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