怎样在RHEL 7上安装Grid与Oracle 19c

小静小哥_3027

小静小哥_3027

2026-10-01

665人浏览

原创

必须先装 grid infrastructure,再装 oracle database;因为19c的oracle用户、监听、asm及ocr/voting disk均依赖grid用户和gi_home,跳过gi会导致cvu验证失败、ora-15032等错误。

怎样在rhel 7上安装grid与oracle 19c

必须先装 Grid Infrastructure,再装 Oracle Database

Oracle 19c 在 RHEL 7 上不能跳过 Grid Infrastructure 单独安装数据库软件——哪怕你只部署单实例。这是因为 19c 的 oracle 用户默认由 Grid 管理,监听、ASM、OCR/Voting Disk(即使非 RAC)都依赖 grid 用户和 GI_HOME 下的二进制。跳过 Grid 直接跑 runInstaller 会卡在“CVU 验证失败”,报错 PRVF-4657 : Service "cvuqdisk" is not running 或 ORA-15032: not all alterations performed。

实操建议:

  • 下载两个独立压缩包:LINUX.X64_193000_grid_home.zip(Grid)和 LINUX.X64_193000_db_home.zip(Database),解压后分别进入目录执行安装
  • Grid 安装必须用 grid 用户(不能用 oracle),且该用户需属于 oinstall、asmadmin、asmdba、asmoper 四个组
  • 安装时选择 “Install and Configure Oracle Grid Infrastructure for a Standalone Server”,不是 “Set Up Oracle Grid Infrastructure for a Cluster”
  • 安装完成后,务必运行 /u01/app/19.0.0/grid/root.sh(路径以你实际 GI_HOME 为准),否则 crsctl check crs 会显示 CRS-4638: Oracle High Availability Services is online 但 ASM 实例起不来

udev 规则必须绑定 ASM 磁盘,否则 /dev/asm-* 不出现

RHEL 7.6 默认不识别裸设备为 ASM 磁盘,asmcmd lsdsk 返回空,CREATE DISKGROUP 报 ORA-15018: diskgroup cannot be created。根本原因不是磁盘没分区,而是 udev 没把 SCSI 设备映射成持久化 /dev/asm-disk* 名称。

实操建议:

  • 确认磁盘是否可用:lsblk 和 fdisk -l | grep -E '^Disk /dev/sd',挑出未挂载、无文件系统的盘(如 /dev/sdb)
  • 获取磁盘 WWID:/usr/lib/udev/scsi_id -g -u -d /dev/sdb(输出类似 36000c29d5b5a7e9e8f1a2b3c4d5e6f7)
  • 写 udev 规则:/etc/udev/rules.d/99-oracle-asmdevices.rules 中添加一行:KERNEL=="sd?", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c29d5b5a7e9e8f1a2b3c4d5e6f7", SYMLINK+="asm-disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
  • 重载规则:udevadm control --reload-rules && udevadm trigger,然后检查 ls -l /dev/asm-* 是否出现对应设备节点

cvuqdisk 包缺失会导致 gridSetup.sh 直接退出

很多教程说“RHEL 7 不需要 cvuqdisk”,这是错误的。Oracle 19c 的 gridSetup.sh 在非 RAC 模式下仍强制校验该包,缺失时直接报 ERROR: Could not execute command: /usr/bin/rpm -q cvuqdisk 并终止安装,不会给你继续按钮。

Crypto Sniper Oracle
Crypto Sniper Oracle

机构级量化市场预言机,提供订单簿失衡(OBI)、VWAP分析、自动化报告及Telegram预警。

下载

实操建议:

  • 该包不在 base repo,需从 Oracle 官方 Grid 安装介质中提取:find /path/to/grid/installer -name "cvuqdisk*" -type f,通常位于 /path/to/grid/installer/cvu/qpt/cvuqdisk-1.0.10-1.rpm
  • 安装命令必须带 --force --nodeps(因为依赖关系不满足):rpm -ivh --force --nodeps cvuqdisk-1.0.10-1.rpm
  • 安装后验证:rpm -qa | grep cvuqdisk 应返回包名;modprobe cvuqdisk 不报错即可

tnsnames.ora 和 listener.ora 必须由 Grid 管理,不能手动改 Oracle Home 下的

装完 Grid 后,监听器由 grid 用户启动,配置文件在 $ORACLE_HOME/network/admin(即 GI_HOME 下),而非后续 Oracle DB_HOME 下的同名文件。若你在 DB_HOME 里配了 tnsnames.ora,但 lsnrctl status 显示服务不可达,或 DGMGRL 连不上备库,大概率是连错了监听器位置。

实操建议:

  • 确认监听器归属:ps -ef | grep tnslsnr,看进程属主是否为 grid,路径是否指向 /u01/app/19.0.0/grid
  • 所有网络配置(包括 LISTENER、SCAN、DATA_GUARD 的 SERVICE)必须写在 $GRID_HOME/network/admin/tnsnames.ora 和 listener.ora 中
  • LOG_ARCHIVE_DEST_2 中的 SERVICE=orcl_stby 必须与 tnsnames.ora 里定义的条目名称**完全一致**(大小写、空格、换行都不能有)
  • 修改后 reload:srvctl reload listener 或 lsnrctl reload,不要只改文件就以为生效

Grid 和 Oracle 19c 的安装顺序、设备绑定、校验包、监听归属这四点,任何一处错位都会导致后续 Data Guard 或 ASM 启动失败。最容易被忽略的是:udev 规则写对了但没 reload,或者 cvuqdisk 装了但没 force,又或者以为 tnsnames.ora 放哪都一样。这些都不是“试几次就能蒙对”的问题,而是必须按路径逐层验证。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

2023.10.12

3883

8

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.27

831

4

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

2024.02.23

1009

5

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

5721

10

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

2024.03.06

2663

4

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

2024.04.07

5700

11

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

2024.04.29

7521

6

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

2024.04.29

1030

5

sql中删除一列的命令是什么
sql中删除一列的命令是什么

在sql中,使用alter table语句可以删除一列,语法为:alter table table_name drop column column_name。想了解更多sql的相关内容,可以阅读本专题下面的文章。

2024.04.29

892

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程