Oracle Linux 8 配置详解

Oracle Linux 8 配置详解

适用版本:Oracle Linux 8 / 9 文档版本:v1.0 / 2026-07


1. 概述

Oracle Linux 8 是 Oracle 数据库推荐 OS[1]:

特性

  • 免费
  • UEK 内核
  • 兼容 RHEL 8
  • 预安装包

详细见:Oracle Linux 安装与配置


2. 系统安装

2.1 下载

https://yum.oracle.com/

2.2 安装选项

  • Software Selection:Server with GUI / Minimal
  • 网络配置
  • 磁盘分区
  • 时区

2.3 分区

分区大小用途
/boot1GB启动
/50GB系统
/u01业务Oracle
swap物理 1-2 倍交换
/tmp5GB临时

3. 网络配置

3.1 静态 IP

# /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

3.2 重启

nmcli connection reload
nmcli connection up ens33

3.3 主机名

hostnamectl set-hostname oradb1.example.com

3.4 /etc/hosts

192.168.1.10 oradb1.example.com oradb1
192.168.1.11 oradb2.example.com oradb2

4. SELinux

4.1 查询

getenforce
sestatus

4.2 配置

# /etc/selinux/config
SELINUX=permissive
# 或
SELINUX=disabled

setenforce 0

4.3 推荐

  • 生产:permissive
  • 测试:disabled

5. 防火墙

5.1 端口

firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --permanent --add-port=5500/tcp
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

5.2 服务

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

5.3 关闭

systemctl stop firewalld
systemctl disable firewalld

6. 预安装包

6.1 oracle-database-preinstall

dnf install -y oracle-database-preinstall-19c

6.2 23ai

dnf install -y oracle-database-preinstall-23ai

6.3 自动配置

  • 用户/组
  • 内核参数
  • 限制
  • 依赖包

7. 依赖包

7.1 额外

dnf install -y bc binutils compat-openssl11 elfutils-libelf fontconfig \
  glibc glibc-devel ksh libaio libaio-devel libdtrace-ctf-devel \
  libXrender libXrender-devel libX11 libXau libXi libXtst \
  libstdc++ libstdc++-devel libnsl make net-tools smartmontools \
  sysstat targetcli unixODBC

7.2 验证

rpm -q bc binutils ...

8. 用户与组

8.1 创建

# 预安装已创建
# 手动
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle

8.2 grid

groupadd -g 54328 asmadmin
groupadd -g 54329 asmdba
groupadd -g 54330 asmoper
useradd -u 54331 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
passwd grid

详细见:Oracle 环境标准化配置


9. 内核参数

9.1 /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 16777216
kernel.shmmax = 68719476736
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
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

9.2 生效

sysctl -p
******

---

## 10. 限制

### 10.1 /etc/security/limits.conf

oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 oracle soft memlock unlimited oracle hard memlock unlimited


### 10.2 /etc/pam.d/login

session required pam_limits.so


---

## 11. HugePages

### 11.1 计算

```bash
# SGA 大小 / 2MB
# 例:SGA 16GB → 8192 HugePages

11.2 配置

echo "vm.nr_hugepages = 8192" >> /etc/sysctl.conf
sysctl -p
******

### 11.3 验证

```bash
grep Huge /proc/meminfo

11.4 Oracle

ALTER SYSTEM SET use_large_pages = ONLY SCOPE=SPFILE;

详细见:Oracle 内存管理 SGA/PGA


12. 透明大页

12.1 检查

cat /sys/kernel/mm/transparent_hugepage/enabled

12.2 禁用

echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 持久
# /etc/default/grub
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"

grub2-mkconfig -o /boot/grub2/grub.cfg

13. NTP

13.1 chronyd

dnf install -y chrony
systemctl enable chronyd
systemctl start chronyd

13.2 配置

# /etc/chrony.conf
server ntp.example.com iburst

13.3 验证

chronyc tracking

14. 目录

14.1 创建

mkdir -p ******
mkdir -p ******
mkdir -p ******
mkdir -p ******
chown -R oracle:oinstall /u01
chmod -R 775 /u01

14.2 grid

mkdir -p ******
mkdir -p ******
chown -R grid:oinstall /u01/app/19.0.0 /u01/app/grid

15. 环境变量

15.1 oracle

# /home/oracle/.bash_profile
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
umask 022

15.2 grid

# /home/grid/.bash_profile
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.0.0/grid
ORACLE_SID=+ASM
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
umask 022

16. 验证

16.1 系统

uname -a
cat /etc/oracle-release
free -h
df -h

16.2 用户

id oracle
id grid

16.3 参数

sysctl -a | grep -E 'shmall|shmmax|shmmni|sem'
ulimit -u

17. 常见坑与排错

17.1 依赖缺失

dnf install -y oracle-database-preinstall-19c

17.2 防火墙

firewall-cmd --add-port=1521/tcp --permanent
firewall-cmd --reload

17.3 SELinux

setenforce 0

18. 最佳实践

  1. OL 8 + UEK:现代
  2. 预安装包:简化
  3. 标准化目录:统一
  4. 内核参数:性能
  5. HugePages:大内存
  6. 禁用透明大页:稳定
  7. NTP:时间一致
  8. 网络静态:稳定
  9. 验证:完整
  10. 文档化:配置

19. 参考资料

[1] Oracle Linux Documentation https://docs.oracle.com/en/operating-systems/oracle-linux/8/