1. 程式人生 > >CommVault備份Oracle相關問題總結

CommVault備份Oracle相關問題總結

1. 文件說明

本文件主要描述了工程師在安裝配置及使用CommVault時,與ORACLE相關的常見問題及解決思路和辦法。

主要包括以下幾部分內容:

  • 在哪裡檢視錯誤資訊
  • 與ORACLE相關常見問題 

2. 詳細內容

2.1. 在哪裡檢視錯誤資訊

  • 在CommCell Console上,在作業控制器裡面找到失敗的任務,通過屬性找出相關的失敗資訊和建議 ,同時通過失敗任務的屬性裡也可以檢視RMAN日誌,觀察RMAN有什麼報錯資訊;
  • 檢視失敗任務的百分比來大致判斷問題所在;
    • 0%時失敗表示問題發生備份之前 (會不會可能是CommServe和客戶端的連線問題?)
    • 5%時失敗表示客戶端已和CommServe連線上,RMAN的指令碼已生成但是可能RMAN在備份資料庫時已經產生錯誤
    • 85%時失敗表示資料庫備份已經完成,問題可能出在備份歸檔日誌階段
  • 檢查各種不同階段備份問題的日誌
  • 如果備份在0%的時候失敗,請檢查通訊方面的問題; 同時也要檢查資料庫方面的問題,如:
    • 資料庫是否執行? ----在Comm Cell控制檯上面檢視資料庫例項的屬性,確認資料庫狀態是MOUNTED、OPEN或者UNKNOWN的狀態;
    • 檢查相關Galaxy日誌 ----檢查CommServe上的SrvOraAgent.log;檢查客戶端上面的cvd.log和CIOraAgent.log 
  • 如果備份在5%的時候失敗
    • 檢查RMAN指令碼是否正確生成,並檢查RMAN錯誤資訊;
    • 可以在CommCell的GUI上檢視RMAN的錯誤日誌;或者在客戶端上檢查RMAN日誌。日誌放在Simpana安裝目錄的iDataAgent目錄的jobResults下,典型的目錄為:/opt/simpana/iDataAgent/jobResults/CV_JobResults/2/0/*/backup.out下,其中*是失敗任務的Job ID, backup.out為一個包含了RMAN指令碼和登陸資訊的文字檔案
    • 其它日誌:CommServe上的SrvOraAgent.log和cvd.log 客戶端上面的CIOraAgent.log和ORASBT.log, 其中ORASBT.log裡包含了介於Oracle和Galaxy之間的SBT層的特別資訊;
  • 如果備份在85%的時候失敗,在這種情況下,同樣需要檢查上面提到的所有日誌,即:
    • 檢查RMAN指令碼是否正確生成,並檢查RMAN錯誤資訊:可以在CommCell的GUI上檢視RMAN的錯誤日誌;或者在客戶端上檢查RMAN日誌
    • 其它日誌:CommServe上的SrvOraAgent.log和cvd.log 客戶端上面的CIOraAgent.log和ORASBT.log;
    • 除了以上日誌以外,還需要檢查儲存策略裡面,關於日誌備份(Log backups)的儲存策略是否和資料庫備份的儲存策略是否相同?會不會儲存策略有什麼問題?

2.2. 與ORACLE相關的常見問題

1. 在Windows系統上常見錯誤

在Comm Cell上建立新的ORACLE_SID時,對資料庫進行初始化配置時,使用者帳戶這一欄需要對Oracle目標資料庫(Target DB)具有Full Access的許可權,否則資料庫例項配置可能會失敗,需要輸入的帳戶格式為:DOMAINNAME\Username 或者 主機名\Username. 關於使用者帳號配置錯誤的典型錯誤資訊為:Warning: Unable to establish connectivity with these instance properties for [SID], do you want to modify properties again?

2. 典型的安裝配置錯誤

a) 在配置ORACLE的時候,輸入的“Target connect string”的Oracle使用者不具備sysdba的許可權。在RMAN備份中,要求所使用的備份帳號具有sysdba的許可權。

b) 在安裝完成後,可以檢查%PATH%的環境變數中是否已經加入了CommVault的安裝目錄,當CommVault在備份時呼叫CommVault的動態連結庫檔案ORASBT.dll會讀取PATH環境變數;

3. 在UNIX系統上,安裝Simpana for Oracle的iDA時,不需要利用Oracle的軟連結將RMAN的連結庫檔案指向CommVault,CommVault軟體在備份的過程中,會自動在RMAN指令碼中呼叫CommVault自己的動態連結庫檔案。

具體的語法格式如下:

SBT_LIBRARY=/path/to/library/libraryfile (Required by UNIX Clients)

備註:• 引數 SBT_LIBRARY 僅適用於Unix平臺.•

在當前版本中 以下ENV環境變數引數僅僅在叢集環境中或者在同一臺主機上採用多例項時,需要加入

These parameters are "CvClientName" & "CvInstanceName" and are parsed using the ENV parameter in the allocatecommand.

以下是一個示例:ENV=(CvClientName=ClientName, CvInstanceName=Instance001)

CvClientName 必須和在CommCell軟體介面上定義的客戶端名稱相同(CommCell軟體介面上有關於客戶端計算機的屬性有兩個,一個是Client Computer,一個是Host Name,需要使用Client Computer Name)
CvInstanceName 是CommVault軟體的例項名稱. (一般為Instance001).

**NOTE: Software Instance != Oracle Instance.

可能在安裝完成後,由於許可權等原因無法正確識別到CommVault的動態連結庫檔案,可以通過以下的指令碼簡單測試出來:

run {allocate channel ch1 type 'sbt_tape'
PARMS="BLKSIZE=262144,
SBT_LIBRARY=/opt/galaxy/Base/libobk.so,
ENV=(CvClientName=groucho,CvInstanceName=Instance001)"
TRACE 2 DEBUG 2;
}

請確認SBT_LIBRARY 設定的libobk.xx的庫檔案位置完全正確,一般根據Oracle的不同版本和不同的作業系統平臺,放在 Base 或者Base64 目錄下. SBT_LIBRARY的設定路徑如下所示:

Platform

SBT_LIBRARY

AIX with 64 bit Oracle

<Client Agent Install Path>/Base64/libobk.a(shr.o)

HP UX PA RISC 64 bit Oracle

<Client Agent Install Path>/Base64/libobk.sl

Solaris with 64 bit Oracle

<Client Agent Install Path>/Base64/libobk.so

All Other Unix platforms

<Client Agent Install Path>/Base/libobk.so

在執行完上述的命令列,有類似於以下的資訊出來:

RMAN> run {allocate channel ch1 type ‘sbt_tape’;}

allocated channel: ch1 channel ch1: sid=22 devtype=SBT_TAPE

channel ch1: CommVault System for Oracle: Version 9.0...

release: ch1 RMAN>

如果出現CommVault字樣,表示Oracle讀取CommVault的動態連結庫檔案成功,當執行以上命令失敗後,會出現一些錯誤資訊,如果出現ORA-07111錯誤,表示許可權有問題,如在安裝Simpana的時候使用了不正確的使用者組,我們可以從目錄資料庫的/tmp下面的cvlibobk.log來檢查, 檢查Galaxy iDA for Oracle安裝時ORACLE的使用者名稱和組許可權等是否正確。

4. 在Windows平臺上,預設情況下,Galaxy安裝目錄\Base目錄是加入到系統的路徑中的,CommVault可以自動發現執行在Windows平臺上的Oracle的庫檔案介面的原因,是叫ORASBT.dll的庫檔案會在ORACLE啟動時自動裝載。另外,如果系統上需要安裝CommVault Service Pack的補丁中含有與ORASBT.dll相關的補丁,ORACLE必須要被Shutdown後重啟,以確認新的ORASBT.dll被正確load.

5. 如果Archive Log不利用RMAN指令碼來自動刪除,而是手動將其刪除,當下次再利用RMAN指令碼備份Archive Log時,會由於找不到相應的歸檔日誌或者Log Sequence而失敗,需要利用crosscheck功能來同步Recovery Catalog DB或者Control File. 具體的命令格式在不同的Oracle版本不同,具體請參考Oracle Metalink網站; 或者參考本論壇上的crosscheck archivelog相關的文章。

6. 如果利用RMAN備份失敗,報錯資訊中有關於”Media Management Layer”相關的錯誤資訊,可以從客戶端(Target DB)上的ORASBT.log中找出更詳細的報錯資訊。常見的問題有:

  • 磁帶沒有被正確Load
  • 與Media Agent之間的網路連線問題

7. 其它關於ORACLE備份錯誤,很多都是由於ORACLE本身的問題導致,所以需要請ORACLE DBA一起協作解決,不能只依靠CommVault一方的力量。