之前安装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

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

CentOS 7静默安装Oracle 11g R2数据库软件的更多相关文章

  1. Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2

    1:安装好centos 7 操作系统: 虚拟机安装centos 7,在vmware中一步步来就可以成功. 2:安装vim 最小化安装的系统只有vi编辑器,这里装一下vim,个人习惯,可以不安装, 那么 ...

  2. Centos 6.5 安装Oracle 11g R2 on vbox

    由于上一篇的rac安装,截图较多,这一篇选择以txt的方式叙述,另外上一篇的时间比较久远,这里最近从新安装 --2018-10-29 1 os环境初始化 [root@rac1 yum.repos.d] ...

  3. centos 7 下面安装oracle 11g r2 过程分享

    本人对LINUX等很多还不熟悉,如果有不对的地方还请各位指正.谢谢. 打算学习下ORACLE,RMAN备份与还原功能,所以安装了虚拟机,用的是centos7 X86_64-1611版本,oracle用 ...

  4. CentOS 6.5 安装Oracle 11G R2问题列表

    1. 文章中写vi/etc/profile #这个很重要 if [ $USER ="oracle" ]; then     if [ $SHELL="/bin/ksh&q ...

  5. linux 6.4平台利用rman迁移oracle 11g r2数据库

    测试环境分别在虚拟机安装A,B主机 系统:linux 6.4, 数据库:oracle 11g r2 A主机:安装oracle 11g r2数据库 B主机:只安装oracle 11g r2软件 第一步, ...

  6. Redhat Linux 下安装Oracle 11g R2

    能够下载:http://download.csdn.net/detail/ykh554541184/8086647文档方便查阅 官方文档:http://docs.oracle.com/cd/E1188 ...

  7. centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例

    centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例 一.监听配置(命令:netca) 1.以 oracle 用户输入命令,启动图形化工具配置监听 [oracle@lo ...

  8. centos 安装oracle 11g r2(一)-----软件安装

    centos 安装oracle 11g r2(一)-----软件安装 1.进入管理员权限 [anzerong@localhost ~]# su - root password [root@localh ...

  9. centos 安装oracle 11g r2(三)-----表空间创建

    centos 安装oracle 11g r2(三)-----表空间创建 创建表空间前要保证监听与数据库实例已经启动 1.启动监听 [oracle@localhost ~]$ lsnrctl start ...

随机推荐

  1. Mysql 索引问题-日期索引使用

    这两天发现原来的查询效率慢了,使用explain 查看,居然没有使用索引,我的索引是日期类型的,首先想到的是mysql对日期类型的索引的处理机制是不是不同,在where条件里试了几种,发现效果都差不多 ...

  2. Apache与php快速部署web服务

    [本文出自天外归云的博客园] 在一台服务器上临时起个web服务,读取服务器上的cfs文件内容并显示在页面上,做一个简单的web请求处理. 首先找到apache,在conf文件夹下vi httpd.co ...

  3. linux php --ini

    $ php --ini

  4. 【nodejs】初识 NodeJS(二)

    上一节我们构建了一个基础的 http 服务器,我们可以接收 http 请求,但是我们得做点什么吧 – 不同的 http 请求,服务器应该有不同的响应. 路由模块 处理不同的 http 请求在我们的代码 ...

  5. js插件解读

    1.calendar.js:日期插件:2.html5shiv.js:用于解决IE9以下版本浏览器对HTML5新增标签不识别,并导致CSS不起作用的问题的js文件:3.jquery.js里的代码是没有进 ...

  6. CF 977E Cyclic Components

    E. Cyclic Components time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  7. Linux下的at定时执行任务命令详解

    之前说了使用crontab实现定时执行任务,假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了.一.at服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下 ...

  8. MapReduce Map数 reduce数设置

    JobConf.setNumMapTasks(n)是有意义的,结合block size会具体影响到map任务的个数,详见FileInputFormat.getSplits源码.假设没有设置mapred ...

  9. 类似于Mimikatz的Linux Hash Dump工具

    项目主页 https://github.com/huntergregal/mimipenguin 需要root权限 支持 Kali 4.3.0 (rolling) x64 (gdm3) Ubuntu ...

  10. CF3A Shortest path of the king

    The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, becaus ...