AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 37557
Accepted
wzzrd
wzzrd
Asked: 2009-07-09 00:38:10 +0800 CST2009-07-09 00:38:10 +0800 CST 2009-07-09 00:38:10 +0800 CST

何时重新链接 Oracle?

  • 772

互联网上的各种消息来源表明,在每次操作系统升级和/或补丁之后,重新链接 Oracle 二进制文件是必要的。

我可以理解升级 glibc 时需要重新链接。有些包可能不需要重新链接,有些需要,有些我不确定:

  • 升级 glibc -> 我想需要重新链接
  • 升级 vim -> 我想不需要重新链接
  • 升级 gzip -> 我不确定
  • 升级内核->我不确定

有没有人有一个列表,或者任何人都可以向我指出 Oracle 实际链接的库的列表吗?我不是 Oracle DBA,所以我对 Oracle 链接过程一无所知。我什至不确定我是否真的了解 Oracle 在重新链接期间所做的事情:在二进制软件中,安装后进行自己的链接并不是一种常见的做法,是吗?

无论如何,长话短说:我有几个 RHEL[345] 盒子,我需要应用一些补丁。大多数机器都运行 Oracle,我想知道哪些补丁需要重新链接,哪些不需要。尽可能详尽的清单会很好:)

linux redhat database oracle update
  • 4 4 个回答
  • 13254 Views

4 个回答

  • Voted
  1. Best Answer
    Ofir Manor
    2009-07-09T04:52:55+08:002009-07-09T04:52:55+08:00

    我很少需要重新链接 Oracle 数据库,可能只有在主要的操作系统升级或从 32 位升级到 64 位之后。但是,如果您有疑问,请运行它。需要一分钟。另一个要咨询的来源是metalink note 131321.1 ...要点是:

    " 在以下情况下会自动进行重新链接:

    • 已使用 Oracle 提供的安装程序安装了 Oracle 产品。
    • Oracle 补丁集已通过 Oracle 提供的安装程序应用。

    以下信息已添加到 Metalink 的“认证”部分:

    Oracle 数据库 - 企业版的一般说明:

    操作系统信息:厂商保证操作系统二进制兼容性;因此,除非另有明确说明,否则在升级这些操作系统时不需要重新安装或重新链接 Oracle 软件。

    在以下情况下建议手动重新链接 Oracle(即使操作系统供应商可能不需要):

    • 发生了操作系统升级。
    • 对 OS 系统库进行了更改。这可能在应用操作系统补丁期间发生。
    • 重新链接阶段新安装失败。
    • 初始启动期间单个 Oracle 可执行文件核心转储。
    • 已应用单个 Oracle 补丁(但是,明确的重新链接说明通常包含在自述文件中或集成到补丁安装脚本中)

    "

    • 4
  2. Tagar
    2015-06-10T15:51:41+08:002015-06-10T15:51:41+08:00

    为了全面了解,除了上面所说的之外,如果您要更改 Linux 内核,Oracle Clusterware 可能还需要重新链接。例如,如果您使用 ACFS 文件系统,Oracle 具有特定 Linux 内核版本的 ACFS 内核驱动程序。不确定小内核升级是否符合此条件。

    它实际上并不是修复 acfs Clusterware 驱动程序的重新链接本身,而是安装新 ACFS 驱动程序的 crs/install/rootcrs.pl -lock(或用于单节点集群件的 roothas.pl -lock)脚本。在重新链接集群件二进制文件之前,您必须调用 rootcrs.pl -unlock ,一旦重新链接完成 - 然后是 rootcrs.pl -lock 。

    • 1
  3. miracle173
    2021-08-17T08:06:44+08:002021-08-17T08:06:44+08:00

    来自 Oracle Metalink 注释“重新链接 Oracle 主页常见问题解答(常见问题)(文档 ID 1467060.1)”已在另一个答案中提到,该文档的当前版本:

    1. 何时需要手动重新链接?在以下情况下需要手动重新链接。

      A) 操作系统升级后,通常操作系统供应商保证操作系统的二进制兼容性,因此在升级这些操作系统时不需要重新安装或重新链接 Oracle 软件,除非另有说明。“但是 Oracle 建议在 OS 升级后手动重新链接 Oracle Home 二进制文件”。硬件更改不需要重新链接。

      B) 操作系统修补后。(推荐)。

    2. 操作系统升级、降级、打补丁或删除补丁后是否需要重新链接?是的,Oracle 建议在操作系统升级、修补、降级或删除补丁或任何影响操作系统库行为的更改之后手动重新链接 Oracle 主二进制文件。成功重新链接表明 Oracle 可执行文件已与 OS 二进制文件正确链接。

    如果您使用 Oracle Linux,那么它与 Redhat Enterprise Linux 100% 兼容,根据Oracle Linux 常见问题

    • 无论是运行 Unbreakable Enterprise Kernel 还是 Oracle 的替代 Red Hat 兼容内核,Oracle Linux 都是与 Red Hat Enterprise Linux 兼容的应用程序二进制文件。现有应用程序使用 Unbreakable Enterprise Kernel 运行时不会发生变化,因为所有系统库都保持不变。

    红帽企业 Linux 7:应用程序兼容性指南。

    注意:在主要版本的生命周期内,Red Hat 会做出商业上合理的努力,以在所有次要版本和勘误公告中保持核心运行时环境的二进制兼容性。如有必要,红帽可能会因严重影响安全或其他重大问题而对该兼容性目标作出例外处理。此外,如上文和附录 A 所述,Red Hat Enterprise Linux 的主要版本包含一组有限的向后兼容库,这些库包含在以前的主要版本中,以允许轻松迁移应用程序。通常,红帽应用更改的方式是尽量减少更改量并保持二进制兼容性。在某些情况下,例外情况可能适用于受控包装重新基准。

    因此,Oracle 建议在更改(补丁、升级等)后重新链接二进制文件,而 Redhat 仅做出“商业上合理的努力,以在所有次要版本中保持核心运行时环境的二进制兼容性”。

    对于二进制兼容性,不仅操作系统必须不更改应用程序二进制接口 (ABI),而且应用程序仅使用此接口而不使用其他可能未记录的例程。

    重新链接很容易,Oracle 提供了一个必须在正确环境中执行的脚本。所以实际上你可以添加链接到你的数据库的开始脚本,如果你有一个,并且每次启动数据库时都做这个链接。

    所需的 Linux 软件包可以在 Linux 的数据库安装指南中找到

    1. Oracle 数据库预安装任务

    4.8. x86-64 Linux 平台的操作系统要求

    4.8.1. 支持 x86-64 和 Linux 7 和 Oracle 12 的 Oracle Linux 7 和 Red Hat Enterprise Linux 7 发行版。您可以找到

    binutils-2.23.52.0.1-12.el7.x86_64 
    compat-libcap1-1.10-3.el7.x86_64
    compat-libstdc++-33-3.2.3-71.el7.i686 
    compat-libstdc++-33-3.2.3-71.el7.x86_64
    gcc-4.8.2-3.el7.x86_64 
    gcc-c++-4.8.2-3.el7.x86_64 
    glibc-2.17-36.el7.i686 
    glibc-2.17-36.el7.x86_64 
    glibc-devel-2.17-36.el7.i686 
    glibc-devel-2.17-36.el7.x86_64 
    ksh
    libaio-0.3.109-9.el7.i686 
    libaio-0.3.109-9.el7.x86_64 
    libaio-devel-0.3.109-9.el7.i686 
    libaio-devel-0.3.109-9.el7.x86_64 
    libgcc-4.8.2-3.el7.i686 
    libgcc-4.8.2-3.el7.x86_64 
    libstdc++-4.8.2-3.el7.i686 
    libstdc++-4.8.2-3.el7.x86_64 
    libstdc++-devel-4.8.2-3.el7.i686 
    libstdc++-devel-4.8.2-3.el7.x86_64 
    libXi-1.7.2-1.el7.i686 
    libXi-1.7.2-1.el7.x86_64 
    libXtst-1.2.2-1.el7.i686 
    libXtst-1.2.2-1.el7.x86_64 
    make-3.82-19.el7.x86_64 
    sysstat-10.1.5-1.el7.x86_64 
    

    但我不确定手册中的这些信息有多可靠。>ou 还可以对某些二进制文件运行“ldd”命令以找出它使用的库。

    $ ldd  $ORACLE_HOME/bin/oracle
    linux-vdso.so.1 =>  (0x...)
    libodm11.so => $ORACLE_HOME/lib/libodm11.so (0x...)
    libcell11.so => $ORACLE_HOME/lib/libcell11.so (0x...)
    libskgxp11.so => $ORACLE_HOME/lib/libskgxp11.so (0x...)
    librt.so.1 => /lib64/librt.so.1 (0x...)
    libnnz11.so => $ORACLE_HOME/lib/libnnz11.so (0x...)
    libclsra11.so => $ORACLE_HOME/lib/libclsra11.so (0x...)
    libdbcfg11.so => $ORACLE_HOME/lib/libdbcfg11.so (0x...)
    libhasgen11.so => $ORACLE_HOME/lib/libhasgen11.so (0x...)
    libskgxn2.so => $ORACLE_HOME/lib/libskgxn2.so (0x...)
    libocr11.so => $ORACLE_HOME/lib/libocr11.so (0x...)
    libocrb11.so => $ORACLE_HOME/lib/libocrb11.so (0x...)
    libocrutl11.so => $ORACLE_HOME/lib/libocrutl11.so (0x...)
    libaio.so.1 => /lib64/libaio.so.1 (0x...)
    libdl.so.2 => /lib64/libdl.so.2 (0x...)
    libm.so.6 => /lib64/libm.so.6 (0x...)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x...)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x...)
    libc.so.6 => /lib64/libc.so.6 (0x...)
    /lib64/ld-linux-x86-64.so.2 (0x...)
    $
    

    但我认为重新链接 Oracle 软件更容易。这并不难。根据Metalink注释,设置变量

    ORACLE_HOME
    PATH to include $ORACLE_HOME/bin
    LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib
    

    并运行

    $ORACLE_HOME/bin/relink all
    
    • 0
  4. Stephen Darlington
    2009-07-09T01:36:35+08:002009-07-09T01:36:35+08:00

    对于您的所有情况,我建议不要。我一直明白,重新链接是为了升级或修补Oracle安装的一部分,而不是它的支持操作系统。

    • -1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve