centos6.5_x86_64 下安装 Oracle11gR2 的详细过程

时间:2022-03-30 07:47:16
参考手册:http://docs.oracle.com/cd/E11882_01/nav/portal_11.htm/Database Quick Installation Guide for Linux x86-64
一,前期准备:
1,环境说明:
     Linux:64位Centos release 6.5 (Final)
     Oracle:linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip
     方式:通过本地虚拟机给远程服务器安装oracle
 
2, 在线安装Oracle需要的RPM支持包(选择x86_64的devel类型的安装包,如果没有联网,可以去ISO安装文件里面去找, 注意不同的操作系统版本对应的安装包不一样,下面是基于RedHat5的安装要求,centos是基于RedHat的):
      1. binutils-2.17.50.0.6 
      2. compat-libstdc++-33-3.2.3   (33表示3.3版,296表示2.96版)  
      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. libstdc++-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 
     说明:安装之前可以先通过rpm -qa | grep binutils 来检查本机上已经安装的包,然后在安装未安装的包。这些包在系统安装文件ISO里面有。
 
3,开始安装前我们首先要配置内核参数,保证Oracle的正常运行(Oracle启动需要较多的资源)。配置如下: 
     修改文件/etc/sysctl.conf,用vi /etc/sysctl.conf打开文件修改一下内容,有责略过,没有责添加。
      centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
  编辑完成后按Esc键,输入“:wq”存盘退出 各参数意义如下: 
     (1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位),通常将其设置为2G或更大。 
     (2)shmmni:用于设置系统范围内共享内存段的最大数量。默认值是 4096 ,通常不需要更改。
     (3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,如系统自动生成则不需要修改。 
     (4)sem:该参数表示设置的信号量,当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整SEM设置如:kernel.sem =       250 32000 100 128各数据段含义如下。 SEMMSL SEMMNSSEMOPM SEMMNI 
SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,如当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。 
SEMMNS参数应设置为SEMMSL*SEMMNI,如例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。 SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010 
     (5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。 
     (6)rmem_default — 默认的TCP/IP接收缓冲大小 
     (7)rmem_max — 最大的TCP/IP接收窗口的大小 
     (8)wmem_default — 默认的TCP/IP发送窗口大小 
     (9)wmem_max — 最大的TCP/IP发送窗口的大小
      
      要使 /etc/sysctl.conf 更改立即生效,执行以下命令: > sysctl  -p 
     可能出现如下错误:
     error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
     error: "net.bridge.bridge-nf-call-iptables" is an unknown key
     error: "net.bridge.bridge-nf-call-arptables" is an unknown key
     解决方法:
     >lsmod | grep bridge
     >modprobe  bridge
     >lsmod | grep bridge
      如果还有其他的出错,那就是配置文件输入时的拼写错误。
4,修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,加入内容。                                        
     oracle   soft     nproc     4096                
     oracle   hard    nproc    16384 
     oracle   soft     nofile     4096 
     oracle   hard    nofile     65536
     oracle   soft     stack     10240
    编辑完成后按Esc键,输入“:wq”存盘退出.
5,修改/etc/pam.d/login 文件,输入命令:vi  /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。 
      session   required    /lib 64/security/pam_limits.so    
      session   required    pam_limits.so      
      备注:如果安装的Oracle是32为的,第一行就应该是  session   required    /lib/security/pam_limits.so,否则登录时会出现循环登录。
6,编辑 /etc/profile ,输入命令:vi  /etc/profile,按i键进入编辑模式,加入下列内容。
     centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
7,创建Oracle用户和安装目录。
     创建用户和用户组,输入命令: 
             >groupadd  oinstall                                //创建Oracle Inventory 组
             >groupadd  dba                                     //创建组群DBA 组
             >useradd -g oinstall -G dba oracle         //创建Oracle软件拥有者(-g表示辅助组,-G表示主组)(还可以在后面接-d dir,表示用户的家目录的位置,默认普通用户的家目录在/home下)
             >passwd oracle                                       //修改oracle用户的密码
     创建安装目录:
             >mkdir -p  /home/oracle/app                        #基目录
             >mkdir /home/oracle/app/oraInventory        #该目录就像Windows下的注册表文件,每当有软件安装,就会向里面写一些注册表
             >mkdir /home/oracle/app/oracle                   #oracle数据库目录
             >mkdir /home/oracle/app/oracle/product    #oracle实例目录
     更改目录属主为Oracle用户所有(防止安装过程中发生权限不够的问题),输入命令:
             >chown -R oracle:oinstall  /home/oracle/app
             >chmod -R 775  /home/oracle/app/
8,配置oracle用户的环境变量,要在oracle用户下进行操作,输入:
      >su oracle
     >vi  /home/oracle/.bash_profile
     export  EDITOR=vi  
     export  ORACLE_SID=orcl         #实例名 
     export  ORACLE_BASE=/home/oracle/app 
     export  ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1 
     export  INVENTORY_LOCATION=/home/oracle/app/oraInventory 
     export  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib 
     export  NLS_LANG="American_america.zhs16gbk" 
     export  NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' 
     export  PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin 
     umask 022 
     export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64 
     export JRE_HOME=$JAVA_HOME/jre 
     export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
     export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
     export erase ^h     #用于消除换车键产生的乱码
      补充:如果我们的Linux是mini安装的,那么就没有JDK,我们需要安装它: yum install java-1.7.0-openjdk-devel.x86_64 -y
               注意,安装的目录默认就是上面的JAVA_HOME,但是后面的版本数字可能会不一样,需要改动。
 
二,安装Oracleuyn
1,安装准备
     1)退出系统以Oracle用户登陆。 
     2)首先将Oracle软件安装包复制到linux系统中的一个目录下,确保Oracle用户对此目录有足够权限。 
     3)打开一个终端,运行unzip命令解压oracle软件安装包。
          centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
      解压完成后生成新目录database,进入解压后的database目录查看。
       centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    
2.1,开始安装(系统安装有图形化界面)
     [ oracle@localhost database ]$  ./runInstaller
     安装报错:
      centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
   
     这种错误有可能发生,也有可能不发生,主要是因为Oracle的安装需要可视化界面。
     解决:
       centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
     如果解决不了,退出登录,重新用Oracle用户登录,然后用Oracle用户执行startx开启图形化界面。
2.2,开始安装(系统没有安装图形化界面或者是通过ssh远程安装oracle)
     在这种情况是不能直接安装,因为Oracle的安装需要图形化界面,可以通过Xmanager实现,添加配置如下:
    (1)安装Xmanager,打开Xmanager下的Xmanager - Passive,用户接收显示ssh传来的图形化界面。
    (2)重新编辑配置文件:vi  /home/oracle/.bash_profile,增加一行:
            export DISPLAY=192.168.178.1:0.0      #192.168.178.1是安装Xmanager物理主机的真实IP地址。后面的0.0应该是Xmanager的图形界面认证标识
                        centos6.5_x86_64 下安装 Oracle11gR2 的详细过程    
   (3)[ oracle@localhost database ]$  ./runInstaller
          centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
3,安装过程
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
   选择常见一个数据库和配置一个数据库:
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    创建一个桌面版数据库:
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
 
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
  
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
  
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
 
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
 
           centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
(注意)安装快完成时,系统会提示你需要用root权限执行2个shell脚本。 按照其提示的路径 执 行/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh  和 /home/oracle/ oraInventory/orainstRoot.sh,安装完成会有提示信息。 执行命令:①>cd  /home/oracle/app/oracle/product/11.2.0/dbhome_1     
                                                                                            >sh  root.sh         #当中有个敲回车的点
                                                                                         ② >cd /home/oracle/app/oraInventory 
                                                                                            >sh  orainstRoot.sh 
          centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
 
close:
centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
 
三,启动执行Oracle
      1,执行>sqlplus / as sysdba
                  SQL>select TABLE_NAME from user_tables;
           报错:
        ORA-01034: ORACLE not available
        ORA-27101: shared memory realm does not existLinux-x86_64 
        Error: 2: No such file or directory
        Process ID: 0
        Session ID: 0    Serial number: 0
      
       这种问题可能会出现,也可能不会出现,一般是 ORACLE_HOME 和ORACLE_SID环境变量的错误,也有可能是Oracle实例没有启动,刚好我两种都碰到了。首先我在ORACLE_HOME前面多加了个斜杠,注意最后面也不能有斜杠:
> echo $ORACLE_HOME
//home/oracle/app/oracle/product/11.2.0/dbhome_1
       >echo  $ORACLE_SID
       >orclps -ef | grep smon       
      执行>vi  /home/oracle/.bash_profile查看文件内容:
       centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
      如果仅仅是修改了上面的错误,还是会报出同样的错误,那是因为我们的oracle数据库实例没有启动,看下一步。
      2,修改后,重启Linux,启动Oracle实例
           >sqlplus / as sysdba   #注意第一次登陆必须要用管理员的身份登陆(无需密码),因为只有管理员才有启动实例的权限。
           > startup
            centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
           成功启动oracle。
      3,切换用户,操作数据库。 
 
四,当你进入sqlplus后,发现无法使用上下键来翻出历史命令,我们可以使用第三方工具包解决该问题。
     (1)到官网下载rlwrap-0.42.tar.gz包;
     (2)上传到Linux,然后执行 tar -zxvf rlwrap-0.30.tar.gz 解压;
     (3)进入解压目录,编译配置文件 ./configure,此时可能会报出如下错误:
              centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
            这是因为缺少readline相关包,执行yum list | grep readline 可以找到这些包,执行yum -y install readline*
     (4)如果报错,解决后,重新编译直到无误,然后编译安装软件make ; make install;
     (5)编辑Oracle用户配置文件:vi /home/oracle/.bash_profile,添加如下两行:
                    alias sqlplus=‘rlwrap sqlplus'
                    alias rman='rlwrap rman'
             OK,这样就可以像Windows下一样通过上下翻动调出sqlplus的历史命令了。
 
至此安装完毕!