由于cent-OS在收费方式上的特性,使得cent-OS系统更能被中小企业接受,而cent-OS在各个方面的性能都和red-hat比较类似,这就使得cent-OS作为很好的linux平台而被广泛使用。由于工作需要,在linux下平台上安装linux是必须掌握的。这里,我就将我个人的操作整理下来。对于一般的环境而言,是没有问题的。具体的情况请参考oracle的官方文档。我的一个建议:在给客户搭建oracle环境前,请询问客户linux的操作平台,然后在自己的虚拟机上实验,等实验通过了再上真实环境安装。

由于大部分的数据机房都在标准的数据中心,那么就需要远程搭建oracle环境。这里,我就用一个台式电脑模拟真实的环境。在个人的笔记本上运行终端程序。终端程序建议使用SercureCRT。由于我的上篇文章已经对yum的搭建进行了介绍,这里就不再介绍yum的搭建。Yum是个很灵活的操作,灵活使用和排错是linux工程师的必须本领。
前提,硬件的要求:
      在oracle官方的文档中,要求至少1GB RAM. SWAP分区和RAM的关系要求如下:
         RAM                                                                                     SWAP
     高于512MB                                          -------               2倍的RAM
     在1024MB和2048MB之间          -------               1.5倍的RAM
     在2049MB和8192MB之间         -------                和RAM相等
     大于8192MB                                        ------                0.75 倍的RAM
     通过/proc/meminfo来查看相应的主机的内存配置,通过free命令也可以相应的查看到。
     [root@localhost CentOS]# grep MemTotal /proc/meminfo
MemTotal:        515308 kB                    
[root@localhost CentOS]# grep SwapTotal /proc/meminfo
SwapTotal:      1020116 kB
 
一,oracle安装的准备操作。
1,上传oracle安装包。
[root@localhost ~]# rz
在secureCRT中,rz命令非常好用,可以任意的向主机以asc2码的形式传输各种各样的文件。
 
[root@localhost ~]# rz
rz waiting to receive.
正在开始 zmodem 传输。 按 Ctrl+C 取消。
正在传输 oracle-10201_database_linux32.zip...
 100% 653060 KB 7421 KB/s 00:01:28        0 错误
 
奫root@localhost ~]#
[root@localhost ~]# ll
total 653748
-rw------- 1 root root        860 Jan 26 04:41 anaconda-ks.cfg
-rw-r--r-- 1 root root      14498 Jan 26 04:41 install.log
-rw-r--r-- 1 root root       2886 Jan 26 04:41 install.log.syslog
-rw-r--r-- 1 root root 668734007 Dec 27 23:28 oracle-10201_database_linux32.zip
[root@localhost ~]#
 
这里,我们看到在root的用户的根目录下出现了安装文件。
 
2,建立好相应的安装用户,组,目录。
根据linux的官方安装文档,安装linux需要相应的组,相应的用户,相应的权限。这里我们分别建立。
[root@localhost ~]# groupadd oinstall                                                           **建立oracle安装组
[root@localhost ~]# groupadd dba                                                                  **建立DBA用户组
[root@localhost ~]# useradd oracle -g oinstall -G dba                            **添加oracle用户主组为dba 副组为oinstall
[root@localhost ~]# passwd oracle                                                                **为oracle用户设定密码,默认设置为oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# mkdir -p /u01/app/oracle                                                       **建立oracle的目录
[root@localhost ~]# cp /etc/skel/.bash_profile /u01/app/oracle                    **拷贝环境变量文件
[root@localhost ~]# cp /etc/skel/.bash_logout /u01/app/oracle                    **拷贝环境变量文件
[root@localhost ~]# mkdir -p /u01/app/oracle/product/10g/db_1                **建立oracle的家目录,以后数据文件等都存放在这里
 
 [root@localhost u01]# ls -ld /u01                                                                    **查看下oracle主目录的用户,组,和权限
d-wx--x--x 3 root root 4096 Jan 26 05:29 /u01
[root@localhost u01]# chown -R oracle:oinstall /u01                              **将oracle的主目录的用户改为oracle组改为oinstall
[root@localhost u01]# ls -ld /u01
d-wx--x--x 3 oracle oinstall 4096 Jan 26 05:29 /u01                                   **目录的用户和组已经改好,但是权限不够。
[root@localhost u01]#
[root@localhost u01]# chmod -R 755 /u01                                                   **分配oracle作为DBA和安装者具有所有的权限,其他的没有写的权限。
[root@localhost u01]# ls -ld /u01
drwxr-xr-x 3 oracle oinstall 4096 Jan 26 05:29 /u01
 
3,设置oracle用户使用数据库的环境变量。
[oracle@localhost ~]$ su - oracle
Password:
[oracle@localhost ~]$ vi .bash_profile                                                       **在每个用户的家目录下都隐藏一个环境变量文件。在切入用户后最先执行
将这个文件改成这样:(切记改文件前先备份为.bak文件,这是个好习惯)
 
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then                                                                                       **这里的脚本函数表示只要有这个文件,就先执行这个脚本文件的内容
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/bin                                                                               **原本的环境变量是由用户的SID决定的。
 
export PATH
 
path=$PATH:$HOME/bin                                                                            
export ORACLE_BASE=/u01/app/oracle                                                      **定义出oracle的主目录
export ORACLE_HOME=$ORACLE_BASE/product/10g/db_1              **定义出oracle的家目录是在主目录下的product/10g/db_1
export ORACLE_SID=orcl                                                                                    **定义出oracle的实例名,即登录时使用哪个实例
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin                                      **定义出oracle的一些可执行命令的位置
 
export TNS_ADMIN=$ORACLE_HOME/network/admin                        **定义出oracle的TNS监听
export TLS_LANG=AMERICAN_AMERICA.ZHS16GBK ZHS16GBK        **定义出oracle的字符集设置,这里用了英语字符集和简体中文
 
改过后保存,使用[oracle@localhost ~]$ source ~/.bash_profile 重置环境变量。[oracle@localhost ~]$ env |grep ora 查看设置是否生效。
 
二,依赖组件的安装。
 
前期工作完成后,就要进行相关依赖包的安装。这个步骤很关键。所需要的依赖包必须都装上。首先要查看内核版本,oracle官方对linux的版本对应的安装包有明确的要求,目前常用的版本均按着下面的包安装即可。使用rpm –qa |grep “组件名”一个一个查看,如果没有,就使用yum安装。一定要搭建yum,否则会崩溃的。
1,binutils-2.17.50.0.6            
       2,    compat-libstdc++-33-3.2.3      
3.    elfutils-libelf-0.125          
4.    elfutils-libelf-devel-0.125    
5.    elfutils-libelf-devel-static-0.125
6.    gcc-4.1.2             
7. gcc-c++-4.1.2               
8.    glibc-2.5-24              
9.    glibc-common-2.5          
10. glibc-devel-2.5              
11. glibc-headers-2.5           
12. kernel-headers-2.6.18           
13. ksh-20060214                
14. libaio-0.3.106              
15. libaio-devel-0.3.106             --  
16. libgcc-4.1.2                
17. libgomp-4.1.2                
18. libstdc++-4.1.2              
19. ibstdc++-devel-4.1.2          
20. make-3.81              
21. numactl-devel-0.9.8.i386       
22. sysstat-7.0.2              
23. unixODBC-2.2.11            
24. unixODBC-devel-2.2.11 
三:修改系统内核,修改系统参数。
1,同样,修改文件先备份。
[root@localhost /]# cp /etc/profile /etc/profile.bak
[root@localhost /]# vi /etc/profile
找到这一行:ulimit -S -c 0 > /dev/null 2>&1 改成 ulimit -S -c unlimited > /dev/null 2>&1后保存。
 
2,修改系统内核参数
[root@localhost /]# cp /etc/sysctl.conf /etc/sysctl.conf.bak
[root@localhost /]# vi /etc/sysctl.conf
在原有基础上加入这么几行:
 
fs.suid_dumpable = 1
fs.aio-max-nr =1048576
fs.file-max = 6815744
 
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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 = 1048586
保存。
 [root@localhost /]# cd /etc/      
 [root@localhost etc]# sysctl –p                                           ***使得刚才的配置生效。
 
3,配置linux下进程数和最大的会话数。
[root@localhost /]# cp /etc/security/limits.conf  /etc/security/limits.conf.bak
[root@localhost /]# vi /etc/security/limits.conf
在文件的最后添加下面的几行
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
保存。
 
4,进行关联的设置。
[root@localhost /]# cp /etc/pam.d/login /etc/pam.d/login.bak
[root@localhost /]# vi /etc/pam.d/login
添加下面一行数据
session     required     /lib/security/pam_limits.so
 
在/etc/profile 文件中添加以下内容(注意shell脚本中的空格)
[root@localhost etc]# cp profile profile.bak
 
if [ $USER = "oracle" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
 ulimit -p 16384
 ulimit -n 65536
 else
 ulimit -u 16384 -n 65536
 fi
fi
 
5,拷贝解压oracle安装文件。
[root@localhost ~]# mv oracle-10201_database_linux32.zip /u01/app                       ***将oracle压缩安装包转移到oracle的安装目录中
[root@localhost app]# unzip oracle-10201_database_linux32.zip                                  ***将压缩包解压缩
 
四:配置远程图形界面vnc
     具体的配置vnc服务我在上一篇博客里已经详细介绍了。这里迅速搭建出vnc服务。Kde 或者gnome组件一定要装好。
 [root@localhost CentOS]# yum install vnc-server-4.1.2-14.el5_3.1.i386.rpm
[root@localhost opt]# vncserver :1                                                                                              ***启动vnc服务,设置密码
[root@localhost /]# vi /root/.vnc/xstartup
去掉2个#号即可使用KDE界面。
unset SESSION_MANAGER                                                                                     ***去掉顶上的#
 exec /etc/X11/xinit/xinitrc                                                                                      ***去掉顶上的#,将其生效
重启下服务。
[root@localhost .vnc]# vncserver -kill :1
Killing Xvnc process ID 3383
[root@localhost .vnc]# vncserver :1
或者:
[root@localhost .vnc]# /etc/init.d/vncserver restart
 
使用vncview登录或者IE使用 http://10.212.7.77:5801登录。
 
五:开始安装。
1,切换到oracle用户下,进入oracle的安装目录中。(在图形界面下操作)
[root@localhost /]# su – oracle                                                                                      ***安装oracle时不能使用root用户
[oracle@localhost ~]$ cd /u01/app/database                                                          ***切换到oracle的安装目录下 database是解压出来的安装文件
[oracle@localhost database]$ ./runInstaller                                                            ***执行OUI安装。
 
如果遇到提示linux版本不对的问题,像如下的方式解决问题。
[root@localhost etc]# cp /etc/redhat-release redhat-release.bak
[root@localhost etc]# vi /etc/redhat-release
将版本改成oracle要求的版本就行。剩下的就在/u01/app/database/目录下执行./runInstaller好了。