温馨提示×

Debian Oracle集群配置指南

小樊
41
2025-12-26 23:55:28
栏目: 云计算

Debian 上部署 Oracle RAC 的实用指南

一 规划与前置条件

  • 目标架构:部署 Oracle Real Application Clusters(RAC),由 Grid Infrastructure(GI) 管理集群资源,数据库软件与实例运行在 GI 之上,共享存储建议使用 ASM
  • 节点与硬件:至少 2 台 服务器(物理机/虚拟机),建议 CPU/内存/磁盘 规格对称;内存建议 ≥16GB,共享存储具备低时延与冗余能力。
  • 操作系统:建议使用 Debian 11(或 10)稳定版,集群内各节点保持 相同发行版与内核补丁级别;完成系统更新与基础加固。
  • 网络规划:准备三类网络并配置静态 IP 与 FQDN,在 /etc/hosts 或 DNS 中可解析所有节点与 VIP/SCAN。
    • 公有网络:客户端访问,默认监听端口 1521(可选 EM Express 8080)。
    • 私有网络:节点间心跳与集群通信,建议使用 10Gbps+ 低时延网络。
    • 虚拟 IP(VIP):客户端连接的浮动地址,故障时漂移到存活节点。
    • SCAN:Single Client Access Name,提供单一接入点(需 DNS 轮询或 GNS)。
  • 共享存储:优先 ASM(支持 NORMAL/HIGH 冗余);也可使用 SAN/NAS(FC/iSCSI)。磁盘划分建议跨控制器/阵列分布,避免单点故障。

二 系统安装与网络配置

  • 系统与依赖
    • 更新系统并安装常用编译与驱动依赖:
      • sudo apt update && sudo apt upgrade -y
      • sudo apt install -y gcc make libc6-dev libaio1 libaio-dev unixodbc unixodbc-dev ksh kmod oracleasm
  • 用户与目录
    • 创建 oracle/oinstall/dba 用户与组,创建目录并授权:
      • sudo groupadd -r oinstall
      • sudo groupadd -r dba
      • sudo useradd -m -r -g oinstall -G dba oracle
      • sudo mkdir -p /u01/app/oracle /u01/app/grid
      • sudo chown -R oracle:oinstall /u01
      • sudo chmod -R 775 /u01
  • 环境变量(oracle 用户 ~/.bashrc)
    • 数据库软件主目录示例(按版本调整):
      • export ORACLE_BASE=/u01/app/oracle
      • export ORACLE_HOME=$ORACLE_BASE/product/23C/dbhome_1
      • export GRID_HOME=$ORACLE_BASE/product/23C/grid
      • export PATH=$PATH:$ORACLE_HOME/bin:$GRID_HOME/bin
      • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$GRID_HOME/lib
  • 主机名与解析
    • 配置 /etc/hosts(示例):
      • 192.168.10.11 node1.example.com node1
      • 192.168.10.12 node2.example.com node2
      • 192.168.10.21 node1-vip
      • 192.168.10.22 node2-vip
      • 192.168.10.31 racdb-scan
  • 防火墙放行(UFW/iptables)
    • 公网:1521(TNS)、8080(EM Express)
    • 私网:4200–4299(集群心跳)、6200–6299(ASM 通信)
    • VIP:与公网端口一致(由 GI 管理漂移)

三 安装 Grid Infrastructure

  • 准备与校验
    • 以 oracle 用户解压 GI 安装介质,使用 cluvfy 进行安装前检查:
      • ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup
  • 安装步骤
    • 运行安装程序(示例为静默模式,实际可用图形界面):
      • ./runInstaller -silent -responseFile /path/to/grid.rsp -instRepo /tmp/grid_repo
    • 安装选项要点:
      • 选择 Cluster Installation,添加 node1、node2
      • 配置 SCAN 名称(如 racdb-scan)与 VIP(node1-vip、node2-vip)。
      • 指定 ASM 作为共享存储,创建 OCR/Voting 磁盘组(如 +OCR、+VOTE)。
  • 完成安装
    • 按提示在各节点以 root 执行 root.sh
  • 安装后验证
    • 查看集群与资源状态:
      • crsctl stat res -t
      • crsctl check cluster
      • srvctl status listener
    • 确认 SCANVIP 正常解析与漂移

四 安装 Oracle RAC 数据库软件与创建数据库

  • 安装数据库软件(RAC 模式)
    • 解压数据库安装介质,执行安装(示例):
      • ./runInstaller -silent -responseFile /path/to/db.rsp -instRepo /tmp/db_repo
    • 关键参数:指定 GI 主目录、数据库字符集 AL32UTF8、内存目标(如 8G)、ASM 磁盘组(如 +DATA)。
    • 安装完成后以 root 在各节点执行 root.sh
  • 使用 DBCA 创建 RAC 数据库(静默)
    • 示例(创建容器数据库):
      • dbca -silent
        -createDatabase
        -templateName General_Purpose.dbc
        -gdbName racdb
        -sid racdb
        -createAsContainerDatabase true
        -numberOfPDBs 1
        -pdbName pdb1
        -datafileDestination +DATA
        -recoveryAreaDestination +FRA
        -characterSet AL32UTF8
        -memoryPercentage 40
        -emConfiguration NONE
    • 常用运维命令:
      • srvctl status database -d racdb
      • srvctl start|stop database -d racdb
      • srvctl status instance -d racdb -i racdb1
      • srvctl config service -d racdb
    • 如需创建传统非 CDB 数据库,将 -createAsContainerDatabase 设为 false

五 存储与高可用验证

  • ASM 磁盘组与冗余
    • 创建数据/归档/FRA 磁盘组(示例):
      • CREATE DISKGROUP DATA NORMAL REDUNDANCY FAILGROUP fg1 DISK ‘/dev/sdb1’ FAILGROUP fg2 DISK ‘/dev/sdc1’;
      • CREATE DISKGROUP FRA EXTERNAL REDUNDANCY DISK ‘/dev/sdd1’;
    • 扩展集群可配置 ASM 主机镜像首选读取 故障组以优化跨站点性能与可用性。
  • 高可用测试
    • 节点故障:关闭某节点,验证 VIP 漂移、存活节点 实例自动启动 与客户端重连。
    • 存储故障:拔除/下线一块共享盘,验证 ASM 镜像 保持数据可用并完成重新同步。
  • 备份与监控
    • 备份策略:配置 RMAN 定期备份(含控制文件/归档日志),验证 恢复 流程。
    • 监控告警:部署 OEMPrometheus + Grafana/Nagios,监控 CPU/内存/I/O/ASM 磁盘健康/空间 等关键指标。

六 常见问题与排错要点

  • 节点间通信异常:检查 /etc/hosts 与 DNS、私网交换机/线缆、MTU 一致性与防火墙策略。
  • SCAN 或 VIP 不可达:确认 DNS 轮询/GNS 配置、SCAN VIP 与 public 网络 在同一子网、监听已注册到 SCAN。
  • ASM 磁盘发现失败:核对 多路径/udev 规则、磁盘权限(oracle:asmadmin)、磁盘未被占用。
  • 安装前校验失败:使用 cluvfy 逐项修复(如时间同步、用户等效性、内核参数、包依赖)。
  • GI/DB 启动失败:查看 $GRID_HOME/log/、$ORACLE_HOME/diag/、/var/log/syslog,按报错修复后执行 crsctl start clustersrvctl start database

注意:上述步骤涉及生产级数据库与集群部署,请在测试环境充分验证,并严格遵循 Oracle 官方文档 与贵组织变更流程。任何误操作可能导致数据丢失或业务中断。

0