centos oracle集群搭建步骤
导读:CentOS 7 上搭建 Oracle RAC 的标准流程 以下流程以 CentOS 7 为操作系统,覆盖 Oracle 11gR2 与 19c 的通用做法,包含网络与存储规划、系统初始化、Grid Infrastructure 安装、AS...
CentOS 7 上搭建 Oracle RAC 的标准流程
以下流程以 CentOS 7 为操作系统,覆盖 Oracle 11gR2 与 19c 的通用做法,包含网络与存储规划、系统初始化、Grid Infrastructure 安装、ASM 磁盘组创建、Oracle 软件与数据库安装,以及常见排错要点。
一 规划与准备
- 节点与网络
- 至少 2 个节点,每台 2 张网卡:Public(业务网)与 Private(心跳/互联)。
- 建议的 7 个 IP:Public IP ×2、VIP ×2、Private IP ×2、SCAN IP ×1(SCAN 与 Public 同网段)。
- 示例(写入 /etc/hosts,主机名小写):
- Public:192.168.12.20 rac1,192.168.12.21 rac2
- Private:10.10.10.20 rac1-priv,10.10.10.21 rac2-priv
- VIP:192.168.12.22 rac1-vip,192.168.12.23 rac2-vip
- SCAN:192.168.12.100 rac-scan
- 主机名需符合 RFC 952,避免使用下划线;网卡命名在两节点保持一致(如 eth0/public、eth1/private)。
- 共享存储(ASM)
- 建议 3 个 OCR/Voting 磁盘(冗余 Normal,单盘 1–10G),1 个 DATA 盘(如 50G),1 个 FRA 盘(如 20G,可选)。
- 虚拟化环境需开启磁盘共享总线(如 VMware 设置 disk.locking=false、scsi1.sharedBus=virtual),并在两节点添加同一组共享磁盘。
- 软件介质
- 11gR2:linux.x64_11gR2_grid.zip、linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip
- 19c:LINUX.X64_193000_grid_home.zip、LINUX.X64_193000_db_home.zip
- 仅在一个节点解压形成安装目录(staging area),安装器会自动通过 SSH 分发到其它节点。
二 系统初始化与依赖
- 关闭不必要服务(所有节点)
- 防火墙:systemctl stop firewalld & & systemctl disable firewalld
- SELinux:sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/’ /etc/selinux/config & & setenforce 0
- Avahi:systemctl stop avahi-daemon & & systemctl disable avahi-daemon
- 时间同步:仅保留一种机制(建议用集群自带 CTSS),停用 ntpd/chronyd
- 透明大页与 NUMA(所有节点)
- 编辑 /etc/default/grub,追加:transparent_hugepage=never
- 重新生成 grub 配置并重启:grub2-mkconfig -o /boot/grub2/grub.cfg
- 依赖包(示例,按版本微调)
- yum install -y bc gcc gcc-c++ binutils make gdb cmake glibc ksh elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc-devel libaio libaio-devel libXrender libX11 libXau sysstat libXi libXtst libgcc librdmacm-devel libstdc++ libstdc+±devel libxcb net-tools nfs-utils compat-libcap1 compat-libstdc++ smartmontools targetcli python python-configshell python-rtslib python-six unixODBC unixODBC-devel iscsi-initiator-utils udev
- CVU 工具:安装 cvuqdisk(随安装介质提供)
- 内核参数与资源限制(所有节点,示例值)
- /etc/sysctl.conf
- kernel.shmmax=4294967295;kernel.shmall=268435456;kernel.shmmni=4096
- kernel.sem=250 32000 100 128;fs.file-max=6815744
- 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
- fs.aio-max-nr=1048576
- 执行 sysctl -p 生效
- /etc/security/limits.conf
- grid soft/hard nproc 2047/16384;grid soft/hard nofile 1024/65536;grid soft/hard stack 10240/32768
- oracle soft/hard nproc 2047/16384;oracle soft/hard nofile 1024/65536;oracle soft/hard stack 10240/32768
- /etc/pam.d/login:session required pam_limits.so
- /etc/sysctl.conf
- 用户与目录(所有节点)
- 组:groupadd -g 1100 oinstall;groupadd -g 1101 dba;groupadd -g 1102 oper
- Grid:groupadd -g 1103 asmadmin;groupadd -g 1104 asmdba;groupadd -g 1105 asmoper
- 用户:useradd -u 1000 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
- 用户:useradd -u 1001 -g oinstall -G dba,oper,asmdba oracle
- 目录:mkdir -p /u01/app/{ grid,11.2.0/grid,oracle} ;chown -R grid:oinstall /u01/app/grid /u01/app/11.2.0/grid;chown oracle:oinstall /u01/app/oracle;chmod -R 775 /u01
- 环境变量(示例)
- Grid(~grid/.bash_profile):ORACLE_SID=+ASM1(节点2为 +ASM2);ORACLE_BASE=/u01/app/grid;ORACLE_HOME=/u01/app/11.2.0/grid(19c 为 /u01/app/grid);PATH=$ORACLE_HOME/bin:$PATH
- Oracle(~oracle/.bash_profile):ORACLE_SID=racdb1(节点2为 racdb2);ORACLE_UNQNAME=racdb;ORACLE_BASE=/u01/app/oracle;ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1(19c 为 /u01/app/oracle/product/19.0.0/dbhome_1);PATH=$ORACLE_HOME/bin:$PATH
- SSH 互信(grid 与 oracle 用户分别在两节点互信)
- ssh-keygen -t rsa(或 dsa);将各节点公钥汇总到 authorized_keys;验证 ssh 免密登录各节点本机与对端。
三 共享存储与设备绑定
- 识别磁盘(两节点)
- 多路径:multipath -ll;查看 /dev/mapper/*
- 非多路径:lsblk、scsi_id -g -u -d /dev/sd?
- 持久化绑定(示例)
- 非多路径(/etc/udev/rules.d/99-oracle-asmdevices.rules)
- KERNEL==“sd[b-f]”, SUBSYSTEM==“block”, PROGRAM==“/usr/lib/udev/scsi_id -g -u -d /dev/%k”, RESULT==“36000c29xxxx”, SYMLINK+=“asm-ocr1”, OWNER=“grid”, GROUP=“asmadmin”, MODE=“0660”
- 多路径(/etc/multipath.conf 配置多路径策略后,再为 /dev/mapper/* 建立同样的 udev 规则)
- 生效:udevadm control --reload-rules & & udevadm trigger;重启后复核
- 非多路径(/etc/udev/rules.d/99-oracle-asmdevices.rules)
- 验证
- 两节点对共享盘具有一致的持久化名称与权限;/dev/asm-* 或 /dev/mapper/asm-* 可见且可访问。
四 安装 Grid Infrastructure
- 预检查(仅在一个节点执行,grid 用户)
- 进入解压后的 Grid 安装目录,运行:./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
- 修复报错(依赖、内核参数、用户等效、网络/存储连通性等)后再继续
- 图形化安装(OUI)
- 仅在一个节点启动:./runInstaller
- 选择“Install and Configure Grid Infrastructure for a Cluster”
- 集群名称、节点信息(Public/VIP/Private)、网络接口用途(Public/Private)
- 存储:选择 ASM,配置 OCR 与 Voting(建议 Normal 冗余,3 个磁盘)
- 安装过程中按提示在两端执行 root.sh;完成后用 crsctl check cluster -all 验证集群状态
- 静默安装(可选)
- 使用响应文件(grid.rsp)执行安装,随后以 root 执行 root.sh,最后用 cluvfy 复核。
五 安装 Oracle 软件与创建数据库
- 安装 Oracle RAC 软件(仅在一个节点执行,oracle 用户)
- 进入解压后的 DB 安装目录,运行:./runInstaller
- 选择“Setup Software Only”,勾选 Oracle Real Application Clusters Database Installation
- 选择节点、安装位置(Oracle Base 与 Grid Home 不同)
- 安装过程中按提示在两端执行 root.sh
- 创建数据库(DBCA)
- 方式一:dbca -silent -createDatabase …(提供 SID、字符集、存储(ASM 磁盘组)、内存/进程参数等)
- 方式二:图形化 dbca 选择 RAC 选项,指定数据库名、实例数、服务、ASM 磁盘组、归档模式等
- 完成后验证:srvctl status database -d < db_unique_name> ;crsctl stat res -t;在各节点 sqlplus / as sysdba 查询 v$instance。
六 常见问题与快速排查
- 互信/SSH 报错(如 [INS-06006])
- 主机名使用小写;确保 grid/oracle 用户在两节点双向免密;必要时在 OUI 中自动配置 SSH。
- 先决条件检查失败
- 用 CVU 逐项修复:包依赖、内核参数、用户等效、网络/存储连通性、权限等。
- root.sh 报错(如 CRS-2101)
- 常见于 OLR 版本不匹配或残留配置;按日志清理环境后重跑 root.sh,或升级/对齐 OLR 版本。
- 透明大页导致性能异常
- 确认已设置 transparent_hugepage=never 并重启;检查 /sys/kernel/mm/transparent_hugepage/enabled 为 never。
- 共享磁盘未持久化或被占用
- 复核 udev/multipath 规则与权限;确保两节点对共享盘有相同映射与读写权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos oracle集群搭建步骤
本文地址: https://pptw.com/jishu/781042.html
