Ubuntu 上提升 Oracle 稳定性的实用清单
一 基础架构与系统配置
- 使用受支持的 Ubuntu LTS 版本,完成最小化安装;为数据库创建专用系统用户与组(如 oracle/oinstall/dba),并严格设置目录权限与属主。
- 配置 DNS/hosts 解析,确保主机名与 IP 一一对应;集群环境需准备至少一组 公网 IP 与 心跳 IP,并提前打通节点间网络与存储访问。
- 选择高性能存储(优先 SSD/NVMe),并在条件允许时采用 Oracle ASM 提供镜像与冗余,降低磁盘故障带来的稳定性风险。
- 统一时间同步:安装并启用 NTP/chrony,避免节点间时间漂移引发 RAC/Data Guard 异常。
- 规划高可用架构:单机建议配置 Data Guard 做灾备;多节点业务优先 Oracle RAC 实现负载均衡与故障切换。
二 内核与资源限制
- 调整关键内核参数(示例,按实际内存与负载微调):
- 文件句柄与内核内存:fs.file-max、vm.nr_hugepages(配合 SGA 使用大页)、必要时设置 kernel.shmall/kernel.shmmax;
- 进程与内存:提升 kernel.pid_max,为 Oracle 预留充足内存,避免 OOM。
- 配置资源限制(/etc/security/limits.conf 或 systemd 服务单元):
- oracle soft/hard nofile(如 65536/65536)、nproc(如 16384/16384)、memlock(略小于 SGA 大小);
- 启用 PAM limits 生效,确保 sqlplus/监听器等后台进程继承限制。
- 存储与文件系统:使用 XFS/ext4 等成熟文件系统,合理挂载选项(如 noatime、barrier/relatime 视场景而定),并尽量将 数据文件/重做日志/归档 分离到不同物理磁盘或阵列,减少 I/O 争用。
三 数据库参数与存储可靠性
- 内存与并发:合理设置 SGA_TARGET/PGA_AGGREGATE_TARGET,避免 swap;根据业务峰值配置 PROCESSES/SESSIONS,并启用合适的连接池(如应用侧 HikariCP/OCI 连接池)。
- 日志与恢复:确保 FAST_START_MTTR_TARGET 与联机重做日志大小匹配业务写入强度;归档模式下规划充足的归档空间与清理策略。
- 数据保护:启用 DB_BLOCK_CHECKSUM 与 DB_LOST_WRITE_PROTECT 预防块损坏与写丢失;结合 RMAN 制定定期全备+增量+归档备份策略,并定期演练恢复流程。
- SQL 与对象:持续收集统计信息(如 DBMS_STATS),使用 绑定变量 降低硬解析,针对大表使用 分区/索引 与必要物化视图,减少长事务与锁等待。
四 网络与监听可用性
- 监听器配置:编辑 $ORACLE_HOME/network/admin/listener.ora,确保监听地址、端口(默认 1521)与 SID/服务名 正确;必要时配置多个地址与 IPC 条目以提升可用性与本地访问性能。
- 并发与模式:在连接压力较大时评估启用 共享服务器模式(SHARED SERVER) 或使用连接池,降低专用服务器进程创建销毁的开销。
- 安全与可达:通过 ufw/iptables 仅放通必要来源 IP 的 1521/TCP;对外服务建议配合 TLS/TCPS 与强口令/ACL。
- 变更与验证:修改 listener.ora 后使用 lsnrctl stop/start 使配置生效,并持续关注监听日志与告警。
五 监控 备份 高可用与常见排障
- 监控与告警:部署 Oracle Enterprise Manager(OEM) 或使用 sqlplus/视图(如 v$session、v$sysstat、v$archive_dest)做性能与健康巡检;对 alert.log、监听日志、ASM/CRS 日志建立轮转与集中告警。
- 备份与演练:以 RMAN 为核心建立日增/周全备与归档备份策略,定期做 恢复演练 与 备份可用性校验,确保 RPO/RTO 达标。
- 高可用架构:生产业务优先采用 Data Guard(物理/逻辑)实现故障切换与读写分离;多节点 OLTP 场景部署 RAC,配合 VIP/SCAN 与 ASM 提升吞吐与容错。
- 常见排障要点:
- 节点时间漂移导致集群异常时,统一启用 NTP/chrony 并校准硬件时钟;
- 权限/环境变量问题(如 “not authorized” 或找不到库)时,检查 oracle 用户权限、ORACLE_HOME/LD_LIBRARY_PATH 与 TNS_ADMIN 配置;
- 连接风暴或监听异常时,复核 listener.ora、最大连接数、连接池配置与防火墙策略。