温馨提示×

Oracle Linux版如何更新补丁

小樊
55
2025-10-04 00:09:36
栏目: 云计算

Oracle Linux系统补丁更新指南

Oracle Linux作为企业级Linux发行版,其补丁更新需兼顾系统内核、软件包及Oracle数据库的安全性与稳定性。以下是分场景的详细操作流程:

一、系统级常规补丁更新(无重启)

1. 使用YUM/DNF更新常规软件包

Oracle Linux默认使用yum(OL6/7)或dnf(OL8+)包管理器,可通过以下命令更新所有可用的安全补丁与bug修复:

# 切换至root用户
su -
# 清理本地缓存
yum clean all  # OL6/7
dnf clean all  # OL8+
# 更新软件包索引
yum makecache  # OL6/7
dnf makecache  # OL8+
# 更新所有软件包(包括安全补丁)
yum update     # OL6/7
dnf update     # OL8+

此操作会自动下载并安装public_ol<版本>_latest仓库中的最新补丁,无需重启系统(除非涉及内核关键更新)。

2. 仅更新安全补丁(针对性修复)

若需优先修复安全漏洞,可使用yum-plugin-security插件(OL6/7)或dnf的安全过滤功能(OL8+):

# OL6/7:安装安全插件
yum install yum-plugin-security
# 仅更新安全补丁
yum --security update
# OL8+:直接过滤安全更新
dnf update --security

3. 零重启内核更新(Ksplice技术)

对于内核级别的安全补丁,Oracle提供Ksplice Uptrack工具,可实现无需重启系统的内核更新:

# 检查并安装Ksplice客户端(若未安装)
yum install uptrack  # OL6/7
dnf install uptrack  # OL8+
# 注册Ksplice服务(需Oracle账户)
uptrack-config --register <Oracle账户邮箱>
# 更新内核补丁(自动应用所有可用内核更新)
uptrack-upgrade -y
# 查看已安装的更新
uptrack-show

Ksplice会直接修改内存中的内核,无需重启即可生效,适用于生产环境的7×24小时系统。

二、Oracle数据库补丁更新(带重启)

Oracle数据库补丁(如PSU、CPU、Bug修复)需使用opatch工具手动应用,步骤如下:

1. 准备工作

  • 备份数据库:使用RMAN进行全库备份,确保数据可恢复。
    rman target /
    BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
    EXIT;
    
  • 下载补丁包:从Oracle Support网站(My Oracle Support)下载对应版本的补丁(如PSU、CPU),并解压至临时目录(如/home/oracle/patch)。
  • 检查OPatch版本:确保$ORACLE_HOME/OPatch目录下的opatch工具为最新版本(可通过opatch version查看),若版本过低需先升级(参考补丁包中的README.txt)。

2. 关闭数据库服务

# 停止监听器
lsnrctl stop
# 以SYSDBA身份登录数据库,关闭实例
sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
SQL> EXIT;

3. 应用数据库补丁

# 切换至oracle用户
su - oracle
# 进入补丁目录
cd /home/oracle/patch
# 应用补丁(根据补丁类型选择命令)
# 单个补丁(如p31537677_112040_Linux-x86-64.zip)
$ORACLE_HOME/OPatch/opatch apply
# 组合补丁(如p31718723_112040_Linux-x86-64.zip,包含多个子补丁)
$ORACLE_HOME/OPatch/opatch napply -id 31537677,31718723

应用完成后,opatch会生成日志文件(位于$ORACLE_HOME/cfgtoollogs/opatch),记录补丁应用结果。

4. 升级数据字典与重启

# 以SYSDBA身份登录数据库,执行数据字典升级
sqlplus / as sysdba
SQL> @?/rdbms/admin/catbundle.sql psu apply  # PSU补丁需执行此命令
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
# 验证补丁是否应用成功
SELECT * FROM v$version;
EXIT;

5. 验证补丁安装

# 查看已安装的OPatch库存
$ORACLE_HOME/OPatch/opatch lsinventory
# 检查特定补丁是否安装
$ORACLE_HOME/OPatch/opatch lspatches | grep <补丁ID>

三、注意事项

  • 测试环境验证:所有补丁(尤其是数据库补丁)需先在测试环境应用,确认无兼容性问题后再部署至生产环境。
  • 依赖检查:应用补丁前,确保系统已安装所有必要的依赖包(如libaiolibaio-devel),避免安装失败。
  • 自动更新配置:可通过yum-cron(OL6/7)或dnf-automatic(OL8+)配置自动更新,定期检查并安装安全补丁(参考Oracle官方文档)。

0