• CentOS 7静默安装Oracle 11g R2数据库软件


    之前安装Oracle 11g R2数据库软件都是建立在图形界面上的,不过现在大部分服务器上都没有安装图形界面。图形界面安装较为方便,安装选项清晰,步骤明确,但Oracle还支持另一种安装方式,就是通过响应文件(response file)静默方式安装。这对于没有安装图形界面组件的服务器来说十分方便,同时对于批量部署也更有效率,静默方式安装仅通过命令行方式就可以解决,少去了配置图形界面的繁琐,提高了安装速度。本文就基于CentOS 7上进行静默安装Oracle 11g R2数据库软件进行梳理总结,不涉及数据库的创建。

    主要安装步骤参考官方文档:Oracle Database Quick Installation Guide for Linux x86-64

    环境准备

    1. 操作系统(OS):CentOS Linux release 7.5.1804 (Core)
    2. 内核版本(kernel version):3.10.0-862.el7.x86_64
    3. 数据库版本(Oracle Database):Oracle Database 11g R2(11.2.0.4.0)

    安装准备

    硬件环境检查

    • 内存需求

    根据官方文档的描述,得出内存需求如下:

    Minimum: 1 GB of RAM
    Recommended: 2 GB of RAM or more

    检查本机环境内存:

    # grep MemTotal /proc/meminfo
    MemTotal:        3079752 kB
    
    • SWAP空间需求

    SWAP空间要求可以参照如下表格:

    可用内存 需要的SWAP空间
    1G - 2G 可用内存*1.5
    2G - 16G 等于可用内存
    16G以上 16G

    检查本机环境SWAP空间:

    # grep SwapTotal /proc/meminfo
    SwapTotal:       5242876 kB
    

    可用内存及对应SWAP空间大小:

    # free -m
                  total        used        free      shared  buff/cache   available
    Mem:           3007          77        2819           8         110        2781
    Swap:          5119           0        5119
    
    • 磁盘空间需求
    文件类型 空间大小
    安装文件 企业版:4.7G 标准版:4.6G
    数据文件 企业版:1.7G 标准版:1.5G

    本次数据库软件和数据文件路径都存放在/data路径下。

    查看本机环境磁盘空间:

    # df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/system-root   50G   11G   40G  21% /
    devtmpfs                 1.5G     0  1.5G   0% /dev
    tmpfs                    1.5G     0  1.5G   0% /dev/shm
    tmpfs                    1.5G  8.5M  1.5G   1% /run
    tmpfs                    1.5G     0  1.5G   0% /sys/fs/cgroup
    /dev/sda1                197M  107M   90M  55% /boot
    /dev/mapper/data-data     40G  5.5G   35G  14% /data
    tmpfs                    301M     0  301M   0% /run/user/0
    

    软件环境检查

    • 软件包需求

    根据官方文档的描述,得出需要安装的软件包如下:

    binutils-2.23.52.0.1-12.el7.x86_64 
    compat-libcap1-1.10-3.el7.x86_64 
    compat-libstdc++-33-3.2.3-71.el7.i686
    compat-libstdc++-33-3.2.3-71.el7.x86_64
    gcc-4.8.2-3.el7.x86_64 
    gcc-c++-4.8.2-3.el7.x86_64 
    glibc-2.17-36.el7.i686 
    glibc-2.17-36.el7.x86_64 
    glibc-devel-2.17-36.el7.i686 
    glibc-devel-2.17-36.el7.x86_64 
    ksh
    libaio-0.3.109-9.el7.i686 
    libaio-0.3.109-9.el7.x86_64 
    libaio-devel-0.3.109-9.el7.i686 
    libaio-devel-0.3.109-9.el7.x86_64 
    libgcc-4.8.2-3.el7.i686 
    libgcc-4.8.2-3.el7.x86_64 
    libstdc++-4.8.2-3.el7.i686 
    libstdc++-4.8.2-3.el7.x86_64 
    libstdc++-devel-4.8.2-3.el7.i686 
    libstdc++-devel-4.8.2-3.el7.x86_64 
    libXi-1.7.2-1.el7.i686 
    libXi-1.7.2-1.el7.x86_64 
    libXtst-1.2.2-1.el7.i686 
    libXtst-1.2.2-1.el7.x86_64 
    make-3.82-19.el7.x86_64 
    sysstat-10.1.5-1.el7.x86_64
    

    检查本机环境软件包安装情况:

    # rpm -q binutils 
    > compat-libcap1 
    > compat-libstdc++-33 
    > gcc 
    > gcc-c++  
    > glibc 
    > glibc-devel 
    > ksh 
    > libaio 
    > libaio-devel 
    > libgcc 
    > libstdc++ 
    > libstdc++-devel 
    > libXi 
    > libXtst 
    > make 
    > sysstat
    binutils-2.27-27.base.el7.x86_64
    --package compat-libcap1 is not installed
    --package compat-libstdc++-33 is not installed
    gcc-4.8.5-28.el7_5.1.x86_64
    gcc-c++-4.8.5-28.el7_5.1.x86_64
    glibc-2.17-222.el7.x86_64
    glibc-devel-2.17-222.el7.x86_64
    --package ksh is not installed
    libaio-0.3.109-13.el7.x86_64
    libaio-devel-0.3.109-13.el7.x86_64
    libgcc-4.8.5-28.el7_5.1.x86_64
    libstdc++-4.8.5-28.el7_5.1.x86_64
    libstdc++-devel-4.8.5-28.el7_5.1.x86_64
    --package libXi is not installed
    --package libXtst is not installed
    make-3.82-23.el7.x86_64
    --package sysstat is not installed
    

    使用yum安装缺失的软件包:

    # yum install compat-libcap1 compat-libstdc++-33 ksh libXi libXtst sysstat
    

    驱动软件包安装:

    # yum install unixODBC unixODBC-devel
    

    创建系统用户及用户组

    • 创建用户组oinstall和dba
    # /usr/sbin/groupadd oinstall
    # /usr/sbin/groupadd dba
    
    # grep oinstall /etc/group
    oinstall:x:1000:
    
    # grep dba /etc/group
    dba:x:1001:
    
    • 创建用户oracle
    # /usr/sbin/useradd -g oinstall -G dba oracle
    
    # id oracle
    uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)
    
    • 为用户oracle设置密码

    这里为Oracle用户设置密码为:oracle

    # passwd oracle
    Changing password for user oracle.
    New password:          # 输入oracle
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password:   # 再次确认为 oracle
    passwd: all authentication tokens updated successfully.
    

    配置内核参数及资源限制选项

    编辑文件 /etc/sysctl.conf,在文件末尾添加如下配置:

    # Oracle Setting
    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
    

    使配置生效:

    # sysctl -p
    

    编辑文件 /etc/security/limits.conf,在文件末尾添加如下配置:

    # Oracle Setting
    oracle soft nproc 10240
    oracle hard nproc 65535
    oracle soft nofile 10240
    oracle hard nofile 65536
    oracle soft stack 10240
    

    编辑文件 /etc/pam.d/login,在文件末尾添加如下配置:

    # Oracle Setting
    session     required        pam_limits.so
    

    编辑文件 /etc/profile,在文件末尾添加如下配置:

    # Oracle Setting
    if [ $USER = "oracle" ]; then
            if [ $SHELL = "/bin/ksh" ]; then
                    ulimit -p 16384
                    ulimit -n 65536
            else
                    ulimit -u 16384 -n 65536
            fi
    fi
    

    编辑文件 /etc/csh.login,在文件末尾添加如下配置:

    # Oracle Setting
    if ( $USER == "oracle") then
            limit maxproc 16384
            limit descriptors 65536
    endif
    

    创建相关目录

    • 创建ORACLE_BASE目录
    # mkdir -p /data/app/oracle
    # chown -R oracle.oinstall /data/app/
    # chmod -R 755 /data/app/oracle/
    
    • 创建ORACLE_HOME目录
    # su - oracle
    $ mkdir -p /data/app/oracle/product/11.2.0/db_1
    
    • 创建Inventory目录
    # su - oracle
    $ mkdir -p /data/app/oraInventory
    

    配置Oracle用户环境变量

    编辑文件 /home/oracle/.bash_profile,在文件末尾添加如下配置(忽略注释信息):

    # Oracle Setting
    umask 022
    export ORACLE_BASE=/data/app/oracle/                     #Oracle Base目录
    export ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1  #Oracle Home目录
    export ORACLE_SID=dbabd                                  #实例SID
    export PATH=$PATH:$ORACLE_HOME/bin                       #命令加入系统环境变量中
    #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"         #如果需要中文显示设置这项,如果是英文则设置成下面这项,最好是英文以避免不必要的麻烦。
    export NLS_LANG="AMERICAN_AMERICA.UTF8"  
    export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
    alias sqlplus='rlwrap sqlplus'                           #命令history readline功能,需要另外安装rlwrap的rpm包
    alias rman='rlwrap rman'
    

    准备数据库安装文件

    • 上传安装文件
    # rz
    rz waiting to receive.
    Upload Zmodem
    p13390677_112040_Linux-x86-64_1of7.zip                                                  (1330.93 MB, 0:48 min = 27.73 MB/sec)
    p13390677_112040_Linux-x86-64_2of7.zip                                                  (1097.97 MB, 0:45 min = 24.40 MB/sec)
    
    • 解压安装文件
    # unzip p13390677_112040_Linux-x86-64_1of7.zip -d /tmp/
    # unzip p13390677_112040_Linux-x86-64_2of7.zip -d /tmp/
    # chown -R oracle.oinstall /tmp/database/
    

    response file(响应文件)准备

    /tmp/database/response/目录下有一份响应文件模板,复制一份至 /data/app目录下编辑:

    $ cd /tmp/database/response/
    $ ls
    dbca.rsp  db_install.rsp  netca.rsp
    $ cp db_install.rsp /data/app/dbabd_install.rsp -ra
    

    修改后的响应文件内容如下,清除了多余的空行和注释语句。

    $ cd /data/app/
    $ sed -i 's/^#.*$//g' dbabd_install.rsp
    $ sed -i '/^$/d' dbabd_install.rsp
    

    文件dbabd_install.rsp修改后如下(实际文件中无以下注释语句):

    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
    oracle.install.option=INSTALL_DB_SWONLY                        # 只安装数据库软件
    ORACLE_HOSTNAME=dbabd                                          # 主机名
    UNIX_GROUP_NAME=oinstall                                       # 用户组
    INVENTORY_LOCATION=/data/app/oraInventory                      # Inventory目录
    SELECTED_LANGUAGES=en,zh_CN                                    # 支持语言
    ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1               # ORACLE_HOME目录
    ORACLE_BASE=/data/app/oracle/                                  # ORACLE_BASE目录
    oracle.install.db.InstallEdition=EE                            # 安装版本
    oracle.install.db.EEOptionsSelection=false
    oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=
    oracle.install.db.CLUSTER_NODES=
    oracle.install.db.isRACOneInstall=
    oracle.install.db.racOneServiceName=
    oracle.install.db.config.starterdb.type=
    oracle.install.db.config.starterdb.globalDBName=
    oracle.install.db.config.starterdb.SID=
    oracle.install.db.config.starterdb.characterSet=AL32UTF8
    oracle.install.db.config.starterdb.memoryOption=true
    oracle.install.db.config.starterdb.memoryLimit=
    oracle.install.db.config.starterdb.installExampleSchemas=false
    oracle.install.db.config.starterdb.enableSecuritySettings=true
    oracle.install.db.config.starterdb.password.ALL=
    oracle.install.db.config.starterdb.password.SYS=
    oracle.install.db.config.starterdb.password.SYSTEM=
    oracle.install.db.config.starterdb.password.SYSMAN=
    oracle.install.db.config.starterdb.password.DBSNMP=
    oracle.install.db.config.starterdb.control=DB_CONTROL
    oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
    oracle.install.db.config.starterdb.automatedBackup.enable=false
    oracle.install.db.config.starterdb.automatedBackup.osuid=
    oracle.install.db.config.starterdb.automatedBackup.ospwd=
    oracle.install.db.config.starterdb.storageType=
    oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
    oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
    oracle.install.db.config.asm.diskGroup=
    oracle.install.db.config.asm.ASMSNMPPassword=
    MYORACLESUPPORT_USERNAME=
    MYORACLESUPPORT_PASSWORD=
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=
    DECLINE_SECURITY_UPDATES=true                                  # 该选项默认为false,需要改成true,忽略安全性更新
    PROXY_HOST=
    PROXY_PORT=
    PROXY_USER=
    PROXY_PWD=
    PROXY_REALM=
    COLLECTOR_SUPPORTHUB_URL=
    oracle.installer.autoupdates.option=
    oracle.installer.autoupdates.downloadUpdatesLoc=
    AUTOUPDATES_MYORACLESUPPORT_USERNAME=
    AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
    

    关于响应文件更详细信息可参考官方文档:Customizing and Creating Response Files

    开始安装

    安装时需要切换到oracle用户执行如下命令:

    $ /tmp/database/runInstaller -silent -force -ignorePrereq -ignoreSysPrereqs -responseFile /data/app/dbabd_install.rsp
    

    输出如下:

    Starting Oracle Universal Installer...
    
    Checking Temp space: must be greater than 120 MB.   Actual 35541 MB    Passed
    Checking swap space: must be greater than 150 MB.   Actual 5119 MB    Passed
    Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-01-09_04-59-02PM. Please wait ...[oracle@dbabd ~]$ You can find the log of this install session at:
     /data/app/oraInventory/logs/installActions2019-01-09_04-59-02PM.log
    The installation of Oracle Database 11g was successful.
    Please check '/data/app/oraInventory/logs/silentInstall2019-01-09_04-59-02PM.log' for more details.
    
    As a root user, execute the following script(s):
            1. /data/app/oraInventory/orainstRoot.sh
            2. /data/app/oracle/product/11.2.0/db_1/root.sh
    
    
    Successfully Setup Software.
    

    根据输出内容,需要root用户执行两个脚本:

    # /data/app/oraInventory/orainstRoot.sh
    Changing permissions of /data/app/oraInventory.
    Adding read,write permissions for group.
    Removing read,write,execute permissions for world.
    
    Changing groupname of /data/app/oraInventory to oinstall.
    The execution of the script is complete.
    
    # /data/app/oracle/product/11.2.0/db_1/root.sh
    Check /data/app/oracle/product/11.2.0/db_1/install/root_dbabd_2019-01-09_17-04-17.log for the output of root script
    

    配置监听

    不只是安装数据库软件可以采取静默方式安装,同样,之前采用netca命令配置数据库监听现在也可以通过静默方式进行配置。与数据库软件相同的都是采用response file(响应文件)方式来安装。

    • 复制编辑响应文件

    监听的响应文件可以保持默认,即跟默认模板文件一致。

    $ cp /tmp/database/response/netca.rsp /data/app/dbabd_netca.rsp -ra
    $ sed -i 's/^#.*$//g' /data/app/dbabd_netca.rsp
    $ sed -i '/^$/d' /data/app/dbabd_netca.rsp
    

    文件dbabd_netca.rsp修改后如下(实际文件中无以下注释语句):

    [GENERAL]
    RESPONSEFILE_VERSION="11.2"
    CREATE_TYPE="CUSTOM"
    [oracle.net.ca]
    INSTALLED_COMPONENTS={"server","net8","javavm"}
    INSTALL_TYPE=""typical""
    LISTENER_NUMBER=1
    LISTENER_NAMES={"LISTENER"}        # 监听名称
    LISTENER_PROTOCOLS={"TCP;1521"}    # 监听端口
    LISTENER_START=""LISTENER""
    NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
    NSN_NUMBER=1
    NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
    NSN_SERVICE={"PLSExtProc"}
    NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
    
    • 静默配置监听

    在oracle用户下执行如下命令:

    $ $ORACLE_HOME/bin/netca /silent /responsefile /data/app/dbabd_netca.rsp
    

    输出如下:

    Parsing command line arguments:
        Parameter "silent" = true
        Parameter "responsefile" = /data/app/dbabd_netca.rsp
    Done parsing command line arguments.
    Oracle Net Services Configuration:
    Profile configuration complete.
    Oracle Net Listener Startup:
        Running Listener Control:
          /data/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
        Listener Control complete.
        Listener started successfully.
    Listener configuration complete.
    Oracle Net Services configuration successful. The exit code is 0
    

    查看监听状态:

    $ lsnrctl status
    
    LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 09-JAN-2019 17:12:19
    
    Copyright (c) 1991, 2013, Oracle.  All rights reserved.
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
    Start Date                09-JAN-2019 17:09:20
    Uptime                    0 days 0 hr. 02 min. 58 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /data/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
    Listener Log File         /data/app/oracle/diag/tnslsnr/dbabd/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbabd)(PORT=1521)))
    The listener supports no services
    The command completed successfully
    

    安装完成

    至此,静默安装Oracle 11g R2数据库软件以及配置监听就完成了,可以看出静默安装有如下优点:

    1. 安装速度更快,提高了部署的效率;
    2. 不像图形界面安装方式需要人工干预,安装选项通过响应文件传递给安装程序执行;
    3. 减少操作系统资源消耗,避免安装更多的软件包。

    参考

    https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm
    https://docs.oracle.com/cd/E11882_01/em.112/e12255/toc.htm

    ☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆

  • 相关阅读:
    Linux下find命令详解
    shell if语句
    目标文件系统映像制作工具mkyaffs2image
    编译内核
    FPS含义
    linux下echo命令详解
    Mssql数据库语句综合
    string 字符串操作
    Lession 15 Good news
    Mysql使作心得(备份,还原,乱码处理)
  • 原文地址:https://www.cnblogs.com/dbabd/p/10245912.html
Copyright © 2020-2023  润新知