手记

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

 

作者:  H_Johnny出处:  https://www.cnblogs.com/dbabd/p/10245912.html  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。


0人推荐
随时随地看视频
慕课网APP