百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Centos离线静默安装 oracle11g,步骤细验证成功

csdh11 2025-04-23 23:22 18 浏览


一、 环境要求

1.1. 涉及工具及环境

1) CentOS7 64 位系统

2) oracle 安装包文件

a) linux.x64_11gR2_database_1of2.zip

b) linux.x64_11gR2_database_2of2.zip

3) oracle 安装依赖包,提前下载到一个文件夹中

binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-

common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel

make sysstat unixODBC unixODBC-devel(复制这些,手敲累哈)



1.2. Oracle 服务器要求

1) 最小内存 1G,推荐 2G 或 2G 以上

2 / 20

2) 1GB 跟 2GB 物理内存之间的,设定 swap 大小为物理内存的 1.5 倍

1. 2GB 跟 16GB 物理内存之间的,设置 swap 大小与物理内存相等

2. 16GB 物理内存以上的,设置 swap 大小为 16GB

3) 硬盘要求空间至少 5-6GB

硬件检测:

cat /etc/issue

uname -r (版本)

grep MemTotal /proc/meminfo (内存大小)

grep SwapTotal /proc/meminfo (交换区大小)

grep "model name" /proc/cpuinfo (CPU 信息)

free (可用内存)


二、 准备工作

2.1. 上传 oracle 11g 安装文件到服务器并解压(如果没有可以到官网免费下载实验)

安装包及其依赖包上传到/home/software/oraclefile 目录下,将安装包解压

/home/software/oraclefile

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

待解压完毕后会生成文件夹/home/software/oraclefile /database,里面是解压后的所有 oracle

安装文件。


2.2. 关闭 selinux

vim /etc/selinux/config 设置 SELINUX=disabled(永久关闭 selinux,但是需要重新启动系统)



setenforce 0 // ( 临 时 关 闭 selinux , 马 上 生 效 , 重 启 失 效 )



2.3. 关闭防火墙

systemctl stop firewalld.service //临时关闭防火墙



3 / 20

systemctl disable firewalld.service // 永 久 关 闭 防 火 墙



三、 安装步骤

3.1. 检查依赖包并手动安装

检查 oracle 依赖包缺失项:(ssh 连通后,复制以下内容即可,手动太累,检查完毕如果

有 not 找不到的依赖包,需要自己下载,再安装。或者上传一个 Centos 的 ISO 文件,配

置本地 yum 源进行安装,也就说,这些缺少的依赖都在 Centos 中可以找到)。

rpm -q elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-

headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel



进入到依赖包文件夹内,手动进行安装缺失包

cd
/home/software/oraclefile/Oracle11gRPMlinux/x86_64(文件夹名称可以自己命名,不影响以下安装)

rpm -ivh *.rpm –nodeps –force 强制安装依赖包


4 / 20

5 / 20

一共 39 个依赖包。

3.2. 添加 oracle 用户和用户组

groupadd oinstall //创建 oinstall 组

groupadd dba //创建 dba 组

useradd -g oinstall -G dba oracle //将 oracle 用户加入组 (-g 设置的是用户的主用户

组,这些信息记录在/etc/passwd 中,-G 设置的是用户附加组,记录在/etc/group 中)

passwd oracle //修改并设定 oracle 用户密码 (密码为 Pass@w0rd)


3.3. 修改内核参数配置文件

1) vi /etc/sysctl.conf 配置文件内加入修改以下参数,如果没有可以自己添加,如果默认值比

参考值大,则不需要修改。

fs.file-max= 6815744(系统所有进程一共可以打开文件的数量,一般为内存大小(KB)的

10%)

fs.aio-max-nr=1048576(同时可以拥有的异步 IO 请求数目)


net.ipv4.ip_local_port_range= 9000 65500(定义了网络连接可以用作其源(本地)端口的最

小和最大端口,适用于 TCP 和 UDP 连接)


6 / 20

net.core.rmem_default= 262144(内核套接字接收缓存区默认的大小)

net.core.rmem_max= 4194304(内核套接字接收缓存区最大值)

net.core.wmem_default= 262144(内核套接字发送缓存区默认的大小)

net.core.wmem_max= 1048576(内核套接字发送缓存区最大值)

kernel.sem= 250 32000 100 128(一共四组,组间有空格,250 信号集容纳的最大数量,32000

所有信号的最大数量,100 调用单个信号集中最大信号数量,128 信号集的最大值)


2)执行命令 sysctl 使其自检并生效 sysctl –p


3.4. 修改用户的限制文件

1) 修改进程数和最大会话数

执行如下命令,修改配置文件/etc/security/limits.conf

vi /etc/security/limits.conf 在文件尾部添加如下信息:

oracle soft nproc 2047(oracle 用户可用的最大进程数量软限制,可以增加,上限是 16384)

oracle hard nproc 16384(oracle 用户可用的最大进程数量硬限制)

oracle soft nofile 1024(oracle 用户可打开的文件描述符的最大数的软限制,可以增加,上

限是 65536)

oracle hard nofile 65536(oracle 用户可打开的文件描述符的最大数的硬限制)


7 / 20

2)设置关联信息

执行如下命令,修改关联文件/etc/pam.d/login

vi /etc/pam.d/login

在文件尾部添加如下信息:

session required /lib64/security/pam_limits.so

session required pam_limits.so


备注:64 位系统时,千万别写成
/lib/security/pam_limits.so,否则导致无法登录,这样才能使

设置生效。


3.5. 创建安装目录和设置文件权限

1)创建安装目录

mkdir /usr/local/oracle //数据库系统安装目录

mkdir /usr/local/oradata //数据库数据安装目录

mkdir /usr/local/oradata_back //数据备份目录

mkdir /usr/local/oraInventory //清单目录


2)赋予组用户及权限

chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata

(/usr/local/oracle 目录,/usr/local/oraInventory 目录,/usr/local/oradata 目录更改其所有

8 / 20

者为 oracle,所有组更改为 oinstall。)

chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata ( 目 录

/usr/local/oracle,目录/usr/local/oraInventory,目录/usr/local/oradata 下的所有文件包括子目

录的文件,所属组具有读 r,写 w,执行 x 的权限,所属者读 r,写 w,执行 x 的权限,其他用户

具 有 读 r, 执 行 x 的 权 限 , -R 是 连 同 子 目 录 一 起 赋 权 。 其 中 定 义 为

r=4,w=2,x=1,775=4+2+1,4+2+1,4+1)


3.6. 配置 oracle 用户环境变量

vi
/home/oracle/.bash_profile 文件内加入并修改至以下内容

export ORACLE_BASE=/usr/local/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin


保存退出后执行 source 命令立即生效:source .bash_profile

其中,export 是设置环境变量,source 是让环境变量立即生效。


3.7. 编辑静默安装响应文件


首先进入 oracle 用户:su – oracle(中间的横杠一定要加,是带环境变量)

1) 复制一份模板

cp -R
/home/software/oraclefile/database/response /usr/local/oracle( cp 命令相当于

windows 下的 copy 命令,-R 是连同子目录)

将 oracle 静默安装所需应答文件全部拷贝至 /usr/local/oracle 文件夹下


2) 修改安装所需的所有响应文件的所属组及权限

cd /usr/local/oracle/response

chown oracle:oinstall /usr/local/oracle/response/*.rsp

chmod 755 /usr/local/oracle/response/*.rsp


9 / 20


3) 配置 db_install.rsp 文件

vi /usr/local/oracle/response/db_install.rsp

文件内需要修改相应的参数配置如下:

oracle.install.option=INSTALL_DB_SWONLY #安装类型,只装数据库软件

ORACLE_HOSTNAME= localhost.localdomain #主机名称(命令 hostname 查询)

UNIX_GROUP_NAME=oinstall # 安装组

INVENTORY_LOCATION=/usr/local/oraInventory #INVENTORY 目录(**不填就是默认值,本

例此处需修改,因个人创建安装目录而定,我们之前的 3.5 中创建了这个目录)

SELECTED_LANGUAGES=en,zh_CN # 选择语言

ORACLE_HOME=
/usr/local/oracle/product/11.2.0/db_1 # oracle_home *路径根据目录

(需要手动配置路径)情况注意修改 本例安装路径/usr/local/oracle

ORACLE_BASE=/usr/local/oracle # oracle_base *注意修改


oracle.install.db.InstallEdition=EE # oracle 版本


oracle.install.db.isCustomInstall=false #自定义安装,否,使用默认组件


oracle.install.db.DBA_GROUP=dba #dba 用户组


oracle.install.db.OPER_GROUP=dba #oper 用户组

oracle.install.db.config.starterdb.password.SYS=Pass@w0rd

oracle.install.db.config.starterdb.password.SYSTEM= Pass@w0rd

DECLINE_SECURITY_UPDATES=true # **注意此参数 设定一定要为 true

(385 行)

4)需要创建一个目录 mkdir –p
/usr/local/oracle/product/11.2.0/db_1


3.8. 根据响应文件安装 oracle

在 oracle 用户下安装

su - oracle

$ cd /home/software/oraclefile/database/

$./runInstaller -silent –responseFile /usr/local/oracle/response/db_install.rsp -ignorePrereq

参数说明:

/home/database 是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而

异。

runInstaller 是主要安装脚本

-silent 静默模式

-force 强制安装

-ignorePrereq 忽略 warning 直接安装。

-responseFile 读取安装应答文件。


10 / 20

安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],

则安装程序已经停止了。

上图是提示权限不够,在 root 用户下再执行一遍

chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata

如果想查看错误日志,可以打开另一个终端,

执行 tail -100f
/usr/local/oraInventory/logs/installActions*.log

如果不需要看,可以不执行这一步。

下图是正常安装的过程,这个过程光标在闪烁,静静的等待即可,约 10 分钟左右


当出现以下界面时, 表示安装成功了,按照其提示操作。(静静的等待,光标在闪)


在新创建的 root 窗口内执行以下提示的脚本:

#cd /usr/local/oraInventory/

sh orainstRoot.sh(设置文件目录位置和拥有该目录的操作系统组)


11 / 20

#cd /usr/local/oracle/product/11.2.0/db_1/

sh root.sh (设置必要的操作系统权限,检查生成的日志文件)


3.9. 编辑静默建库响应文件

su – oracle

$cd /usr/local/oracle/response

$mv dbca.rsp dbca_orcl.rsp #改名为 dbca_数据库名.rsp


3.10. 静默配置监听(网络)

通 过 response 文 件 运 行 netca, 生 成 sqlnet.ora 和 listener.ora 文 件 , 位 于

$ORACLE_HOME/network/admin 目录下:

# su – oracle

$netca /silent /responsefile /usr/local/oracle/response/netca.rsp


12 / 20

$ ll $
ORACLE_HOME/network/admin/*.ora(这里是两个 LL,千万不要写成双竖杠或者两个II)

成功运行后,在
/user/local/oracle/product/11.2.0/db_1/network/admin 目录下生成 sqlnet.ora

和 listener.ora 两个文件


启动监听 $
/usr/local/oracle/product/11.2.0/db_1/bin/lsnrctl start


通过 netstat -tlnp 命令,看到

tcp 0 0 :::1521 :::* LISTEN 5477/tnslsnr(显示 tcp6)

说明监听器已经在 1521 端口上开始工作了。

netstart命令参数:

-t:tcp

-u:udp

l:列出有在 Listen (监听) 的服務状态

-n:拒绝显示别名,能显示数字的全部转化成数字

p:显示建立相关链接的程序名

3.11. 静默安装数据库(同时也建立一个对应的实例)


1)修改
/usr/local/oracle/response/dbca_orcl.rsp,设置如下:

RESPONSEFILE_VERSION = "11.2.0" #不能更改

OPERATION_TYPE = "createDatabase" #不能更改

GDBNAME="orcl "#78 行全局数据库的名字=SID+主机域名

SID="orcl" //149 行 SID 对应的实例名字

TEMPLATENAME = "General_Purpose.dbc" 169 行 #建库用的模板文件

SYSPASSWORD="Pass@w0rd" 190 行 #SYS 管理员密码


13 / 20

SYSTEMPASSWORE=" Pass@w0rd"#200 行//SYSTEM 管理员密码

DATAFILEDESTINATION= /usr/local/oradata 357 行//数据文件存放目录

RECOVERYAREADESTINATION=/usr/local/oradata_back 367 行#恢复数据存放目录

CHARACTERSET="AL32UTF8"#字符集,415 行,重要!!!建库后一般不能更改,所以建库前要

确定清楚

TOTALMEMORY= "5120" 540 行 #oracle 内存 5120MB,建议为物理内存 70%~85%


2)静默建库命令如下

$dbca -silent -responseFile /usr/local/oracle/response/dbca_orcl.rsp


3)查看日志文件:

$ cat
/usr/local/oracle/cfgtoollogs/dbca/orcl/orcl.log(此步不执行也可以)


4) 建库后实例检查


14 / 20

$ ps -ef | grep ora_ | grep -v grep| wc –l

21(我第一遍安装是 21 个进程,第二遍安装是 22 个进程,细想中……)

(ps –ef 查询所有进程,grep 通过管道来过滤,grep –v 是反向查询的意思,gerp –v grep 的

作用是除去包含 grep 的选项,wc –l 统计查询到的结果数量。)


$ps -ef | grep ora_


5) 建库后监听检查

$lsnrctl status


15 / 20


上图可以看到监听是成功的。

3.12. 修改 oracle 启动配置文件

su – oracle

$vi/etc/oratab



orcl:/usr/local/oracle/product/11.2.0/db_1:Y //把"N"改成"Y"

这样就可以通过 dbstart 启动此实例,监听器。


$dbshut $ORACLE_HOME

Processing Database instance"orcl": log file

/usr/local/oracle/product/11.2.0/db_1/shutdown.log


此时所有 oracle 的进程关闭,监听器也停止。

$dbstart $ORACLE_HOME

Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/startup.log


此时监听器工作,orcl 实例运行,再次查看监听器状态。

$lsnrctl status


16 / 20

四、 Linux 下建立 Oracle 服务及其开机自启动

以 root 身份建立开机启动 oracle 服务的脚本:vi/etc/init.d/oracle,添加如下脚本:


#!/bin/sh

#chkconfig: 2345 20 80

#description: Oracledbstart / dbshut

#以上两行为 chkconfig 所需

ORA_HOME=/usr/local/oracle/product/11.2.0/db_1

ORA_OWNER=oracle

LOGFILE=/var/log/oracle.log

Echo "#################################" >> ${LOGFILE}

date +"### %T%a %D: Run Oracle" >> ${LOGFILE}

if [ ! -f${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then

echo "Error: Missing the script file${ORA_HOME}/bin/dbstart or

${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}

echo"#################################" >> ${LOGFILE}

exit

fi

start(){

echo "###Startup Database..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbstart ${ORA_HOME}"

echo "###Done."

echo "###Run database control..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl start dbconsole"

echo "###Done."

}

stop(){

echo "###Stop databasecontrol..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl stop dbconsole"

echo "###Done."

echo "###Shutdown Database..."

su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbshut ${ORA_HOME}"

echo "###Done."/

}

case"$1" in

'start')

start >> ${LOGFILE}

;;

'stop')

stop >> ${LOGFILE}

;;

'restart')

stop >> ${LOGFILE}

17 / 20

start >> ${LOGFILE}

;;

esac

date +"### %T%a %D: Finished." >> ${LOGFILE}

echo "#################################" >> ${LOGFILE}

echo ""



18 / 20


脚本部分解释:

Chkconfig:2345 20 80,2345 表示系统运行级别是 2,3,4,5 时都启动此服务,20 是启动的

优先级,80 是关闭的优先级。如果启动优先级配置的数太小比如是 0,则有可能启动失

败,因为此时其所依赖的网络服务器还没有启动,从而导致启动失败。

description: Oracledbstart / dbshut 关于服务的说明,启动和关闭。

ORA_HOME=
/usr/local/oracle/product/11.2.0/db_1 这里的变量值是你自己安装 oracle 数据

库的安装路径,路径中你会找到 product,然后依次找到 db_1。

ORA_OWNER=oracle,owner 是属于 Oracle 用户.

使用如下命令将/etc/init.d/oracle 置为可执行文件:

chmod a+x/etc/init.d/oracle


至此,可使用如下命令对 oracle 进行启动和关闭

/etc/init.d/oracle start #启动 oracle(包括数据库实例、监听器、EM)

/etc/init.d/oracle stop #关闭 oracle

/etc/init.d/oracle restart #重启 oracle


19 / 20


su - root

将 oracle 添加到 chkconfig 中:

chkconfig --add oracle


可使用如下命令查看和设置 oracle 服务的开机启动级别:


chkconfig | grep oracle #查看 oracle 服务的开机启动级别



chkconfig –level 24 oracle off #修改 oracle 服务的开机启动级别


chkconfig –level 35 oracle on


chkconfig | grep oracle #查看 oracle 服务的开机启动级别


至此可使用如下命令对 oracle 的启动或关闭进行管理


service oracle start #启动

service oracle stop #关闭

service oracle restart #重启


20 / 20

建立连接:

ln –s /etc/init.d/oracle /etc/rc0.d/K01oracle #关机执行

ln –s /etc/init.d/oracle /etc/rc6.d/K01oracle #重启执行


五、 Linux 下 oracle 数据库启动和关闭操作

5.1. 启动 oracle 的步骤

Linux 下启动 Oracle 分为以下两步:

启动数据库实例,启动 lsnrctl 监听

1) 启动 oracle 数据库实例

以 system 用户身份登陆 oracle

在 oracle 用户下,输入 sqlplus /nolog

使用管理员权限 connect/as sysdba

启动/关闭服务

2) 启动 oracle 监听

数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监

听器:

登陆

root 登陆之后切换到 oracle 用户上,输入 su - oracle

检查 oracle 监听器运行状态

通过 lsnrctl status 命令查看;

启动监听,通过命令 lsnrctl start

5.2. 查看 oracle 服务是否已经启动

ps aux | grep ora_ #若无 ora_**_**相关的进程,则 oracle 数据库实例未启动

netstat -tlnup | grep 1521 #若无任何显示,则监听器未启动

lsnrctl status #查看监听器状态

netstat -tlnup | grep 1158 #若无任何显示,则 EM 未启动

emctl status dbconsole #查看 EM 状态


本次 em 未启动成功,但是不影响使用。

相关推荐

Github霸榜的SpringBoot全套学习教程,从入门到实战,内容超详细

前言...

SpringBoot+LayUI后台管理系统开发脚手架

源码获取方式:关注,转发之后私信回复【源码】即可免费获取到!项目简介本项目本着避免重复造轮子的原则,建立一套快速开发JavaWEB项目(springboot-mini),能满足大部分后台管理系统基础开...

Spring Boot+Vue全栈开发实战,中文版高清PDF资源

SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...

2021年超详细的java学习路线总结—纯干货分享

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础...

探秘Spring Cache:让Java应用飞起来的秘密武器

探秘SpringCache:让Java应用飞起来的秘密武器在当今快节奏的软件开发环境中,性能优化显得尤为重要。SpringCache作为Spring框架的一部分,为我们提供了强大的缓存管理能力,让...

3,从零开始搭建SSHM开发框架(集成Spring MVC)

目录本专题博客已共享在(这个可能会更新的稍微一些)https://code.csdn.net/yangwei19680827/maven_sshm_blog...

Spring Boot中如何使用缓存?超简单

SpringBoot中的缓存可以减少从数据库重复获取数据或执行昂贵计算的需要,从而显著提高应用程序的性能。SpringBoot提供了与各种缓存提供程序的集成,您可以在应用程序中轻松配置和使用缓...

我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊

接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...

1,从零开始搭建SSHM开发框架(环境准备)

目录本专题博客已共享在https://code.csdn.net/yangwei19680827/maven_sshm_blog1,从零开始搭建SSHM开发框架(环境准备)...

做一个适合二次开发的低代码平台,把程序员从curd中解脱出来-1

干程序员也有好长时间了,大多数时间都是在做curd。现在想做一个通用的curd平台直接将我们解放出来;把核心放在业务处理中。用过代码生成器,在数据表设计好之后使用它就可以生成需要的controller...

设计一个高性能Java Web框架(java做网站的框架)

设计一个高性能JavaWeb框架在当今互联网高速发展的时代,构建高性能的JavaWeb框架对于提升用户体验至关重要。本文将从多个角度探讨如何设计这样一个框架,让我们一起进入这段充满挑战和乐趣的旅程...

【推荐】强&牛!一款开源免费的功能强大的代码生成器系统!

今天,给大家推荐一个代码生成器系统项目,这个项目目前收获了5.3KStar,个人觉得不错,值得拿出来和大家分享下。这是我目前见过最好的代码生成器系统项目。功能完整,代码结构清晰。...

Java面试题及答案总结(2025版持续更新)

大家好,我是Java面试分享最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试场景题及答案。...

Java开发网站架构演变过程-从单体应用到微服务架构详解

Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构、集群架构、分布式架构、SOA架构和微服务架构。下面玄武老师来给大家详细介绍下这5种架构模式的发展背景、各自优缺点以及涉及到的...

本地缓存GuavaCache(一)(guava本地缓存原理)

在并发量、吞吐量越来越大的情况下往往是离不开缓存的,使用缓存能减轻数据库的压力,临时存储数据。根据不同的场景选择不同的缓存,分布式缓存有Redis,Memcached、Tair、EVCache、Aer...