Skip to content

Oracle 操作系统配置

Linux 操作系统配置

支持的 Linux 发行版

  • Oracle Linux:Oracle 官方推荐,完全优化支持 Oracle 数据库
  • Red Hat Enterprise Linux (RHEL):完全支持,需要对应版本
  • SUSE Linux Enterprise Server (SLES):完全支持,需要对应版本
  • CentOS:社区支持,与 RHEL 兼容

系统要求

硬件要求

  • 处理器:64 位处理器,至少 2 核心
  • 内存:至少 2 GB,推荐 4 GB 以上
  • 存储空间
    • 系统分区:至少 10 GB
    • /tmp 分区:至少 1 GB
    • 交换空间:根据内存大小配置
    • Oracle 软件:至少 6 GB
    • 数据文件:根据数据量确定

软件要求

  • 操作系统版本:对应 Oracle 版本支持的 Linux 版本
  • 内核版本:对应发行版的推荐内核版本
  • glibc:2.12 或更高版本
  • libaio:0.3.109 或更高版本
  • libstdc++:4.4.7 或更高版本
  • make:3.81 或更高版本
  • gcc:4.4.7 或更高版本

内核参数配置

必需的内核参数

bash
# 共享内存参数
kernel.shmall = 2097152
kernel.shmmax = 4294967296
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

# I/O 参数
fs.aio-max-nr = 1048576

参数说明

  • kernel.shmall:系统中可分配的共享内存页总数
  • kernel.shmmax:单个共享内存段的最大大小
  • kernel.shmmni:系统中共享内存段的最大数量
  • kernel.sem:信号量参数,格式为 SEMMSL SEMMNS SEMOPM SEMMNI
  • fs.file-max:系统中可打开的文件句柄最大数量
  • net.ipv4.ip_local_port_range:本地端口范围
  • fs.aio-max-nr:异步 I/O 请求的最大数量

配置方法

  1. 编辑 /etc/sysctl.conf 文件,添加或修改内核参数
  2. 运行 sysctl -p 使参数生效
  3. 验证参数是否正确设置:sysctl -a | grep <参数名>

资源限制配置

用户限制

bash
# /etc/security/limits.conf 文件添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

PAM 配置

  • 确保 /etc/pam.d/login 文件包含:
    bash
    session    required     pam_limits.so
  • 确保 /etc/pam.d/su 文件包含:
    bash
    session    required     pam_limits.so

配置方法

  1. 编辑 /etc/security/limits.conf 文件,添加 Oracle 用户的限制
  2. 编辑 PAM 配置文件
  3. 重新登录 Oracle 用户使限制生效
  4. 验证限制是否正确设置:ulimit -a

文件系统配置

推荐的文件系统

  • 数据文件:EXT4、XFS 或 Btrfs
  • 重做日志:EXT4 或 XFS
  • 归档日志:EXT4 或 XFS
  • 临时文件:EXT4 或 XFS

文件系统挂载选项

bash
# EXT4 挂载选项
/dev/sdb1 /u01 ext4 defaults,noatime,nodiratime,barrier=0 0 2

# XFS 挂载选项
/dev/sdb1 /u01 xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k 0 2

配置方法

  1. 编辑 /etc/fstab 文件,添加或修改挂载选项
  2. 重新挂载文件系统:mount -o remount /u01
  3. 验证挂载选项是否正确:mount | grep /u01

网络配置

主机名配置

  • 编辑 /etc/hostname 文件,设置主机名
  • 编辑 /etc/hosts 文件,添加主机名和 IP 地址的映射

网络服务

  • 确保网络服务正常运行:systemctl status network
  • 禁用或配置防火墙,确保 Oracle 相关端口可访问
  • 配置 SELinux,根据需要设置为 permissive 或 disabled

配置方法

  1. 编辑网络配置文件
  2. 重启网络服务:systemctl restart network
  3. 验证网络配置:hostnameping localhost

Windows 操作系统配置

支持的 Windows 版本

  • Windows Server:2016、2019、2022 等
  • Windows:10、11(仅用于开发和测试)

系统要求

硬件要求

  • 处理器:64 位处理器,至少 2 核心
  • 内存:至少 2 GB,推荐 4 GB 以上
  • 存储空间
    • 系统分区:至少 10 GB
    • 临时空间:至少 1 GB
    • Oracle 软件:至少 6 GB
    • 数据文件:根据数据量确定

软件要求

  • 操作系统版本:对应 Oracle 版本支持的 Windows 版本
  • .NET Framework:4.7.2 或更高版本
  • Windows Management Framework:5.1 或更高版本
  • PowerShell:5.1 或更高版本

系统配置

服务配置

  • 禁用不需要的服务:减少系统资源占用
  • 设置服务启动类型:根据需要设置 Oracle 相关服务的启动类型

性能选项

  • 调整视觉效果:设置为"调整为最佳性能"
  • 虚拟内存:根据内存大小配置,推荐为物理内存的 1.5-3 倍
  • 处理器计划:设置为"程序"
  • 内存使用:设置为"系统缓存"

配置方法

  1. 打开"系统属性" → "高级" → "性能设置"
  2. 调整性能选项
  3. 配置虚拟内存大小

网络配置

主机名配置

  • 在"控制面板" → "系统和安全" → "系统"中设置计算机名
  • 编辑 C:\Windows\System32\drivers\etc\hosts 文件,添加主机名和 IP 地址的映射

防火墙配置

  • 允许 Oracle 相关端口通过防火墙
  • 常见端口:1521(监听器)、5500(EM Express)等

配置方法

  1. 打开"Windows 防火墙" → "高级设置"
  2. 添加入站规则,允许 Oracle 相关端口
  3. 验证防火墙配置是否正确

用户和组配置

所需用户和组

  • Oracle 软件所有者:通常为本地管理员用户
  • Oracle 服务用户:用于运行 Oracle 服务的用户

用户权限

  • Oracle 软件所有者需要本地管理员权限
  • Oracle 服务用户需要适当的权限以运行服务

配置方法

  1. 在"计算机管理" → "本地用户和组"中创建用户
  2. 为用户分配适当的权限
  3. 验证用户权限是否正确

AIX 操作系统配置

支持的 AIX 版本

  • AIX:7.1 TL3 或更高版本,7.2 或更高版本

系统要求

硬件要求

  • 处理器:POWER 处理器,64 位
  • 内存:至少 2 GB,推荐 4 GB 以上
  • 存储空间:根据 Oracle 版本要求

软件要求

  • AIX 版本:对应 Oracle 版本支持的 AIX 版本
  • 文件集
    • bos.adt.base
    • bos.adt.lib
    • bos.adt.libm
    • bos.perf.libperfstat
    • bos.perf.perfstat
    • bos.perf.proctools
    • xlC.rte

内核参数配置

必需的内核参数

bash
# 编辑 /etc/sysctl.conf 文件
kernel.sched_psize=16384
kernel.sched_ds_size=16384
kernel.maxproc=16384
kernel.maxfiles=65536
kernel.maxfiles_lim=65536

配置方法

  1. 编辑 /etc/sysctl.conf 文件,添加或修改内核参数
  2. 运行 sysctl -p 使参数生效
  3. 验证参数是否正确设置

Solaris 操作系统配置

支持的 Solaris 版本

  • Oracle Solaris:10 1/13 或更高版本,11.1 或更高版本

系统要求

硬件要求

  • 处理器:SPARC 或 x86-64 处理器
  • 内存:至少 2 GB,推荐 4 GB 以上
  • 存储空间:根据 Oracle 版本要求

软件要求

  • Solaris 版本:对应 Oracle 版本支持的 Solaris 版本
  • 补丁:必要的操作系统补丁

内核参数配置

必需的内核参数

bash
# 编辑 /etc/project 文件
user.oracle:project.max-shm-memory=(privileged,4GB,deny)
user.oracle:project.max-sem-ids=(privileged,256,deny)
user.oracle:project.max-shm-ids=(privileged,100,deny)

配置方法

  1. 编辑 /etc/project 文件,添加或修改项目参数
  2. 重新登录 Oracle 用户使参数生效
  3. 验证参数是否正确设置

操作系统配置验证

硬件验证

  • CPUlscpu(Linux)、wmic cpu get name(Windows)
  • 内存free -h(Linux)、systeminfo | find "Total Physical Memory"(Windows)
  • 存储df -h(Linux)、wmic logicaldisk get size,freespace,caption(Windows)

软件验证

  • 操作系统版本cat /etc/os-release(Linux)、ver(Windows)
  • 内核版本uname -r(Linux)
  • 必需软件rpm -qa | grep <package>(Linux)、wmic product get name,version(Windows)

内核参数验证

  • Linuxsysctl -a | grep <parameter>
  • Windows:通过注册表或系统配置工具
  • AIXlsattr -El sys0
  • Solarisprctl -n project.max-shm-memory -i project user.oracle

资源限制验证

  • Linuxulimit -a
  • Windows:通过任务管理器或性能监视器
  • AIXlsuser -a processes fsize oracle
  • Solarisprctl -n process.max-file-descriptor -i process $$

常见问题(FAQ)

Q1: 如何检查 Linux 系统是否满足 Oracle 数据库的安装要求?

A1: 检查 Linux 系统是否满足 Oracle 数据库安装要求的方法:

  • 硬件检查
    • lscpu:检查 CPU 信息
    • free -h:检查内存信息
    • df -h:检查磁盘空间
  • 软件检查
    • cat /etc/os-release:检查操作系统版本
    • uname -r:检查内核版本
    • rpm -qa | grep <package>:检查必需的软件包
  • 内核参数检查
    • sysctl -a | grep <parameter>:检查内核参数
  • 资源限制检查
    • ulimit -a:检查用户资源限制

Q2: Windows 系统上安装 Oracle 数据库需要哪些权限?

A2: Windows 系统上安装 Oracle 数据库需要的权限:

  • 本地管理员权限:安装 Oracle 软件的用户需要本地管理员权限
  • 服务登录权限:Oracle 服务用户需要适当的权限以登录和运行服务
  • 文件系统权限:对 Oracle 安装目录和数据文件目录的读写权限
  • 注册表权限:对 Oracle 相关注册表项的修改权限

Q3: 如何优化 Linux 系统以提高 Oracle 数据库性能?

A3: 优化 Linux 系统以提高 Oracle 数据库性能的方法:

  • 内核参数优化
    • 调整共享内存参数(shmall, shmmax)
    • 调整信号量参数(sem)
    • 调整文件句柄参数(file-max)
    • 调整网络参数(ip_local_port_range)
  • 存储优化
    • 使用高性能文件系统(如 XFS)
    • 优化文件系统挂载选项
    • 使用 RAID 10 存储数据文件
  • 内存优化
    • 配置适当的交换空间
    • 调整内存分配策略
  • 网络优化
    • 配置适当的网络参数
    • 确保网络带宽足够
  • 资源限制优化
    • 增加 Oracle 用户的进程数和文件句柄限制

Q4: 安装 Oracle 数据库时遇到操作系统版本不兼容的问题怎么办?

A4: 遇到操作系统版本不兼容问题的解决方法:

  • 检查 Oracle 版本要求:确认当前操作系统版本是否在 Oracle 支持的版本列表中
  • 升级操作系统:如果可能,升级操作系统到受支持的版本
  • 使用兼容模式:某些情况下可以使用兼容模式安装
  • 申请补丁:联系 Oracle 支持,获取针对特定操作系统版本的补丁
  • 考虑替代方案:如果无法升级操作系统,考虑使用支持当前操作系统版本的 Oracle 版本

Q5: 如何为 Oracle RAC 集群配置操作系统?

A5: 为 Oracle RAC 集群配置操作系统的方法:

  • 所有节点配置一致:确保所有集群节点的操作系统配置相同
  • 网络配置
    • 配置公共网络和私有网络
    • 确保私有网络的带宽和延迟满足要求
    • 配置网络绑定(如果需要)
  • 存储配置
    • 配置共享存储
    • 确保所有节点可以访问共享存储
    • 配置适当的存储多路径
  • 时间同步
    • 配置 NTP 或 Chrony 确保所有节点时间同步
  • 防火墙配置
    • 确保集群节点之间的通信不受防火墙限制
  • 用户和组配置
    • 在所有节点上创建相同的 Oracle 用户和组
    • 确保用户和组的 UID/GID 一致