【ASK_ORACLE】Relink ASM單例項資料庫詳細步驟

Attack_on_Jager發表於2022-03-17

前言

在介紹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)手動relink

A)  在 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成功!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2871957/,如需轉載,請註明出處,否則將追究法律責任。

相關文章