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 分区
| 分区 | 大小 | 用途 |
|---|---|---|
| /boot | 1GB | 启动 |
| / | 50GB | 系统 |
| /u01 | 业务 | Oracle |
| swap | 物理 1-2 倍 | 交换 |
| /tmp | 5GB | 临时 |
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. 最佳实践
- OL 8 + UEK:现代
- 预安装包:简化
- 标准化目录:统一
- 内核参数:性能
- HugePages:大内存
- 禁用透明大页:稳定
- NTP:时间一致
- 网络静态:稳定
- 验证:完整
- 文档化:配置
19. 参考资料
[1] Oracle Linux Documentation https://docs.oracle.com/en/operating-systems/oracle-linux/8/