你的位置:首页 > 数据库

[数据库]OEL5.5安装Oracle 11gr2详解


虚拟机环境:Vmware Workstation 11.1.0 + Oracle Enterprise Linux 5.5 X86-64
1、物理机内存设置
  最小:1GB
  推荐:2GB或以上
  检测内存大小:
  # grep MemTotal /proc/meminfo
  查看可用的内存空间:
  free

2、交换分区(swap)设置
  物理内存    交换分区大小
  1~2G       前者的1.5倍
  2G~16G   与前者相等
  >16GB     16GB

  查看交换分区的大小:
  # grep SwapTotal /proc/meminfo

3、查看操作系统信息(此处主要验证操作系统版本是否对Oracle 11gr2的支持)
  操作系统类型:
  # uname -m
  操作系统内核版本:
  # cat /proc/version
  # uname -r

4、安装系统包(注:安装的包版本必须等于或大于以下版本)
  包安装方法:
    # rpm -ivh binutils-2.17.50.0.6*
  验证包是否已经安装:
    # rpm -q binutils-2.17.50.0.6
  安装包列表(以下这些包都在oel5.5镜像文件的Server文件夹下):
    binutils-2.17.50.0.6
    compat-libstdc++-33-3.2.3
    compat-libstdc++-33-3.2.3 (32 bit)
    elfutils-libelf-0.125
    elfutils-libelf-devel-0.125
    gcc-4.1.2
    gcc-c++-4.1.2
    glibc-2.5-24
    glibc-2.5-24 (32 bit)
    glibc-common-2.5
    glibc-devel-2.5
    glibc-devel-2.5 (32 bit)
    glibc-headers-2.5
    ksh-20060214
    libaio-0.3.106
    libaio-0.3.106 (32 bit)
    libaio-devel-0.3.106
    libaio-devel-0.3.106 (32 bit)
    libgcc-4.1.2
    libgcc-4.1.2 (32 bit)
    libstdc++-4.1.2
    libstdc++-4.1.2 (32 bit)
    libstdc++-devel 4.1.2
    make-3.81
    sysstat-7.0.2
    unixODBC-2.2.11 (32-bit) or later
    unixODBC-devel-2.2.11 (32-bit) or later
    unixODBC-devel-2.2.11 (64-bit) or later
    unixODBC-2.2.11 (64-bit) or later
5、安装用户和用户组
  # /usr/sbin/groupadd oinstall
  # /usr/sbin/groupadd dba
  # /usr/sbin/useradd -g oinstall -G dba oracle

6、修改系统内核参数
  查看参数值:
    # /sbin/sysctl -a | grep parameter_name
  参数及推荐值列表:
    /proc/sys/kernel/sem 250 32000 100 128
    /proc/sys/kernel/shmall 2097152
    /proc/sys/kernel/shmmax 536870912
    /proc/sys/kernel/shmmni 4096
    /proc/sys/fs/file-max 6815744
    /proc/sys/net/ipv4/ip_local_port_range 9000 65500
    /proc/sys/net/core/rmem_default 262144
    /proc/sys/net/core/rmem_max 4194304
    /proc/sys/net/core/wmem_default 262144
    /proc/sys/net/core/wmem_max 1048576
    /proc/sys/fs/aio-max-nr 1048576
  使用vi编辑器修改参数文件/etc/sysctl.conf,增加或修改如下内容:
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 536870912
    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 = 1048576
  执行以下命令或者重启(reboot)操作系统使以上修改内核参数文件生效:
    # /sbin/sysctl -p

7、为Oracle软件安装用户检测资源限制条件
  # su - oracle
  $ ulimit -Sn
  1024
  $ ulimit -Hn
  65536
  $ ulimit -Su
  2047
  $ ulimit -Hu
  16384
  $ ulimit -Ss
  10240
  $ ulimit -Hs
  32786
  更新资源限制文件/etc/security/limits.conf,在末尾添加如下行
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    oracle hard stack 32768

8、创建Oracle安装时需要的目录
  查看所有文件系统的挂载信息:
  # df -k
  创建软件安装时所需目录:
  # mkdir -p /u01/app/
  # chown -R oracle:oinstall /u01/app/
  # chmod -R 775 /u01/app/

9、配置Oracle用户的环境
  以下命令需要在主机执行,以下一系列操作确保操作系统支持对图形界面的支持
  # xhost +
  $ su - oracle
  $ xhost +
  $ echo $SHELL
  $ . ./.bash_profile
  $ w
  $ export DISPLAY=local_host:0.0
  $ echo $SHELL
  $ echo $DISPLAY
  $ xclock
  如果需要用ssh客户端工具操作图形界面,则需要执行以下命令
  $ export DISPLAY=local_host:0.0
  $ xclock
  设置ORACLE_BASE和ORACLE_SID,以下的设置方法是基于临时会话的设置,后文中会讲述永久设置的方法
  $ ORACLE_BASE=/u01/app/oracle
  $ ORACLE_SID=orcl
  $ export ORACLE_BASE ORACLE_SID
  使用默认的ORACLE_HOME和TNS_ADMIN
  $unset ORACLE_HOME
  $unset TNS_ADMIN

10、准备Oracle安装软件
  安装 vmware-tool工具,否则无法实现主机与物理机的文件共享
  使用vmware的共享功能将下载的Oracle软件包共享给虚拟机
  使用linux unzip工具将Oracle安装软件解压到/u01/目录下,具体命令如下:

    # unzip   /mnt/hgfs/share_file_dir/linux.x64_11gR2_database_1of2.zip   /u01/

    # unzip   /mnt/hgfs/share_file_dir/linux.x64_11gR2_database_2of2.zip   /u01/

11、安装Oracle数据库管理软件

  # su - oracle
  $ ./runInstaller

  注意:在安装过程中,选择只安装oracle数据库软件,oracle数据库我们接下来会单独创建和配置,这样做的好处在于理解oracle的整体结构

12、创建和管理Oracle数据库
  $ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
  $ cd $ORACLE_HOME/bin
  $ ./dbca
  注意:在安装过程中可能会提示安装监听,在另一个会话中执行以下命令完成监听器的配置
  $ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
  $ cd $ORACLE_HOME/bin
  $ ./netca

13、启动和登录数据库
  # su - oracle
  $ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
  注意:由于没有设置ORACLE_SID环境变量,连接库时可能出现错误
  $ export ORACLE_SID=orcl
  $ cd $ORACLE_HOME/bin
  $ ./sqlplus /nolog
  SQL> conn / as sysdba
  SQL> startup nomount;
  SQL> alter database mount;
  SQL> alter database open;
  /*
    注意:
    将数据库启动到挂载(mount)状态的时候可能会出现
    ORA-01102: cannot mount database in EXCLUSIVE mode
    原因分析:
    1、在ORACLE_HOME/dbs/存在 "sgadef<sid>.dbf" 文件或者lk<db_name> 文件。这两个文件是用来用于锁内存的。
    2、oracle的 pmon, smon, lgwr and dbwr等进程未正常关闭。
    3、数据库关闭后,共享内存或者信号量依然被占用。
    解决方案:
    1、关闭数据库
      SQL> shutdown immediate
    2、fuser -u lk<db_name> 查看使用 lk<db_name> 文件的进程和用户
      $ /sbin/fuser -u lkGLOBAL_ORCL
    3、使用 fuser -k lk<db_name> 杀死这些正在访问lk<db_name>的进程
      $ /sbin/fuser -k lkGLOBAL_ORCL
    4、确认相关进程全被终止
      $ /sbin/fuser -u lkGLOBAL_ORCL
    5、依次启动数据库
      SQL> startup nomount;
      SQL> alter database mount;
      SQL> alter database open;
  */

14、为了操作方便,这里说明设置环境变量的方法,这样就可以直接在会话中使用sqlplus命令了
  # su - oracle
  $ echo "export ORACLE_SID=orcl" >> /home/oracle/.bash_profile
  $ echo "export ORACLE_BASE=/u01/app/oracle" >> /home/oracle/.bash_profile
  $ echo "export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1" >> /home/oracle/.bash_profile
  $ echo "export TNS_ADMIN=$ORACLE_HOME/network/admin" >> /home/oracle/.bash_profile
  $ echo "export PATH=$ORACLE_HOME/bin:$PATH" >> /home/oracle/.bash_profile

15、官方参考文档

  https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#CEGHFFGG

  https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN002

  https://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#ADMIN004