【ASK_ORACLE】Relink ASM单实例数据库详细步骤

来源:这里教程网 时间:2026-03-03 17:30:55 作者:

前言在介绍relink操作前,我们先来了解一下什么是relink,为什么要relink,以及relink的场景。来看一下 Oracle官方是怎么定义和说明的,分为三个部分 1. Relink 的定义任何语言所预定义的函数都被定义在那种语言的库文件中,必须编译代码来创建一个二进制格式的文件(对象文件)。这个对象文件然后被连接到 OS 的库文件来创建一个可执行文件。成功的链接应使得所有的函数定义都能被找到,链接从它的组件中生成一个可执行文件。在这个语境中链接(linking)和 relinking 意义相同,可以互换。可执行文件都会从预编译组件中建立起来。Relink设计到的文件类型包括:* .c   (源代码)* .o   (对象文件)* .a   (归档文件)* .so 或 .sl on HP/UX (PA-RISC) (库文件)  2. Relink Oracle Home库Oracle 软件是以对象文件(.o文件),归档文件(.a文件)形式发布的,最后以压缩的 jar 格式提供。然后在安装过程中,这些对象文件被在操作系统级别“relink”,创建可执行文件。这使得 Oracle 可以与 OS 系统库提供的函数形成可靠的整合。通常,relinking 过程中,当前的可执行文件被重命名和保存,而新的可执行文件被生成。一旦新的可执行文件出现,并且你成功的测试过这些新的可执行文件工作正常,就可以删除 GI_HOME/bin 目录下的旧的可执行文件。每个旧的可执行文件的文件名上都会附加一个‘O’,例如,’exp’重命名为’expO’。提供对象文件的优点是它减小了补丁和包的大小;不提供完整的库文件和程序,而是只发布对象文件,之后与 OS 库文件链接来生成可执行文件。 所以,为了将 Oracle 提供的对象文件与 OS 系统库文件链接,需要执行Oracle Home relinking。Relinking确保了与 OS 系统库文件提供的函数的可靠整合。 3. 什么时候需要relink (1)自动relink使用 Oracle Universal Installer ( OUI ) 安装 Oracle Database通过 Oracle Universal Installer ( OUI ) 安装 Oracle Database Patchset使用“opatch 工具”安装 Oracle Database Patch (2)手动relinkA)  在 OS 升级之后,通常 OS 供应商会保证操作系统库文件完整性,因此,除非有特殊说明,不需要重新安装或者 relink Oracle 软件。而且,Oracle 推荐在 OS 升级后对 Oracle Home 的库执行手动的 relinking。硬件的改变不需要 relinking。B)   在操作系统安装了补丁之后(推荐)。C)   Oracle Home 的安装过程的 relinking 阶段出现错误或者警告。D)   安装一个 RDBMS 补丁在 relinking 阶段失败。E)   应用报错说 RDBMS home 缺失库文件。F)   诊断 RDBMS Home 二进制可执行程序(binary)的问题。G)  在手动修改 RDBMS home 的二进制可执行程序的权限之后。H)  验证 Oracle Home 二进制可执行程序的完整性。I)  重置 Oracle Home 二进制可执行程序的权限。J)  重新创建 Oracle Home 二进制可执行程序。K ) Oracle 推荐在在 OS 升级,降级,打补丁或者卸载补丁,或者任何影响 OS 库行为的改变之后。 看懂了官方的说明后,下面我们正式开始relink操作! Relink ASM单实例DB步骤

实验环境

搭建平台:VMware Workstation

OS:RHEL 7.6

Grid&DB:Oracle 12.2.0.1 1. 停数据库实例和ASM实例

$ su -   ##ASM单实例可以直接用grid用户启停,这里由于启停RAC的习惯,选择用root用户操作
# $GI_HOME/bin/crsctl stop has   ##停止OHASD进程,这样可以同时停止DB实例和ASM实例;需要把$GI_HOME的路径设置到root的环境变量中
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'testdb'
CRS-2673: Attempting to stop 'ora.SPFILE.dg' on 'testdb'
CRS-2673: Attempting to stop 'ora.db1.db' on 'testdb'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'testdb'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'testdb' succeeded
CRS-2677: Stop of 'ora.db1.db' on 'testdb' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'testdb'
CRS-2673: Attempting to stop 'ora.RECO.dg' on 'testdb'
CRS-2677: Stop of 'ora.DATA.dg' on 'testdb' succeeded
CRS-2677: Stop of 'ora.RECO.dg' on 'testdb' succeeded
CRS-2677: Stop of 'ora.SPFILE.dg' on 'testdb' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'testdb'
CRS-2677: Stop of 'ora.asm' on 'testdb' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'testdb'
CRS-2677: Stop of 'ora.cssd' on 'testdb' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'testdb'
CRS-2677: Stop of 'ora.evmd' on 'testdb' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'testdb' has completed
CRS-4133: Oracle High Availability Services has been stopped.

  2. 执行unlock操作 需要新打开一个session窗口来操作!

$ su -
# $GI_HOME/crs/install/roothas.sh -unlock
Using configuration parameter file: /oracle/app/grid/product/12.2.0/grid/crs/install/crsconfig_params
 
Successfully unlock /oracle/app/grid/product/12.2.0/grid

  注: 11g的roothas.sh就变成了roothas.pl,执行命令一样  3. 删除文件config.o删除的目的是让relink操作重新生成该文件,但为了保险起见,重名了这个config.o文件即可# su - grid$ mv $GI_HOME/rdbms/lib/config.o $GI_HOME/rdbms/lib/config.o_bak220301  4. 执行relink all

# su - grid
$ $GI_HOME/bin/relink all
 
writing relink log to: /oracle/app/grid/product/12.2.0/grid/install/relink.log

  5. 执行lock操作 (1)需要新打开一个session窗口来操作

$ su -
# $GI_HOME/rdbms/install/rootadd_rdbms.sh

  (2) 开一个新session窗口操作

$ su -
# $GI_HOME/crs/install/roothas.sh -postpatch

注: 1)11g命令是 $GI_HOME/crs/install/roothas.pl -patch 2)执行完roothas.sh后,OHAS进程会启动,ASM实例和DB实例也会启动。保险起见,我们来验证一下:

# $GI_HOME/bin/crsctl status res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS      
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ACFSBIG.dg
               ONLINE  ONLINE       testdb                                      
ora.DATA.dg
               ONLINE  ONLINE       testdb                                      
ora.LISTENER.lsnr
               ONLINE  ONLINE       testdb                                      
ora.RECO.dg
               ONLINE  ONLINE       testdb                                      
ora.SPFILE.dg
               ONLINE  ONLINE       testdb                                      
ora.asm
               ONLINE  ONLINE       testdb                   Started             
ora.ons
               OFFLINE OFFLINE      testdb                                      
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       testdb                                      
ora.db1.db
      1        ONLINE  ONLINE       testdb                   Open               
ora.diskmon
      1        OFFLINE OFFLINE                                                  
ora.evmd
      1        ONLINE  ONLINE       testdb

关键进程都已启动,relink成功!

相关推荐