美文网首页我爱编程
Oracle 11g 基于Centos7静默安装教程(无图形界面

Oracle 11g 基于Centos7静默安装教程(无图形界面

作者: 那个初衷 | 来源:发表于2017-08-22 13:23 被阅读0次

    1.安装前环境准备

    1. VMware Workstation 11 搭建 Centos7虚拟机,Centos7操作系统最小化安装,2G内存,20G磁盘空间,1核CPU,已配置好网络IP:192.168.1.108;
    2. 已下载Oracle 11g Linux安装文件:linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip.
    3. 通过Xmanager Xftp上传到虚拟机/tmp目录中.

    2.操作系统准备工作

    1. 使用root用户登录操作系统.
    2. yum 安装 unzip 软件,用来解压上传的Oracle安装文件.
    [root@Centos ~]# yum install unzip –y
    
    1. 解压Oracle 安装程序
    [root@Centos ~]# cd /tmp
    [root@Centos tmp]# unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
    

    等待解压完成后,会在/tmp目录下生产一个database文件夹,里面就Oracle 11g安装文件。

    [root@centos tmp]# ll
    总用量 2295596
    drwxr-xr-x. 8 root root        128 8月  21 2009 database
    -rwx------. 1 root root        836 8月  22 2017 ks-script-H6QMJc
    -rw-r--r--. 1 root root 1239269270 7月  27 19:39 linux.x64_11gR2_database_1of2.zip
    -rw-r--r--. 1 root root 1111416131 7月  27 16:15 linux.x64_11gR2_database_2of2.zip
    drwx------. 3 root root         17 8月  22 08:58 systemd-private-b478623aa5414c939af3b7dd864bd991-vmtoolsd.service-UQ4SHd
    -rw-------. 1 root root          0 8月  22 2017 yum.log
    
    1. Yum 安装vim软件,用于编辑配置文件(个人习惯,不安装vim,使用vi也可以).
    [root@Centos tmp]# yum install vim -y
    
    1. 在/etc/hosts文件中添加主机名
    [root@Centos tmp]# vim /etc/hostname   
    centos       # 修改主机名 
                 # :wq保存退出
    [root@Centos tmp]# vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.108 centos        # 新增对应
    
    1. 关闭selinux
    [root@Centos tmp]# vim /etc/selinux/config
    # 修改属性
    SELINUX=disabled
    
    
    #执行刷新
    [root@Centos tmp]# setenforce 0
    
    1. 关闭防火墙 -- 按照现场环境
    [root@Centos tmp]# service iptables stop
    [root@Centos tmp]# systemctl disable iptables
    [root@Centos ~]# systemctl stop firewalld
    [root@Centos ~]# systemctl disable firewalld
    
    1. 安装Oracle 11g依赖包
    [root@Centos tmp]# yum install yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y
    
    1. 添加安装用户和用户组
    [root@Centos tmp]# groupadd oinstall
    [root@Centos tmp]# groupadd dba
    [root@Centos tmp]# useradd -g oinstall -G dba oracle
    [root@Centos tmp]# passwd oracle
    [root@Centos tmp]# id oracle
    uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)
    
    1. 修改内核参数配置文件
    [root@Centos ~]# vim /etc/sysctl.conf
    # 添加以下内容
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 1073741824
    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
    [root@Centos ~]# sysctl -p
    

    其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

    1. 修改用户的限制文件
    [root@Centos ~]# vim /etc/security/limits.conf
    # 添加以下内容
    oracle           soft    nproc           2047
    oracle           hard    nproc           16384
    oracle           soft    nofile          1024
    oracle           hard    nofile          65536
    oracle           soft    stack           10240
    

    修改/etc/pam.d/login文件:

    [root@Centos ~]# vim /etc/pam.d/login
    # 添加以下内容:
    session  required   /lib64/security/pam_limits.so
    session  required   pam_limits.so
    

    修改/etc/profile文件:vim /etc/profile

    [root@Centos ~]# vim /etc/profile
     # 添加以下内容:
     
    if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
      else
       ulimit -u 16384 -n 65536
      fi
    fi
    
    1. 创建安装目录和设置文件权限
    [root@Centos ~]# mkdir -p /ibmp_data/oracle/product/11.2.0
    [root@Centos ~]# mkdir /ibmp_data/oracle/oradata
    [root@Centos ~]# mkdir /ibmp_data/oracle/inventory
    [root@Centos ~]# mkdir /ibmp_data/oracle/fast_recovery_area
    [root@Centos ~]# chown -R oracle:oinstall /ibmp_data/oracle
    [root@Centos ~]# chmod -R 775 /ibmp_data/oracle
    
    1. 设置oracle用户环境变量
    [root@Centos ~]# su - oracle
    [oracle@Centos ~]$ vim .bash_profile
    # 添加如下内容:
    ORACLE_BASE=/ibmp_data/oracle
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0
    ORACLE_SID=orcl
    PATH=$PATH:$ORACLE_HOME/bin
    export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
    

    环境变量生效

    source .bash_profile
    
    1. 编辑静默安装响应文件
    [oracle@Centos ~]$ cp -R /tmp/database/response/ .
    [oracle@Centos ~]$ cd response/
    [oracle@Centos response]$ vim db_install.rsp
    # 需要设置的选项如下:
    oracle.install.option=INSTALL_DB_SWONLY
    ORACLE_HOSTNAME=centos    
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/ibmp_data/oracle/inventory
    SELECTED_LANGUAGES=en,zh_CN
    ORACLE_HOME=/ibmp_data/oracle/product/11.2.0
    ORACLE_BASE=/ibmp_data/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.isCustomInstall=true
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=dba
    DECLINE_SECURITY_UPDATES=true
    

    3.根据响应文件静默安装Oracle 11g

    [oracle@Centos response]$ cd /tmp/database/
    [oracle@Centos database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
    

    开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了
    可以在以下位置找到本次安装会话的日志:
    /ibmp_data/oracle/inventory/logs/installActions2015-06-08_04-00-25PM.log
    可以切换终端执行top命令查看后台进程一直是在安装的,/ibmp_data目录也在不断增大,
    当出现以下提示时,代表安装成功:

    按照要求执行脚本。
    打开终端,以root身份登录,执行脚本:

    [root@Centos ~]# sh /ibmp_data/oracle/inventory/orainstRoot.sh
    [root@Centos ~]# sh /ibmp_data/oracle/product/11.2.0/root.sh
    

    4.以静默方式配置监听

    重新使用oracle用户登录

    [oracle@Centos ~]$ netca /silent /responsefile /home/oracle/response/netca.rsp
    

    成功运行后,在/ibmp_data/oracle/product/11.2.0/network/admin/中生成listener.ora和sqlnet.ora

    netstat -tnulp | grep 1521
    

    通过netstat命令可以查看1521端口正在监听。

    Yum安装netstat软件,软件包是在net-tools中。

    yum install net-tools

    [oracle@Centos ~]$ lsnrctl start
    

    5.以静默方式建立新库,同时也建立一个对应的实例。

    [oracle@Centos ~]$ vim /home/oracle/response/dbca.rsp
    # 设置以下参数:
    GDBNAME = "orcl"            //数据库名
    SID = "orcl"                //sid
    SYSPASSWORD = "ibmp"   
    SYSTEMPASSWORD = "ibmp"
    SYSMANPASSWORD = "ibmp"
    DBSNMPPASSWORD = "ibmp"
    DATAFILEDESTINATION =/ibmp_data/oracle/oradata
    RECOVERYAREADESTINATION= /ibmp_data/oracle/fast_recovery_area
    CHARACTERSET = "AL32UTF8"
    TOTALMEMORY = "1638"
    

    其中TOTALMEMORY = "1638" 为1638MB,物理内存2G80%。*

    进行静默配置:

    [oracle@Centos ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
    

    如果出现

    将/ibmp_data/oracle/product/11.2.0/assistants/dbca/templates 目录下拷贝到对应文件夹下 重新运行

    [oracle@Centos ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
    

    建库后进行实例进程检查

    [oracle@Centos ~]$ ps -ef | grep ora_ | grep -v grep
    

    查看监听状态:

    [oracle@Centos ~]$ lsnrctl status
    

    登录查看实例状态

    [oracle@Centos ~]$ sqlplus / as sysdba
    SQL> select status from v$instance;
    

    如出现:

    startup
    starup 报错 缺失文件
    复制 /ibmp_data/oracle/admin/hg_ibmp_db/pfile/init.ora.722017115140
    到/ibmp_data/oracle/product/11.2.0/dbs/ 重命名为 initorcl.ora
    重启reboot

    切换到oracle用户

    sqlplus / as sysdba
    startup
    select status from v$instance;
    

    如出现:

    **修改 /ibmp_data/oracle/product/11.2.0/network/admin/listener.ora **

    vim /ibmp_data/oracle/product/11.2.0/network/admin/ listener.ora
    # 添加
    SID_LIST_LISTENER =
    (SID_LIST =
      (SID_DESC =
      (GLOBAL_DBNAME = hg_ibmp_db)
      (SID_NAME = orcl)
      )
    )
    

    重启监听

    lsnrctl stop
    lsnrctl start 
    

    6.Oracle开机自启动设置

    1. 修改/ibmp_data/oracle/product/11.2.0/bin/dbstart
    [oracle@Centos ~]$ vim /ibmp_data/oracle/product/11.2.0/bin/dbstart
    # 将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
    ORACLE_HOME_LISTNER = $ORACLE_HOME
    
    1. 修改/ibmp_data/oracle/product/11.2.0/bin/dbshut
    [oracle@Centos ~]$ vim /ibmp_data/oracle/product/11.2.0/bin/dbshut
    #将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
    将ORACLE_HOME_LISTNER = $ORACLE_HOME
    
    1. 修改/etc/oratab文件(没有此文件可手动创建一个)
    [oracle@Centos ~]$ vim /etc/oratab
    # 将orcl:/ibmp_data/oracle/product/11.2.0:N中最后的N改为Y
    orcl:/ibmp_data/oracle/product/11.2.0:Y
    
    1. 输入命令dbshut和dbstart测试
    [oracle@Centos ~]$ dbshut
    

    Oracle监听停止,进程消失.

    [oracle@Centos ~]$ dbstart
    

    Oracle监听启动,进程启动.

    1. 切换到root账户建立自启动脚本
    [oracle@Centos ~]$ su -
    [root@Centos ~]# vim /etc/rc.d/init.d/oracle
    
    #添加以下内容(有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改):
    
    
    
    #!/bin/bash
    # oracle: Start/Stop Oracle Database 11g R2
    # chkconfig: 345 90 10
    # description: The Oracle Database is an Object-Relational Database Management System.
    #
    . /etc/rc.d/init.d/functions
    LOCKFILE=/var/lock/subsys/oracle
    ORACLE_HOME=/ibmp_data/oracle/product/11.2.0
    ORACLE_USER=oracle
    case "$1" in
    'start')
    if [ -f $LOCKFILE ]; then
          echo $0 already running.
          exit 1
       fi
       echo -n $"Starting Oracle Database:"
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
       touch $LOCKFILE
       ;;
    'stop')
       if [ ! -f $LOCKFILE ]; then
          echo $0 already stopping.
          exit 1
       fi
       echo -n $"Stopping Oracle Database:"
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
       su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
       rm -f $LOCKFILE
       ;;
    'restart')
       $0 stop
       $0 start
       ;;
    'status')
       if [ -f $LOCKFILE ]; then
          echo $0 started.
          else
          echo $0 stopped.
       fi
       ;;
    *)
       echo "Usage: $0 [start|stop|status]"
       exit 1
    esac
    exit 0
    
    1. 修改/etc/init.d/oracle服务文件权限
    [root@Centos init.d]# chmod 755 /etc/init.d/oracle
    
    1. 设置为开机启动
    [root@Centos ~]# chkconfig oracle on
    
    1. 进行service oracle start/stop/restart测试

    2. Reboot重启查看Oracle监听和实例进程均能自动启动。

    注:如果自启动有问题,可使用dbstart命令手动启动数据库,用lsnrctl start启动监听。

    [oracle@Centos ~]$ dbstart
    [oracle@Centos ~]$ lsnrctl start
    
    1. 测试链接

    如果各项配置都没问题还是不能连接
    检查 /etc/hosts 文件是否配置对应关系
    检查 /ibmp_data/oracle/diag/tnslsnr/ibmp_centOS/listener/alert/log.xml
    找不到问题 删除试试

    7.删除实例

    1. 关闭所有oracle进程,其实只要shutdown
      abort即可.因我的机器oracle没设置为开机自动启动,重启机器后oracle进程一个也没有,系统很是干净.

    2. 删除实例数据文件和dump文件;

    find $ORACLE_BASE/ -name $ORACLE_SID
    

    在我系统里面显示如下,将这些目录直接删除

    /ibmp_data/oracle/diag/rdbms/ibank
    /ibmp_data/oracle/diag/rdbms/ibank/ibank
    /ibmp_data/oracle/cfgtoollogs/dbca/ibank
    /ibmp_data/oracle/flash_recovery_area/ibank
    /ibmp_data/oracle/oradata/ibank
    /ibmp_data/oracle/admin/ibank
    
    1. 删除其他配置文件
    find $ORACLE_BASE/* -name '*[Bb][Tt][Ss][Dd][Bb]2*' | grep -v admin| grep -v oradata
    

    将查找结果出现的文件也一一删除,当然你可以用xarg结合rm删除.

    find结果如下:

    /ibmp_data/oracle/flash_recovery_area/ibank
    /ibmp_data/oracle/product/11.2.0/oc4j/j2ee/OC4J_DBConsole_host_ibank
    /ibmp_data/oracle/product/11.2.0/rdbms/log/alert_ibank.log
    /ibmp_data/oracle/product/11.2.0/host_ibank
    /ibmp_data/oracle/product/11.2.0/host_ibank/sysman/emd/state/A190EE260BF6B09EB5805807
    28916A3B.alert_ibank.log
    /ibmp_data/oracle/product/11.2.0/host_ibank/sysman/log/nmcibank1521
    /ibmp_data/oracle/product/11.2.0/dbs/alert_ibank.log
    /ibmp_data/oracle/product/11.2.0/dbs/lkibank
    /ibmp_data/oracle/product/11.2.0/dbs/hc_ibank.dat
    /ibmp_data/oracle/product/11.2.0/dbs/orapwibank
    /ibmp_data/oracle/product/11.2.0/dbs/spfileibank.ora
    
    1. 最重要的一步,如果你要重建的实例和刚删除实例的实例名一样的话,删除
      /etc/oratab文件最后一行。
      至此,已干净删除linux系统的oracle实例。

    相关文章

      网友评论

        本文标题:Oracle 11g 基于Centos7静默安装教程(无图形界面

        本文链接:https://www.haomeiwen.com/subject/qkqldxtx.html