大數據“復活”記
1998
2025-03-31
概述
業界一種主流的備份存儲管理軟件是NetBackup(本文簡稱NBU),其優勢是可以將備份文件存儲到磁帶介質上。
目前NetBackup軟件提供了兩種備份方式:
1)? 從NetBackup軟件界面進行操作,選擇要備份或恢復的文件,或者使用其對應的命令行工具bpbackup;
2)? 以GaussDB為代表的數據庫,采用NetBackup軟件提供的libxbsa64.so動態庫(實現了標準的XBSA系列接口),將本地數據傳送到NBU服務器,然后由NBU服務器負責落盤到磁帶介質上。GaussDB的專用備份工具Roach,負責調用libxbsa64.so庫將本地數據庫文件備份到遠端NBU服務器。
本文簡要描述了華為GaussDB數據庫和NetBackup對接進行備份、恢復的配置方法與注意事項。
1. GaussDB備份到NBU的部署介紹
1.1 NBU備份GaussDB的部署架構
GaussDB數據庫提供了專門的備份恢復工具Roach,該工具與NBU交互,完成GaussDB數據庫文件備份到NBU的過程。線下場景下,整個備份恢復流程由Roach工具或FusionInsight等封裝了Roach命令行調用的界面軟件及腳本發起。后續線上場景下將從DWS管控面發起,目前從管控面僅支持了OBS備份,正在集成NBU備份功能。
圖1-1 NBU備份GaussDB的部署圖
如上圖所示,數據庫集群中每個節點的Roach進程讀取本節點GaussDB數據庫文件,通過XBSA接口發送給NBU服務器,NBU Master Server控制各個NBU Client收發數據,數據最終到達NBU Media Server指定的磁盤或磁帶存儲介質。集群恢復時亦然,只不過數據流向與上圖相反。
本圖示例了最典型的NBU部署方式。實際使用中,NBU Master Server和NBU Media Server可能合布在同一臺機器,NBU Server和其中一個NBU Client也可能合布在同一臺機器。NBU Master Server和NBU Media Server可能有多臺,分組管理部分NBU Client。也可能多個Server組成Clustered Master Server(高版本NetBackup支持)來增強NBU服務器側的高可用性。
1.2 與NetBackup軟件的配套情況
因Roach工具只是調用NetBackup提供的XBSA標準接口庫,與NetBackup軟件并無耦合,因此從原理上講,GaussDB數據庫可以通過Roach工具無縫對接到任何版本的NetBackup,只需正確配置NBU相關環境。
目前業界常用的NetBackup軟件版本有:
l? NetBackup 7.5
l??NetBackup 7.6
l? NetBackup 7.7
l? NetBackup 8.1
l? NetBackup 8.2
當前GaussDB和NetBackup可同時支持的操作系統平臺情況如下(具體能支持的OS小版本號以GaussDB產品文檔為準):
l? Suse11~Suse12
l? Redhat7/CentOS x86
l? 不支持ARM和Euler系統,因NetBackup尚無對應安裝包
本文將以NetBackup 7.5版本為例,來介紹GaussDB備份恢復相關的NBU配置。
2. NBU環境配置流程與注意事項
2.1 安裝NBU Server軟件
NetBackup軟件的安裝請詳細參考NetBackup官方文檔,不在本文描述范圍內。為了示例方便,本文僅簡要說明這個過程。
本文意在說明NBU配置注意事項,因此僅采用最簡單的配置部署方式作為示例,并簡要描述這種部署方式下的NBU安裝過程。
本文中,假設GaussDB數據庫集群共有3個機器,hostname分別為plat1、plat2、plat3,采用單一的NBU Master Server和NBU Media Server,且Mater Server與Media Server合布在一臺機器,選擇plat3部署NBU Server,即該節點既做為NBU Server又做為NBU Client。本文只演示NBU存儲介質為磁盤的方式,磁帶沒有特殊的區別,只要按NBU官方文檔正確配置即可。
整個安裝過程都要使用root用戶。具體步驟如下:
步驟 1????? 用root登錄待安裝NBU Master Server的機器,本文為plat3。
解壓NBU Server安裝包后,切換到安裝目錄,以root用戶執行解壓后的install腳本:
./install
圖2-1 安裝NBU Server
安裝NBU Server的機器應選擇具有X11圖形化環境的機器,否則安裝后無法啟動java界面從而無法配置NBU環境。
步驟 2????? 按向導完成整個NBU Server的安裝過程。
安裝過程中,有多個交互式選擇的地方,可參考如下輸入:
1)Do you ? wish to continue? (y/n) (y) (回車默認)
2)Participate ? in the NetBackup Product Improvement Program? (y/n) (y) (回車默認)
3)Do you ? want to install NetBackup and Media Manager files? [y,n] (y) (回車默認)
4)Is it OK ? to install in /usr/openv? [y,n] (y) (回車默認)
5)Enter ? license key: 輸入軟件許可證編號
6)Do you ? want to add additional license keys now? [y,n] (y) n
7)Would you ? like to use "plat3" as the configured NetBackup server name of this ? machine? [y,n] (y) (回車默認)
8)Is plat3 ? the master server? [y,n] (y) (回車默認)
9)Do you ? want to add any media servers now? [y,n] (n) (回車默認)
10)Enter the ? Enterprise Media Manager server (default: plat3):(回車默認)
11)Do you ? want to start the job-related NetBackup daemons so backups and restores can ? be initiated? [y,n] (y) (回車默認)
12)Enter the ? OpsCenter server (default: NONE):(回車默認)
注:如上斜體的plat3為Master Serve節點的hostname。
至此,plat3上就安裝了NBU Master Server和NBU Media Server,同時默認安裝了NBU Client。
其它節點上尚未安裝NBU Client,稍后的章節會單獨進行安裝。
步驟 3????? 查看bp.conf文件。
查看NBU生成的/usr/openv/netbackup/bp.conf配置文件,里面CLIENT_NAME字段取值初始值應該為本機hostname。
該文件截圖前半部分如下:
圖2-2 NBU Server端的bp.conf文件
----結束
2.2 配置NBU備份環境
本節描述NBU備份策略、存儲、界面勾選項、配置文件修改相關事宜。
步驟 1????? 登錄NBU Master Server機器,在/etc/hosts中配置IP/hostname映射信息。
需要在Master Server的/etc/hosts中配置Media Server以及所有NBU Client的IP/hostname映射信息。
步驟 2????? 登錄NBU Media Server機器,在/etc/hosts中配置IP/hostname映射信息。
同理,需要在Media Server的/etc/hosts中配置Master Server以及所有NBU Client的IP/hostname映射信息。
步驟 3????? 登錄每個NBU Client機器,在/etc/hosts中配置IP/hostname映射信息。
需要在每個NBU Client的/etc/hosts中配置所有Master Server以及Media Server的IP/hostname映射信息。
以上幾步如果遺漏,會導致NBU備份出現通信問題。每次新增NBU Client或Server,都要重新執行如上三步。
步驟 4????? 登錄NBU Master Server機器,啟動NBU管理界面。
用root登錄NBU Master Server,執行如下命令:
cd /usr/openv/java/
./jnbSA
在彈出的java界面上,輸入Master Server的root密碼并點擊登錄,就可以進入NBU配置管理界面。
圖2-3 啟動NBU管理界面
NBU Client機器也可以啟動NBU界面,只要X11環境OK的話。
步驟 5????? 配置存儲單元(Storage Unit)。
本節僅描述存儲介質為磁盤的方式。
選擇左側Storage菜單,并點擊New Storage Unit按鈕,新建一個存儲單元。
圖2-4 新建存儲單元
在彈出的新建頁面,填寫存儲單元名字,并在Absolute pathname to directory填寫備份文件在服務器的哪個磁盤路徑下存儲。
本文配置的是單一NBU Server,且是單一存儲單元,因此GaussDB集群中所有節點的備份文件都會集中存儲到plat3這臺Media Server的該路徑下。
如果配置的是Storage Unit Group,則可以分組存儲在該服務器的多個路徑下。
此處我們的存儲介質是Disk,存儲類型應選擇BasicDisk。
圖2-5 配置存儲單元
在上圖中,應調大Maximum concurrent jobs的取值,建議至少高于數據庫集群中節點個數,否則其它節點就會排隊等待。
理想情況下,該取值為集群中節點數乘以單個節點的主DN數,或者更高一些(考慮到CN和從備DN也需要占用并發資源)。
如果上圖中指定的存儲單元路徑位于系統盤上,則必須勾選圖中的復選框,否則備份第一個對象時就會創建對象失敗。
This directory can exist on the root file system or system disk是說允許備份文件存放到根文件系統或系統盤上。
例如,本文中指定了/opt下面的子目錄作為存儲目錄,屬于系統盤路徑,所以必須勾選該復選框。
步驟 6????? 配置NBU策略(NBU Policy)。
選擇左側Policies菜單,點擊Add new policy按鈕,新建一個NBU策略。
圖2-6 新建NBU策略
在彈出的對話框中輸入NBU Policy的名字,比如nbu_policy。
在新的NBU策略配置頁面中,Policy類型選擇為DataStore,Policy存儲選擇為上一步新建的Storage Unit名稱。
另外,右側Active Go into effect at的時間應早于第一次備份發起時間。通常來說,默認是新建該Policy的時間且該復選框處于勾選狀態,
因此都是滿足條件的。
圖2-7 配置NBU策略
如果存儲介質是磁帶,則上圖Policy storage需要選擇為我們自己的磁帶庫名稱,比如xxx-robot-tld-0。
同時,Policy volume pool選擇為已安裝磁帶庫的Volume pool,后者可以從NBU配置主界面左側的Media->Volume Pools列表中查到。
上圖中Policy storage需要選擇為我們自己新建的存儲單元或磁帶庫名稱,如果不選擇會導致備份失敗。
步驟 7????? 配置NBU客戶端。
需要將所有NBU Client機器都加入到如下NBU客戶端列表中。
選擇左側Policies菜單,雙擊我們自己的NBU Policy名稱nbu_policy,
圖2-8 更改NBU策略配置
進入NBU策略配置界面(與上一步界面相同),點擊Clients標簽頁,點擊標簽頁下方的New按鈕,在彈出的Add Client對話框中逐個添加所有的NBU Client。對話框中Client name輸入各個NBU Client的hostname,操作系統下拉框中選擇最接近的系統選項,注意不要選錯,否則客戶端安裝會失敗,或安裝后功能不正確。
圖2-9 添加NBU客戶端
注意:NBU客戶端清單中的Client name非常重要,填寫為hostname還是IP效果都不一樣,可能導致備份或恢復失敗。
----結束
2.3 安裝NBU Client軟件
NetBackup提供了專門的工具腳本install_client_files,用于批量化安裝NBU Client。所有的操作都只需在NBU Server上執行。
該腳本有兩種常用方法:
1)????? 安裝單個NBU Client:
install_client_files ssh hostname
后面斜體的參數是待安裝Client機器的hostname。
NBU Server節點不需要單獨安裝NBU Client,安裝Server時就自動安裝過了。
2)????? 安裝所有NBU Client:
install_client_files ssh ALL
此處ALL必須是大寫。
步驟 1????? 登錄NBU Master Server命令行,安裝所有NBU Client。
用root執行如下命令,可以一次性遠程安裝好所有機器的NBU Client軟件。
cd /usr/openv/netbackup/bin
./install_client_files? ssh ALL
步驟 2????? 登錄各個NBU Client機器,檢查各客戶端的bp.conf文件。
如果上述兩種方法都無法成功安裝,可嘗試將NBU Client安裝包拷貝到對應的客戶端機器,解壓后執行其中的install腳本單獨安裝。
圖2-10 NBU Client端的bp.conf文件
此處bp.conf里面的CLIENT_NAME比較關鍵,應該與NBU Policy界面的NBU Client列表中的Client Name相同。
----結束
2.4 調整NBU配置
為了取得較佳的性能效果,需要配置合適的NBU參數。最常見的是NBU Server端的最大并發數和最大超時時間。
特別是客戶端個數上百時就很有必要,本文只有3個客戶端,因此取值相對較小。
步驟 1????? 調整Master Server端最大并發數。
選擇左側Host Properties -> Master Servers,鼠標右鍵點擊Master Server的hostname,點擊Properties菜單項。
圖2-11 配置Master Server的屬性
在彈出的Master Server屬性頁面中,切換到Global Attributes標簽頁,將Maximum jobs per client調整為6。
該取值決定了每個NBU Client上可以并發執行的任務數,最小應高于集群中單個節點的主DN個數,過小可能導致排隊現象。
根據NBU官方文檔說明,每個Master Server上,每1秒只能發起一個NBU job,其余job只能排隊。
同時,每個NBU Client上,每1秒也只能發起一個NBU job。
從NetBackup 8.2開始,Master Server取消了這個限制,每1秒可以并發發起多個不同NBU Client對應的job,
這對于節點數很多且數據量很大的數據庫集群可以大幅提升性能;但NBU Client的限制仍然存在。
該限制主要作用于XBSA接口的BSACreateObject(),每調用一次該接口就需耗費1s(但同一個對象的分片不會再次建連)。
圖2-12 調整Server端并發任務數
步驟 2????? 調整Master Server端最大超時時間。
在Master Server的屬性頁,切換到Timeouts標簽頁,將Client connect timeout、Client read timeout、Media server connect timeout都調整到300s以上。
圖2-13 配置Master Server的最大超時時間
步驟 3????? 調整Media Server端最大超時時間。
同Master Server一樣,在左側Host Properties菜單下,選擇Media Servers,并打開其屬性頁面。
圖2-14 配置Media Server的屬性
在Media Server的屬性頁,切換到Timeouts標簽頁,同樣調整Client connect timeout、Client read timeout、Media server connect timeout到300s以上。
圖2-15 配置Media Server的最大超時時間
----結束
3. NBU配置導致的常見備份問題
3.1 問題排查手段
本節列出一些NBU備份恢復失敗相關的常用排查方法,用于輔助NetBackup官方文檔和網站提供的定位方法。
步驟 1????? 查看NBU管理界面的Activity Monitor。
登錄NBU Master Server,打開NBU管理界面,點擊左側Activity Monitor,在備份和恢復過程中就可以看到每個job的詳細進展。
圖3-1 NBU的Activity Monitor界面
出現問題時,雙擊右側失敗的job,可以查看詳細的執行信息,從中獲取失敗的原因。
該方法是最直接的NBU交互問題定位手段。
圖3-2 查看NBU job的詳細執行信息
根據上面報出的錯誤碼和錯誤信息,結合NBU官網和產品文檔,就可以大致判斷出問題方向。
步驟 2????? 查看NBU日志。
默認情況下,NBU日志是關閉的,需要根據錯誤信息,打開對應的NBU組件的debug級別日志,重新復現問題,結合NBU官方文檔分析日志。
左側Host Properties下面可以分別設置Master Servers/Media Servers/NBU Clients的日志級別。
其中NBU客戶端的日志選擇比較簡單,從0改為5就可以打印最詳細的日志。
圖3-3 NBU Client的日志級別設置
對于NBU Server來說,建議選擇相干的NBU組件即可。
比如bpbrm是NBU備份恢復管理模塊(NetBackup backup and restore manager),
而bptm是NBU磁帶管理模塊(NetBackup tape manager)。
圖3-4 Media Server的日志級別設置
步驟 3????? 查看GaussDB備份恢復日志。
可以結合GaussDB備份恢復工具Roach的日志進行分析,日志位于$GAUSSLOG/roach下面。
步驟 4????? 使用虛擬磁帶庫VTL模擬磁帶問題。
因磁帶機比較昂貴,遇到磁帶特有的問題,可以采用虛擬磁帶庫來模擬復現。
VTL(Virtual Tape Library)可以模擬各種磁帶類型,配置和安裝方法在此不做描述。需要配合專門的硬件(HBA卡)使用。
步驟 5????? 從后臺命令行執行備份恢復,或驗證NBU單表備份恢復。
可以用集群管理員用戶從后臺命令行登錄集群節點,用GaussDB的GaussRoach.py腳本發起備份恢復操作,來對比驗證問題。
具體使用方法參見GaussDB產品手冊,此處不再描述。
同時,還可以減少數據量,嘗試單表粒度的備份恢復,來快速排查NBU環境配置問題。進行NBU單表備份恢復的優點是對用戶影響較小、耗時較短。
步驟 6????? 排查常見的配置文件問題。
主要包括Master Server、Media Server、NBU Client上的/etc/hosts及/usr/openv/netbackup/bp.conf文件。
步驟 7????? 排查常見的網絡配置問題。
主要包括NBU管理界面的Master Server和Media Server各種超時時間,以及防火墻設置。
步驟 8????? 結合XBSA常見錯誤碼列表進行分析。
如果是XBSA接口訪問報錯,Roach日志和NBU日志中通常都會打印相應錯誤碼。
圖3-5 XBSA常見錯誤碼參考
詳細可參考:
http://www.iiug.org/onbar/debug.html#xbsarc
3.2 找不到客戶端hostname導致NBU備份恢復失敗
【主要現象】從NBU Activity Monitor失敗任務的詳細信息界面,以及NBU日志文件/usr/openv/netbackup/logs/user_ops/dbext/logs下的日志中有“client hostname could not be found (48)”報錯語句。
【原因分析】可能是NBU Master Server和Media Server的/etc/hosts中沒有全部加入所有NBU Client的IP/hostname映射。參考:
https://www.veritas.com/content/support/en_US/article.100016804
http://systemmanager.ru/nbadmin.en/nbu_48.htm
3.3 正確配置/etc/hosts后磁盤成功而磁帶失敗
【主要現象】出現找不到客戶端hostname報錯后,正確配置了Master Server和Media Server的/etc/hosts,但執行NBU備份磁盤可以成功,而磁帶高概率失敗。
【原因分析】可能是NBU host緩存導致,每次修改/etc/hosts后,建議立即清理緩存。原因是NBU緩存了hostname到IP地址的映射,以便最大程度減少DNS查詢,雖然修改了/etc/hosts等IP/hostname映射相關的配置,但NBU host緩存可能1小時以上才會刷新,未能立即生效。
清理方法是:用root登錄NBU Media Server,執行如下命令:
cd /usr/openv/netbackup/bin
./bpclntcmd ? -clear_host_cache
3.4 新添加的NBU Client備份報錯
【主要現象】在數據庫集群中新增幾個節點并安裝NBU Client后,集群備份報錯。查看Roach工具日志,只有新添加的NBU節點才報錯,其余節點都是由這幾個節點報錯導致出錯。
【原因分析】可能是新增NBU Client機器后,沒有在NBU Master Server和Media Server的/etc/hosts中添加所有NBU Client的IP/hostname映射關系。
3.5 新添加的NBU Client恢復報錯
【主要現象】在數據庫集群中新增幾個節點并安裝NBU Client后,正確配置了NBU Server中的/etc/hosts,集群備份成功,但恢復報錯。查看Roach工具日志和NBU日志,提示在NBU服務器上找不到待恢復的文件,XBSA接口BSAQueryObject()失敗,錯誤碼0x11,即BSA_RC_NO_MATCH。
【原因分析】備份文件在NBU Server上存儲時是以Client Name(通常是hostname)作為文件名前綴的,如果備份時使用的Client Name與恢復時不一致,就可能導致無法從服務器上匹配到對應的備份文件。此時應檢查新添加的NBU Client上的bp.conf文件,其中的CLIENT_NAME取值應當與NBU管理界面上Policy頁面Clients清單中的客戶端Client Name相同。bp.conf的默認值來自安裝NBU客戶端時指定的名字,有可能新添加的NBU Client在安裝時指定了IP作為客戶端名稱,造成不匹配。通常建議安裝NBU Client時輸入的Client Name,與bp.conf中的CLIENT_NAME字段,以及新建Policy時Clients清單中每個客戶端的Client Name,以及Host Properties->Client->Client Properties->Client Name均保持一致,全都取hostname。如果不一致,bp.conf和Policy中的Client Name都可以手動修改。
圖3-6 備份文件在Media Server上的存儲形式
其中客戶端屬性頁中的Client Name位置如下,其余的Client Name在前面章節都已說明:
圖3-7 客戶端屬性頁的Client Name
3.6 備份失敗提示無法創建對象
【主要現象】集群備份失敗,從Roach日志看到備份第一個對象就失敗了,XBSA接口BSACreateObject()返回錯誤,無法在NBU服務器上創建備份對象。
【原因分析】可能是NBU存儲單元相關配置錯誤。常見的兩種情形:一是NBU Policy配置中的Policy storage未正確選擇;
圖3-8 Policy storage選擇
另一種是使用系統盤作為存儲路徑,但Storage Unit中未勾選”This directory can exist on the root file system or system disk.”復選框。
圖3-9 Storage Unit復選框勾選
3.7 恢復到新集群失敗
【主要現象】使用Roach工具可以將NBU上的備份集恢復到一個與原集群完全同構的新集群上。如果條件都滿足,且備份集的metadata都已就緒,恢復仍然失敗,提示找不到hostname等相關錯誤。
【原因分析】可能是沒有正確配置虛擬客戶端名稱。首先,恢復時使用的NBU Policy名稱需要與備份時使用的保持一致。最后,需要在NBU Master Server上手動創建文件:/usr/openv/netbackup/db/altnames/No.Restrictions,從而NBU就可以知道是恢復到新的集群,自動完成虛擬客戶端映射。
數據倉庫服務 GaussDB(DWS) 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。