1、环境介绍

  • 服务器:CentOS release 6.6 + 16G内存
  • 数据库版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64
  • 若需重新安装操作系统,请先注意分区时swap分区及/tmp目录的大小,见 安装步骤->查看系统配置信息

2、安装步骤

  1. 下载Oracle Database软件包,将linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip 下载到本地后再解压至同一文件夹下 (整个安装文件被分成了两份,故要分别解压并合到同一个database目录下)

    • 可以在Windows下操作,然后拷到U盘里再在CentOS上安装
    • 也可直接在linux下下载,然后解压到同一文件夹下1,见脚注
  2. 打开welcome.html ,即可观看安装帮助文档,如:Database Quick Installation Guide
    Database Installation Guide —— 建议大家先过一遍Quick Guide

  3. 查看系统配置信息

    • 查看 /etc/meminfo 文件中的 MemTotalSwapTotal 信息,如 grep "SwapTotal" /etc/meminfo,以下是官方对Swap分区大小的要求

      Available RAMSwap Space Required
      Between 1 GB and 2 GB1.5 times the size of RAM
      Between 2 GB and 16 GBEqual to the size of RAM
      More than 16 GB16 GB

      注:若需调整swap分区大小,既可选择重装系统2或 新建swap分区3也可通过 文件扩充swap分区4,详情请点击脚注!

    • 查看/tmp目录所在磁盘空间的剩余大小,键入df -h /tmp,官方建议至少1G,系统一般都会满足条件的,除非你专门给/tmp划分了一个小于1G的磁盘空间,当然这种情况下你也可以通过后面的设置TMP目录进行修改

  4. 软件包检测及安装

    • 安装包的检测若求方便可跳过此步,直接进行安装操作
      具体安装包的要求,请参考oracle官方文档

      ####软件包检测,求方便的,可直接跳过此命令!!!
      [root@centos6 oracle]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc- gcc-c++  glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh
      
    • 软件包的安装

      下面是统一安装命令(当然也可以针对上步骤安装特定的软件包),建议大家直接复制下列命令1、2、3(因为就算遗漏了特定平台上的包,后续图形界面安装oracle时,其也会自动提示你的,故不用担心,到时再安装即可)

      ####1.软件包统一安装,当然你也可以参考上述命令只安装那些系统未安装的包
      [root@centos6 oracle]# yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc- gcc-c++  glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh
      
      ####2.64位系统默认的是安装x86_64位的,但**部分软件包还需再安装32位的**,详情可见oracle官方文档
      [root@centos6 oracle]# yum search compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ unixODBC unixODBC-devel
      
      ####3.根据yum search 的结果,安装32位软件包
      [root@centos6 oracle]# yum install compat-libstdc++-33.i686 glibc-devel.i686 glibc.i686 libaio.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686
      
      ####4.查询安装情况,同oracle官方的要求作比(当然你可跳过此步,后续图形界面安装oracle时,其也会自动提示你的)求方便的,可直接跳过此命令!!!
      [root@centos6 oracle]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc- gcc-c++  glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel 
      
      binutils-2.20.51.0.2-5.42.el6.x86_64
      compat-libstdc++-33-3.2.3-69.el6.x86_64
      compat-libstdc++-33-3.2.3-69.el6.i686
      elfutils-libelf-0.158-3.2.el6.x86_64
      elfutils-libelf-devel-0.158-3.2.el6.x86_64
      gcc-4.4.7-11.el6.x86_64
      gcc-c++-4.4.7-11.el6.x86_64
      glibc-2.12-1.149.el6_6.9.x86_64
      glibc-2.12-1.149.el6_6.9.i686
      glibc-common-2.12-1.149.el6_6.9.x86_64
      glibc-devel-2.12-1.149.el6_6.9.x86_64
      glibc-devel-2.12-1.149.el6_6.9.i686
      glibc-headers-2.12-1.149.el6_6.9.x86_64
      ksh-20120801-21.el6_6.3.x86_64
      libaio-0.3.107-10.el6.x86_64
      libaio-0.3.107-10.el6.i686
      libaio-devel-0.3.107-10.el6.x86_64
      libaio-devel-0.3.107-10.el6.i686
      libgcc-4.4.7-11.el6.x86_64
      libgcc-4.4.7-11.el6.i686
      libstdc++-4.4.7-11.el6.x86_64
      libstdc++-4.4.7-11.el6.i686
      libstdc++-devel-4.4.7-11.el6.x86_64
      make-3.81-20.el6.x86_64
      sysstat-9.0.4-27.el6.x86_64
      unixODBC-2.2.14-14.el6.x86_64
      unixODBC-2.2.14-14.el6.i686
      unixODBC-devel-2.2.14-14.el6.x86_64
      unixODBC-devel-2.2.14-14.el6.i686
      
  5. 用户环境设置

    • 创建oracle用户&组

      [root@centos6 ~]# groupadd dba
      [root@centos6 ~]# groupadd oinstall
      [root@centos6 ~]# useradd -g oinstall -G dba -s /bin/bash oracle # 新建oracle用户
      [root@centos6 ~]# passwd oracle
      
    • 创建安装目录

      [root@centos6 ~]# mkdir -p /u01/app/oracle
      [root@centos6 ~]# chown -R oracle:oinstall /u01
      [root@centos6 ~]# chmod -R 755 /u01
      
    • 设置用户环境(.bash_profile

      [root@centos6 ~]# su - oracle
      [oracle@centos6 ~]$ vi .bash_profile # 修改后的内容如下
      [oracle@centos6 ~]$ cat .bash_profile 
      
      # .bash_profile
      
      # Get the aliases and functions
      if [ -f ~/.bashrc ]; then
              . ~/.bashrc
      fi
      
      # User specific environment and startup programs
      
      PATH=$PATH:$HOME/bin
      
      export PATH
      export TMP=/tmp # 若/tmp下容量不足1G,也可自行修改为符合条件的,如TMP=/oracle/tmp
      export TMPDIR=$TMP
      export ORACLE_BASE=/u01/app/oracle # oracle数据库安装目录
      export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1  # oracle数据库路径
      export ORACLE_SID=orcl  # oracle启动数据库实例名,这个很重要,也可自行修改
      export ORACLE_TERM=xterm # xterm窗口模式安装,也可自行修改
      export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin # 添加系统环境变量
      export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 添加系统环境变量
      #export LANG=C # 防止安装过程出现乱码
      export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  # 设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致如:ZHS16GBK,否则出现数据导入导出中文乱码问题
      umask 022
      
      #### 使设置立刻生效
      [oracle@centos6 ~]$source .bash_profile
      
  6. 内核参数及资源参数配置

    • 配置内核参数 – 如下是/etc/sysctl.conf文件的修改的内容(之前的数据已被注释掉),具体参数参见官方的要求,修改成功后,命令行键入sysctl -p

      # Controls the maximum shared segment size, in bytes
      #kernel.shmmax = 68719476736
      
      # Controls the maximum number of shared memory segments, in pages
      #kernel.shmall = 4294967296
      #fs.file-max = 6553600
      
      # Oracle
      fs.aio-max-nr = 1048576
      fs.file-max = 6815744
      kernel.shmall = 2097152
      kernel.shmmax = 68719476736
      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
      
    • 配置oracle账号资源 – 在 /etc/security/limits.conf 文件添加如下内容

      # Oracle
      oracle           soft    nproc   2047
      oracle           hard    nproc   16384
      oracle           soft    nofile  1024
      oracle           hard    nofile  65536
      
    • 设定资源限制 – 在 /etc/profile 或者 /home/oracle/.bash_profile 文件中添加如下内容

      # Oracle
      if [ $USER = "oracle" ]; then
              if [ $SHELL = "/bin/ksh" ]; then
                    ulimit -p 16384
                    ulimit -n 65536
              else
                    ulimit -u 16384 -n 65536
              fi
      fi
      
    • 配置pam模块 – 在 /etc/pam.d/login 添加

      #Oracle
      session    required     pam_limits.so
      
  7. 图形界面安装

    • 确保oracle用户对安装包的目录有执行权限

      ####设置已解压好的安装包目录的权限
      [root@centos6 oracle]#chown -R oracle:oinstall /home/oracle/database  
      
    • 切换到oracle用户下,进行图形界面的安装(若centOS下未安转Xwindow5,请看脚注)

      [root@centos6 oracle]su oracle
      [oracle@centos6 database]$ ./runInstaller # 进入安装软件目录并运行安装脚本
      
    • 开始图形界面选项 —— 主要就是一直continue

      1. 等待一会,出现下面的界面(因个人的环境所以出现下面的提示框,忽略即可–yes)

      2. Emial 可填写也可不填写 (本人选择忽略),点击NEXT 和 YES

      3. 本人选择仅安装数据库软件

      4. 单实例安装

      5. 语言选择(默认英语)

      6. 本人安装标准版

      7. Oracle数据库基目录:/u01/app/oracle, Oracle 软件安装位置:/u01/app/oracle/product/11.2.0/dbhome_1

      8. Oracle配置文件目录:/u01/app/oraInventory,默认即可

      9. Oracle数据库运行组,默认即可

      10. 安装前系统环境监测 ——如果有某一项未监测通过,请根据提示做相应修改,直至监测全部通过为止,否则不能进行下一步安装

        • 如果出现安装包的的问题,参考之前步骤,选择特定的单个安装即可
        • 注意:oracle提示你检测到的错误信息,但检测程序包可能不准,此时还是需要确认一下

          #### 以 compat-libstdc++ 为例,显然系统已经安装了,故直接忽略这个错误
          #### *.i686 即32位的软件包,有时候oracle依旧会报x32bit 未安装,故也直接忽略这个错误
          [root@centos6 oraInventory]# rpm -qa | grep compat-libstdc++
          compat-libstdc++-33-3.2.3-69.el6.i686
          compat-libstdc++-33-3.2.3-69.el6.x86_64
          
        • 针对系统检测出来的配置错误(如前面提到的内核参数的配置等等),oracle会自动生成一个修复脚本,root下运行即可,然后再重新检测

          [oracle@centos6 database]$ su - root
          Password:
          [root@centos6 ~]# /tmp/CVU_11.2.0.3.0_oracle/runfixup.sh
          
        • 若出现pdksh包的安装提示,可登陆链接下载pdksh,然后键入,rpm -ivh pdksh-5.2.14-36.el5.i386.rpm手动安装即可(但该包的安装可能会和ksh出现冲突,此时卸载ksh 即可,rpm -e ksh)——网上也有人将pdksh包上传至百度网盘了,很方便

        • 若swap分区太小,也会出现错误提示 —— 本人曾专门给SWAP划了4G的分区,但检测结果比4G少了一点点的容量(应该是文件系统占用了),而自己是直接忽略这个错误的!

      11. 若调过了之前第6步的内核参数设置,则此时可能会出现下列提示,按提示进行操作即可!!!

            #### 打开一个terminal,root登陆,运行下列命令即可
            [root@centos6 oracle]# /u01/app/oraInventory/orainstRoot.sh
            [root@centos6 oracle]# /u01/app/Oracle/product/11.2.0/dbhome_1/root.sh
        

      12. 之后点击 finish 完成即安装成功

3、 oracle启动&建库 —— 简单介绍

  • 新建数据库

    [oracle@centos6 database]$ dbca 
    
    1. 命令运行后会出现如下的“建库”界面(按默认,一直next即可,自行设置也行)

    2. 建库中会出现类似下面的提示——因为只有在创建好“监听”后,数据库才能安装成功

    3. 终端键入[oracle@centos6 Desktop]$ netca,即可出现建立监听的图形界面(按默认,一直next即可,自行设置也行)

    4. 监听建立OK后,“建库”直至Finish即OK

  • 重启系统后启动数据库
    oracle登陆终端,依次键入下列命令即可

            lsnrctl start
            sqlplus / as sysdba
                startup
                exit
    

4、 Reference

以下是自己曾经收集的有关安装oracle的博文链接,感谢他们,自己写的也只是简单的总结下,正好也能分享给像曾经的我一样的菜鸟们
1. 参考博文1
2. 参考博文2
3. 参考博文3
4. oracle官方安装文档


  1. 解压,若已建立oracle用户,可放到/home/oracle下(目录自己选择)
    [root@centos6 ~]# unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle
    [root@centos6 ~]# unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle ↩
  2. 重装系统进行分区时,参照oracle官方的要求设置好 swaptmp 分区大小即可( 本人的设置为swap 4G,/tmp 4G ), 但可能会出现 实际分区大小小于当初划分的大小 的情况, 比如自己当初给swap划了4G,但当安装软件时,oracle检测到的swap小于4G,本人当时是直接忽略这个进行安装的,所以大家划分大小时可略微偏大一点(因为分区系统文件本来也占容量的) ↩
  3. 本方法适用于 系统中还存在多余的磁盘空间可以分区 ,我们可以通过 parted(或 fdisk,fdisk对分区是有大小限制的,它只能划分小于2T的磁盘,详情请见鸟哥的使用物理分区构建swap)工具在磁盘中分出一个分区给系统以便扩充swap分区大小(以下是本人在virtualbox下的实现步骤)
    ##### 生成swap分区 #####
    [root@centos6 ~]# fdisk /dev/sda #通过fdisk命令分了一个2G的磁盘分区sda3
    [root@centos6 ~]# partprobe #或者reboot
    [root@centos6 ~]# mkswap /dev/sda3
    Setting up swapspace version 1, size = 2104152 KiB
    no label, UUID=0dac0f94-2530-46c4-9bb1-6623fe600c56
    [root@centos6 ~]# free
    total used free shared buffers cached
    Mem: 3923824 224328 3699496 204 17616 75852
    -/+ buffers/cache: 130860 3792964
    Swap: 2097148 0 2097148
    [root@centos6 ~]# swapon /dev/sda3
    [root@centos6 ~]# free #扩充OK
    total used free shared buffers cached
    Mem: 3923824 225700 3698124 204 17628 75868
    -/+ buffers/cache: 132204 3791620
    Swap: 4201300 0 4201300
    ##### 设置开机自动挂载 #####
    [root@centos6 ~]# blkid #或者通过 “ls -l /dev/disk/by-uuid” 命令查看sda3的UUID
    /dev/sda1: UUID=”70ae1929-d549-4183-a0a1-d56c6436caea” TYPE=”ext4”
    /dev/sda2: UUID=”705c2344-e67c-4526-a159-4b9841b7ac06” TYPE=”swap”
    /dev/sda3: UUID=”0dac0f94-2530-46c4-9bb1-6623fe600c56” TYPE=”swap”
    [root@centos6 ~]# vi /etc/fstab #设置开机自动挂载新增的swap分区
    添加的内容为 UUID=0dac0f94-2530-46c4-9bb1-6623fe600c56 swap swap defaults 0 0 ↩
  4. 本方法适用于 系统盘中无多余磁盘空间可分区 的情况,具体请见鸟哥的使用文件分区构建swap(以下是本人在virtualbox下的实现步骤)
    # 创建/home/swap分区文件,文件的大小是2097152个block,1个block为1K。
    [root@centos6 ~]# dd if=/dev/zero of=/home/swap bs=1024 count=2097152
    [root@centos6 ~]# mkswap /home/swap
    # 添加加到fstab里面
    [root@centos6 ~]# vi /etc/fstab #设置开机自动挂载新增的swap分区
    添加的内容为 /home/swap swap swap defaults 0 0 ↩
  5. 其中1、2、3即可
    #### 1.安装X window
    [root@centos6 ~]# yum groupinstall “X Window System” # 安装X Window
    #### 2.设置开机默认启动图形界面 (不想开机启动图形界面,请忽略此步骤)
    [root@centos6 ~]# vi /etc/inittab # 编辑
    id:5:initdefault: #修改3为5
    #### 3.启动图形界面
    [root@centos6 ~]# reboot # 或者键入 init 5
    #### 通过 Xmanager 进行远程centOS (若直接在linux主机上操作,可忽略本步骤)
    [root@centos6 ~]# vi /etc/sysconfig/iptables # 编辑,添加以下代码,开启防火墙UDP 177端口
    -A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 177 -j ACCEPT
    [root@centos6 ~]# service iptables restart # 重启防火墙
    #### 上述方法若不行,也可暂时或者永久关闭防火墙
    #### 暂时关闭防火墙
    [root@centos6 ~]# service iptables stop
    #### 暂时关闭防火墙
    [root@centos6 ~]# ntsysv # 通过取消iptables 和 ip6tables前的*号,即可关闭 ↩

更多推荐

Oracle 数据库安装总结(个人亲测)