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一方的力量。