NetWorker:媒體資料庫維護和故障排除
Summary: 本文介紹識別和處理與媒體資料庫相關的問題的方法,以及維護和保護的最佳做法。
Symptoms
- 無法啟動服務。
- 每日 伺服器保護>伺服器備份 工作流程失敗。
- 與儲存集或客戶機相關的不完整或誤導性資訊由
mminfo命令,或在 NetWorker Management Console (NMC) 或 NetWorker Web 使用者介面 (NWUI) 管理中查詢或瀏覽儲存集時。 - 與無法找到存儲集、客戶機或卷相關的備份、恢復或克隆問題。
- 伺服器精靈紀錄或主控台中與媒體資料庫相關的錯誤:
nsrmmdbd WiSS code assertion error (st_nextrec: rec loop detected)
nsrmmdbd error, ss_clone_ensure_clone_eligibility: assertion, invalid parameters or code segment
nsrmmdbd XCHK ssid:saveset_short_ssid host:saveset_hostname name:saveset_name has a fragment with an invalid volid:saveset_volid
nsrmmdbd NSR warning WiSS code assertion error (ST_readvdir: directory read failed)
nsrmmdbd NSR critical Unexpected error reading long record directory: an invalid slot number
nsrmmdbd NSR warning partial record error, ssid: saveset_short_ssid saveset_long_ssid flags:0x00010101 size:0 files:0 tm:datetime cloneid
nsrmmdbd NSR notice media db must be scavenged
nsrmmdbd NSR critical media db scavenge failed
nsrmmdbd NSR warning Cannot scavenge path_to_mmvolume6 (Permission denied) - recover from backup media
nsrmmdbd NSR warning Cannot scavenge path_to_mmvolume6 (unknown error code) - recover from backup media
nsrmmdbd MDB warning can't fetch save set <saveset ID>
nsrmmdbd MDB warning Unable to fetch child save set <saveset ID> for cover set <saveset ID>
- 媒體資料庫中的許多存儲集突然丟失,或可用磁碟存儲可用空間突然跳躍。
- 軟體無法到期或刪除儲存集,導致儲存裝置快速耗用。
Cause
與任何資料庫一樣,媒體資料庫可能會在對其正常操作進行任何推斷的情況下受到不同程度的損壞,例如。
- 意外關機
nsrmmdbd進程(核心轉儲、系統崩潰、重新啟動或斷電)。 - 交易中斷 (外部安全性軟體干擾或磁碟空間耗盡)。
- 邏輯內部問題(代碼缺陷或未處理的情況)。
- 直接干擾 NetWorker 管理的儲存裝置上的媒體資料庫檔案或儲存集檔案。
通過以下一般做法,可以最好地保護媒體資料庫免受損壞:
- 如果可能,請使用單獨的本地磁碟分區
/nsr/mm資料夾,這有助於防止其他進程耗盡磁碟空間等情況。此分區應至少為媒體資料庫大小的 3 倍;大型媒體資料庫為 10 GB;100 GB 應該足以進行任何安裝。 - 確保每天完成伺服器備份工作流,以便在發生災難時提供媒體資料庫和關鍵災難恢復資源( 引導)的備份。
- 使用
mminfo -B定期命令。 - 切勿允許其他 NetWorker 伺服器同時存取 NetWorker 伺服器的儲存磁碟區,否則可能會導致資料遺失。
- 如果防毒軟體安裝在 NetWorker 伺服器上,請為
/nsr目錄,以防止防毒軟體掃描、修改或移除 NetWorker 檔案。 - 避免手動刪除 NetWorker 儲存裝置中的任何檔案,以嘗試釋出空間。NetWorker 具有每天執行的空間回收例行程序,如果認為這些例行程序會失敗,則應聯絡支援部門。
- 通常,對於數據區域規劃,在需要時將相同類型的數據保存到相同的池中以便於維護,例如 vProxy 儲存集、文件系統存儲集和 Oracle 資料庫存儲集位於單獨的池中。
- 請勿忽略與媒體資料庫錯誤相關的訊息 - 如有疑慮,請聯絡支援部門。
請注意 NetWorker 的媒體資料庫與儲存關係,並使用 「需要掃描」旗標保護磁碟區:
- 作為伺服器備份工作流程的一部分,NetWorker 每天都會執行到期程序。此作業會計算保留和相依性,並使超過其保留期且沒有未到期相依性的儲存集到期。完成此作業後,NetWorker 會嘗試刪除所有過期的磁碟區儲存集。在此之後,將針對每個卷運行空間回收操作,從沒有相應媒體資料庫條目的磁碟介質中刪除存儲集檔。這意味著,如果媒體資料庫損壞,或者您將資料庫恢復到以前的時間點,則可能會刪除有效數據。
- 如果您認為任何磁碟卷有問題,為確保未刪除有效數據,請確保該卷已卸載並標記為“需要掃描”。這也適用於恢復到前一個時間點后的卷(其中有效的存儲集可能存在於恢復點之後創建的磁碟上,並且在恢復的資料庫中沒有條目)。
- 「需要掃描」允許正常備份、復原或複製,但會防止正常到期或刪除,因此請確定僅用於保護被認為有危險的磁碟區,並在返回正常操作時移除。必須卸載卷才能設置或刪除此標誌。NetWorker 伺服器災難回復後,磁碟區通常會標示為「需要掃描」(
nsrdr),以防止在災難恢復方案中丟失不必要的數據。
Resolution
有幾種方法可以嘗試驗證和更正媒體資料庫問題。在嘗試上述任何一種方式之前,為了評估影響,請在保存集、磁片區、用戶端或其他任何內容之前和之後建立報告,以查看是否已移除儲存集、磁片區、用戶端或其他任何內容。
在命令列中,在託管輸出的目錄中,運行以下命令以比較該過程之前和之後的媒體資料庫屬性:
mminfo -C mminfo-C_pre.mmimminfo -X mminfo-X_pre.mmimminfo -ar "volid,type,location,pool,volume,state,volflags,written,savesets" -q family=disk -xc, > mminfo-vol_pre.mmi
完成維護後,將每個檔案重新執行到單獨的檔案 (例如 *_post.mmi) 並比較值。
nsrim - 每日伺服器保護
每天運行伺服器保護 > 伺服器備份工作流,並隨之運行過期操作。過期操作將運行 nsrim, 這是 NetWorker 的原生維護實用程式。這也可以直接運行,但可能需要幾分鐘到幾個小時,具體取決於伺服器負載和媒體資料庫大小:
nsrim -X > nsrim.out 2>&1
除非此過程無法每天運行,否則這不太可能更改任何內容。檢查精靈記錄 nsrim 每日完成度。如需更多資訊,請參閱:NetWorker:如何排程 NetWorker 線上檔案和媒體索引維護作業
服務重新啟動
重新啟動 NetWorker 服務會強制進行各種啟動檢查,這可能會使精靈記錄錯誤訊息中出現問題,並可能會修正任何問題。在停止服務之前,如果資料庫問題看起來很嚴重,請確保有足夠的可用空間,並且引導位置已知 (mminfo -B 輸出)。理想情況下,執行 nsrmmdbasm -s /nsr/mm/mmvolrel_path > mm.xdr 第一個嘗試提取當前媒體資料庫副本。重新啟動服務之前,請先建立 /nsr/mm/mmvolrel 資料夾,因為以後出於鑑識或恢復目的可能需要它。如需更多資訊,請參閱:如何使用 nsrmmdbasm 匯出 NetWorker 媒體資料庫
匯出和重新導入媒體資料庫。
此過程通過僅提取可行的媒體資料庫記錄並將其重新導入伺服器而不停止服務來避免完全災難恢復。但是 - 這應該只在伺服器空閒時執行,切勿在作業執行時嘗試。使用完整路徑代替 mmvolrel (可能因安裝或作業系統而有所不同)
- 開始之前,請在取消掛接後將所有磁碟區標記為需要掃描。如果為託管磁碟卷的設備設置 了自動媒體管理 ,則必須先禁用此功能。磁帶卷不需要此步驟。
注意:以下文章介紹如何將卷標記為「不需要掃描」;但是,它也可用於將卷標記為“需要掃描”。若要執行此操作,請依照指示操作,但請設定「需要掃描」,而非「不需要」 NetWorker:如何將磁碟區從「需要掃描」移動到「不需要掃描」
- 執行
mminfo序言中描述的命令,用於準備初步報告。 - 檢查媒體資料庫的大小
mmvolrel資料夾與記錄 - 請確定以下項目:
nsrck小nsrim小nsrmmdbasm進程正在運行;如果 MM 父資料夾中有任何大型、舊或最近未修改的檔案,例如mm/[alphanumerics]、移動或刪除(如果未被任何進程鎖定)。 - 將媒體資料庫解壓縮到 XDR 檔案中:如何使用 nsrmmdbasm 匯出 NetWorker 媒體資料庫
- 將新檔案的大小與
mmvolrel資料夾 - 如果大小應相似。如果它很小(4 B 或少數 KB),則命令將失敗。如果規模較小 - 程序中可能移除了損毀的記錄。 - 在 NMC/NWUI 中將伺服器 的狀態 欄位設為 「災難回復 」,或使用
nsradmin。 - 使用直接從媒體資料庫解壓縮檔案復原
nsrmmdbasm再次命令:nsrmmdbasm -r -2 < mm.xdr - 完成後,請執行相同的
mminfo如序言中所述,並比較每個卷的 存儲集 和 寫入 值,確保所有卷都存在;同樣,mminfo -C值應相同。 - 如果存在任何差異,請注意並仔細考慮如何繼續,如果您對看到的結果沒有信心,請聯繫支持人員:
- 對於看起來健康的卷,可以刪除“需要掃描”標誌並裝入卷,因為如果 存儲集 和 寫入 的值一致,則如果卷中似乎沒有刪除任何存儲集,則不會有刪除存儲集的危險。
- 顯示較少儲存集或寫入 總數較低的磁片區應保留「 需要掃描 」標誌,並執行掃描器:
scanner -i devicename重新引入在卷上不再有記錄的檔。一旦scanner已完成每個卷,再次檢查存儲集計數,並刪除 “需要掃描”標誌。請參閱:NetWorker:如何將磁碟區從「需要掃描」移動到「不需要掃描」 - 信心十足後再重新掛載磁碟區
scanner已取代預期遺失的儲存集。
NetWorker 伺服器災難回復 (nsrdr)
完整災難回復由 nsrdr 不僅恢復媒體資料庫,還恢復其他伺服器元素,如資源資料庫和作業資料庫。在嘗試繼續此操作之前,請參閱您所在版本的 伺服器災難回復和可用性最佳實踐指南 。
此命令要求儲存節點為連線狀態且可連線,才能完成。另請參閱:NetWorker:NetWorker 伺服器災難回復 (NSRDR)