linux oracle 19c 静默安装

news2025/4/23 18:48:19

oracle数据库有个比较很抓瞎的事情,不同的版本搭建的大致流程是一样的,但是在实操细节上会有不同,比如操作的脚本位置和配置项等等,这些会变,所以需要时常积累不同版本的文档

这里有一点要说明,之所以使用静默安装,除了它的安装成功率高之外,还有一个最根本的原因是图形化以及命令行非静默安装时需要你的服务器和系统支持11X图像协议,这个东西很麻烦!很麻烦!没有的话oracle不会报错,但是会自己终止按照进程,并提示你DISPLAY not set. Please set the DISPLAY and try again

本次安装的需要的环境如下

CentOS 7 X86 64位
LINUX.X64_193000_db_home.zip (19c的安装包下载好就叫这个名字)
配置好静态ip
关闭防火墙
关闭SELinux

下载链接:https://pan.baidu.com/s/1R3auWmGDfuNvvBGzgf1D8Q?pwd=vwwg 或者去官网下载

第一步:配置合适的yum源,一般用阿里源就行,随后安装需要的yum环境

yum install -y unzip bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat net-tools gcc gcc-c++ gcc-info gcc-locale gcc48 gcc48-info gcc48-locale gcc48-c++ libXp

第二步:准备oracle用户和组

groupadd oracle
groupadd dba
useradd -g oracle -G dba oracle

passwd oracle
设置密码

第三步:修改内核参数

vi /etc/sysctl.conf

追加:
#系统异步I/O (AIO) 请求的最大数量
fs.aio-max-nr = 1048576
#整个linux系统全局最大可使用文件句柄数
fs.file-max = 6815744
#共享内存最大总页数,页(Page) 为单位,通常一页大小为 4KB
kernel.shmall = 2097152
#单个共享内存段的最大大小
#kernel.shmmax 一般设置成服务器内存的一半,单位为字节
kernel.shmmax = 1073741824
#共享内存段的最大数量
kernel.shmmni = 4096
#配置信号量参数(格式:SEMMSL SEMMNS SEMOPM SEMMNI)。防止数据库因信号量不足导致进程阻塞
#SEMMSL:每个信号量集合的最大信号量数(250)。
#SEMMNS:系统总信号量数(32000)。
#SEMOPM:单次操作可处理的信号量数(100)。
#SEMMNI:信号量集合的最大数量(128)。
kernel.sem = 250 32000 100 128
#本地TCP/UDP端口的可用范围
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

第四步:修改用户限制

vi /etc/security/limits.conf

追加
#用户操作的线程数到达多少后给警告
oracle soft nproc 2047
#用户操作的线程数到达多少后不在允许新增线程
oracle hard nproc 16384
#下面两个是可操作的文件句柄个数限制
oracle soft nofile 1024
oracle hard nofile 65536
#栈空间软限制10M
oracle soft stack 10240
#下面两个是允许生成的核心转储文件大小,unlimited是不限制
#oracle soft core unlimited
#oracle hard core unlimited
#允许最多占用多少物理内存,单位:KB
oracle soft memlock 50000000
oracle hard memlock 50000000

第五步:修改用户登录认证

vi /etc/pam.d/login

追加:
session required /lib64/security/pam_limits.so
session required pam_limits.so

系统环境变量中加入下面内容

vi /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 

生效环境变量
source /etc/profile

第六步:创建安装目录,把它赋予oracle,并切换oracle用户操作后续的步骤,这里要注意19c的安装路径,也就是ORACLE_HOME,就是安装包解压的那个路径,不要改变,所以这里建的啥,你后面就解压到哪里就行。在我之前的11g安装方法里,之所以我只动了响应文件而安装包放在另外一个地方也能安装,是因为使用命令忽略了检查信息,但是一般情况安装完之后,安装包解压路径下的东西一般没有人删除,除非是确定真的没有用了,释放资源才会删掉,而且放在一个统一的路径下,也方便好找需要的资源,当然如果你有释放资源的需求你可以去参考我发的11g安装怎么用的命令

mkdir -p /opt/oracleData/oracle19c

mkdir /opt/oracleData/inventory

chown -R oracle:oracle /opt/oracleData

chmod -R 775 /opt/oracleData

su oracle

第七步:更改oracle用户的环境变量文件

vi .bash_profile

追加:
ORACLE_BASE=/opt/oracleData

ORACLE_HOME=$ORACLE_BASE/oracle19c

ORACLE_SID=orcl

LD_LIBRARY_PATH=$ORACLE_HOME/lib

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH
source .bash_profile

第八步:将19c的安装包上传到/opt/oracleData目录,并确保安装包的所有权是oracle用户,一定要确保所有权,在11g版本的时候只需要单独操作响应文件就行,但是19c整个包不在一起会出现问题

通过lrzsz 或者 scp都行,上传方式自己决定

解压:
unzip LINUX.zip -d /opt/oracleData/oracle19c

第九步:19c的静默安装需要的文件在解压路径/install下,进入其中修改对应的配置文件

cd /opt/oracleData/oracle19c/install/response

vi db_install.rsp

按照你准备的路径和用户,更改如下内容

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oracle
INVENTORY_LOCATION=/opt/oracleData/inventory
ORACLE_HOME=/opt/oracleData/oracle19c
ORACLE_BASE=/opt/oracleData
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.SID=orcl

第十步:回到解压目录下,运行静默安装

cd /opt/oracleData/oracle19c

./runInstaller -silent -responseFile /opt/oracleData/oracle19c/install/response/db_install.rsp -ignorePrereq

出现如下输出则服务安装成功
在这里插入图片描述
第十一步:按照上面的提示,切换到root用户,执行上面的两个脚本
在这里插入图片描述
第十二步:同样使用静默方式,配置监听

在root用户下安装nc

yum install -y nc

切换回oracle用户,从新生效一下环境变量,因为前面配置的时候还没有安装,有些东西可能会加载不上

source .bash_profile

oracle19c的监听,有个很无奈的事情,就是初始化监听用到的响应文件,并没有直接在response目录下提供,而是在$ORACLE_HOME/network/install/netca_clt.rsp,而且文件中只有最基本的一些配置项,初始化后不会像11g那样自动启动,需要手动启监听

/opt/oracleData/oracle19c/bin/netca /silent /responseFile /opt/oracleData/oracle19c/network/install/netca_clt.rsp

上面的初始化完成之后,手动启动的命令在ORACLE_HOME/bin/lsnrctl

/opt/oracleData/oracle19c/bin/lsnrctl start LISTENER

然后就可以用nc工具查看到监听进程了

[oracle@node3 samples]$ netstat -tnulp | grep 1521
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1521                 :::*                    LISTEN      8408/tnslsnr 

第十三步:初始化数据库实例

和监听用的响应文件一样,19c并没有和11g那样在安装包中给你预留好初始化数据库实例用的响应文件,因此需要自己搞一个。注意从12c开始oracle引进了基于容器的多租户可插拔数据库(CBD),可以通俗的理解为在一个基础数据库架构(CBD)上运行多租户模式的容器数据库(PDB),我们个人自己使用不需要用这个,因为它的运维很复杂,个人使用也用不到,如果未来你要使用21以上的就必须考虑CDB的搭建方式了,因为可能会在未来仅支持容器化的数据库

自己在一个目录下建一个dbca.rsp文件,注意文件名别改,并写入如下内容

gdbName=orcl.test
sid=orcl
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=123456
systemPassword=123456
characterSet=AL32UTF8
totalmemory=1680

然后用这个响应文件去初始化数据库

/opt/oracleData/oracle19c/bin/dbca -silent  -createDatabase -responseFile /opt/oracleData/oracle19c/install/response/dbca.rsp

初始化进程结束后,查询一下已有的实例进程

[oracle@node3 response]$ ps -ef | grep ora_ | grep -v grep
oracle     7721      1  0 22:55 ?        00:00:00 ora_pmon_orcl
oracle     7723      1  0 22:55 ?        00:00:00 ora_clmn_orcl
oracle     7725      1  0 22:55 ?        00:00:00 ora_psp0_orcl
oracle     7728      1  0 22:55 ?        00:00:04 ora_vktm_orcl
oracle     7732      1  0 22:55 ?        00:00:00 ora_gen0_orcl
oracle     7734      1  0 22:55 ?        00:00:00 ora_mman_orcl
oracle     7738      1  0 22:55 ?        00:00:00 ora_gen1_orcl
oracle     7741      1  0 22:55 ?        00:00:00 ora_diag_orcl
oracle     7743      1  0 22:55 ?        00:00:00 ora_ofsd_orcl
oracle     7746      1  0 22:55 ?        00:00:00 ora_dbrm_orcl
oracle     7748      1  0 22:55 ?        00:00:00 ora_vkrm_orcl
oracle     7750      1  0 22:55 ?        00:00:00 ora_svcb_orcl
oracle     7752      1  0 22:55 ?        00:00:00 ora_pman_orcl
oracle     7754      1  0 22:55 ?        00:00:00 ora_dia0_orcl
oracle     7756      1  0 22:55 ?        00:00:00 ora_dbw0_orcl
oracle     7758      1  0 22:55 ?        00:00:00 ora_lgwr_orcl
oracle     7760      1  0 22:55 ?        00:00:00 ora_ckpt_orcl
oracle     7762      1  0 22:55 ?        00:00:00 ora_lg00_orcl
oracle     7764      1  0 22:55 ?        00:00:00 ora_smon_orcl
oracle     7766      1  0 22:55 ?        00:00:00 ora_lg01_orcl
oracle     7768      1  0 22:55 ?        00:00:00 ora_smco_orcl
oracle     7770      1  0 22:55 ?        00:00:00 ora_reco_orcl
oracle     7772      1  0 22:55 ?        00:00:00 ora_w000_orcl
oracle     7774      1  0 22:55 ?        00:00:00 ora_lreg_orcl
oracle     7776      1  0 22:55 ?        00:00:00 ora_w001_orcl
oracle     7778      1  0 22:55 ?        00:00:00 ora_pxmn_orcl
oracle     7782      1  0 22:55 ?        00:00:00 ora_mmon_orcl
oracle     7784      1  0 22:55 ?        00:00:00 ora_mmnl_orcl
oracle     7786      1  0 22:55 ?        00:00:00 ora_d000_orcl
oracle     7788      1  0 22:55 ?        00:00:00 ora_s000_orcl
oracle     7790      1  0 22:55 ?        00:00:00 ora_tmon_orcl
oracle     7796      1  0 22:55 ?        00:00:00 ora_m000_orcl
oracle     7798      1  0 22:55 ?        00:00:00 ora_m001_orcl
oracle     7804      1  0 22:55 ?        00:00:00 ora_tt00_orcl
oracle     7806      1  0 22:55 ?        00:00:00 ora_tt01_orcl
oracle     7808      1  0 22:55 ?        00:00:00 ora_tt02_orcl
oracle     7810      1  0 22:55 ?        00:00:00 ora_aqpc_orcl
oracle     7812      1  0 22:55 ?        00:00:00 ora_cjq0_orcl
oracle     7819      1  0 22:55 ?        00:00:00 ora_p000_orcl
oracle     7821      1  0 22:55 ?        00:00:00 ora_p001_orcl
oracle     7823      1  0 22:55 ?        00:00:00 ora_p002_orcl
oracle     7825      1  0 22:55 ?        00:00:00 ora_p003_orcl
oracle     7827      1  0 22:55 ?        00:00:00 ora_p004_orcl
oracle     7829      1  0 22:55 ?        00:00:00 ora_p005_orcl
oracle     7831      1  0 22:55 ?        00:00:00 ora_p006_orcl
oracle     7833      1  0 22:55 ?        00:00:00 ora_p007_orcl
oracle     7835      1  0 22:55 ?        00:00:00 ora_p008_orcl
oracle     7837      1  0 22:55 ?        00:00:00 ora_p009_orcl
oracle     7839      1  0 22:55 ?        00:00:00 ora_p00a_orcl
oracle     7841      1  0 22:55 ?        00:00:00 ora_p00b_orcl
oracle     8021      1  0 22:55 ?        00:00:00 ora_w002_orcl
oracle     8023      1  0 22:55 ?        00:00:00 ora_m002_orcl
oracle     8069      1  0 22:55 ?        00:00:00 ora_w003_orcl
oracle     8075      1  0 22:55 ?        00:00:00 ora_w004_orcl
oracle     8079      1  0 22:55 ?        00:00:00 ora_qm02_orcl
oracle     8083      1  0 22:55 ?        00:00:00 ora_q002_orcl
oracle     8085      1  0 22:55 ?        00:00:00 ora_q003_orcl
oracle     8127      1  0 22:56 ?        00:00:00 ora_m003_orcl

再检查一下监听状态

[oracle@node3 response]$ /opt/oracleData/oracle19c/bin/lsnrctl status

最后进入oracle,执行一条sql,正常输出结果,而不是提示oracle未初始化就搭建成功了

[oracle@node3 response]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Apr 19 23:09:55 2025
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> 

对于19c,在这里要重点说一下,实例化用到的响应文件能自己写是因为templateName=General_Purpose.dbc指定了一个oracle自带的模板,只需要指定其他必须修改的东西就行,比如密码和字符集。所以不要自己上手去直接写监听的响应文件,当然你可以尝试对比11g的,或者网上自己找找研究一下监听能改哪些东西

至于oracle启动和关闭,已经一些需要知道的基本常识,见我之前写的11g搭建文档-》oracle 11g 搭建文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 的 输入输出流(I/O Streams)

什么是输入输出流 C 的输入输出操作是通过 流(stream) 机制实现的。 流——就是数据的流动通道,比如: 输入流:从设备(如键盘、文件)读取数据 → 程序 输出流:程序将数据写入设备&…

电子电器架构 --- DFMEA设计失效模式和后果分析

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

Apache SeaTunnel:新一代开源、高性能数据集成工具

Apache SeaTunnel 是一款开源、分布式、高性能的数据集成工具,可以通过配置快速搭建数据管道,支持实时海量数据同步。 Apache SeaTunnel 专注于数据集成和数据同步,主要旨在解决数据集成领域的常见问题: 数据源多样性&#xff1a…

python+selenium+pytest自动化测试chrome driver版本下载

chrome浏览器chromedriver版本下载地址 https://googlechromelabs.github.io/chrome-for-testing/#stable

3.1 WPF使用MaterialDesign的介绍1

MaterialDesignInXAML Toolkit 是一个流行的开源 C# WPF 控件库,它实现了 Google 的 Material Design 规范,让开发者可以轻松创建现代化的 WPF 应用程序界面 Material Design 是一个流行的设计语言,由 Google 开发,旨在帮助开发者构建美观且一致的 UI 界面。对于使用 C# 的…

从 0 到 1 打通 AI 工作流:Dify+Zapier 实现工具自动化调用实战

一、引言:当 AI 遇到工具孤岛 在企业数字化转型的浪潮中,AI 工具的应用早已从单一的对话交互进阶到复杂的业务流程自动化。但开发者常常面临这样的困境:本地开发的 MCP 工具(如 ERP 数据清洗脚本、CRM 工单系统 API)如…

Spring Boot中`logging.config`配置项的详解及使用说明

以下是Spring Boot中logging.config配置项的详解及使用说明: 1. logging.config 作用 功能:指定自定义日志配置文件的路径,覆盖Spring Boot默认的日志配置。适用场景:当需要深度定制日志行为(如输出格式、文件路径、…

相机模型--CMOS和CCD的区别

1--CMOS和CCD的工作原理 CCD(Charge Coupled Device,电荷耦合器件): 1. 图像通过光电效应在感光单元中转化为电荷; 2. 每个像素上的电荷被依次“耦合”并传输到芯片的角落,通过一个或几个模拟输出放大器输…

el-date-picker时间范围 赋值报错问题

问题: 点击时间范围组件右边清除图标,点击近6小时会把设置好的时间赋值给时间范围组件 但是出现报错 原因: 尝试对null值进行属性设置操作:修改一个数组的元素,但此时这个数组是null,而不是预期的数组类型…

为啥低速MCU单板辐射测试会有200M-1Ghz的辐射信号

低速MCU(如8位或16位单片机)单板在辐射测试中出现 200MHz~1GHz的高频辐射信号,看似不合理,但实际上是由多种因素共同导致的。以下是详细原因分析及解决方案: 1.根本原因分析: (1) 时钟谐波与开关噪声 低速MCU的时钟谐…

【音视频】FFmpeg解封装

解封装 复用器,比如MP4/FLV 解复用器,MP4/FLV 封装格式相关函数 avformat_alloc_context(); 负责申请一个AVFormatContext结构的内存,并进行简单初始化avformat_free_context(); 释放该结构里的所有东西以及该结构本身avformat_close_input();关闭解复…

OpenLDAP 管理 ELK 用户

文章目录 一、新建 ELK 相关用户组二、配置 Elasticsearch2.1 修改 elasticsearch.yml 配置2.2 使用 API 接口建立角色和用户映射 三、Kibana 验证用户登录 一、新建 ELK 相关用户组 由于后续要将 LDAP 的用户与 ELK 的角色进行映射,所以需先创建几个以 ELK 的角色…

第十七届“华中杯”大学生数学建模挑战赛题目A题 晶硅片产销策略优化 完整成品 代码 模型 思路 分享

近年来,高纯度晶硅片需求的增长引发了更激烈的市场竞争。晶硅片企业需要在成本控制、利润优化和供需管理之间取得平衡,以提高经营效率和市场竞争力。晶硅片的生产是一个高能耗、高成本的过程,企业效益会受到原材料价格波动、市场需求变化以及…

网络层理解

网络层理解 网络层是 OSI 模型的第三层,主要负责 跨网络的数据传输,核心任务是 路由选择 和 分组转发。 网络层核心功能 网络层关键协议 协议作用示例IP (IPv4/IPv6)数据包路由和寻址192.168.1.1ICMP网络状态检测和错误报告ping、tracerouteOSPF/BGP动…

从Archery到NineData:积加科技驱动数据库研发效能与数据安全双升级

积加科技作为国内领先的企业级数字化解决方案服务商,依托自研的 A4X 数字化平台(https://a4x.io/),专注于为全球范围内的视觉物联网(IoT)设备提供 PaaS/SaaS 服务。致力于运用 AI 技术赋能物联网世界的各类…

开源Midjourney替代方案:企业级AI绘画+PPT生成系统+AI源码

「AI取代设计师?」开源Midjourney替代方案:企业级AI绘画PPT生成系统 ——零代码私有化部署,5倍速出图100%版权合规 设计师行业的危机与机遇 1. 传统设计流程的致命短板 痛点 人工设计 AI系统 单张海报耗时 3小时(含反复修改…

2025.04.20【Lollipop】| Lollipop图绘制命令简介

Customize markers See the different options allowing to customize the marker on top of the stem. Customize stems See the different options allowing to customize the stems. 文章目录 Customize markersCustomize stems Lollipop图简介R语言中的Lollipop图使用ggp…

【Harmony】常用工具类封装

文章目录 一,简介二,网络请求工具类2.1、鸿蒙原生http封装2.2、第三方axios封装(需提前下载依赖) 三、录音笔相关工具类3.1、录音封装(录入)3.2、录音封装(放音/渲染)3.3、文件写入封装(针对录音/放音功能) 四、RDB关系型数据库4.1、relationalStore简答…

DCDC芯片,boost升压电路设计,MT3608 芯片深度解析:从架构到设计的全维度技术手册

一、硬件架构解析:电流模式升压 converter 的核心设计 (一)电路拓扑与核心组件 MT3608 采用恒定频率峰值电流模式升压(Boost)转换器架构,核心由以下模块构成: 集成功率 MOSFET 内置 80mΩ 导通电阻的 N 沟道 MOSFET,漏极(Drain)对应引脚 SW,源极(Source)内部接…

Cline 之Plan和Act模式

Cline 提供了 "Plan & Act"双模式开发框架。适用在不同的场景。 一、核心模式理念 通过结构化开发流程提升AI编程效率,采用"先规划后执行"的核心理念。 该框架旨在帮助开发者构建更易维护、准确性更高的代码,同时显著缩短开发…