許皓皓,楊 豪
(寧波市氣象網絡與裝備保障中心,浙江寧波315012)
數據庫作為數據存儲、分析、管理和應用的有效途徑和載體,在氣象業務中被廣泛應用[1-3]。氣象數據庫一旦發生故障,對氣象部門業務的正常開展、對預防和減輕氣象災害帶來的損失都會造成嚴重后果。各地氣象部門針對數據庫備份難題開展了廣泛研究,彭麗娜等[4]通過研究SQL Server數據庫備份策略保證數據庫持續穩定運行;郭曉佳等[5]針對Oracle數據庫開展了運行維護管理研究;王照宇等[6]研究出一種Oracle數據庫應用級容災方案,實現準實時備份。當前異構數據庫平臺共存已經成為氣象業務新常態,但是現有研究大多只針對單一數據庫平臺開展,如果能針對異構數據庫平臺提供一體化備份解決方案,勢必會降低備份復雜度,提高運維效率,為氣象業務提供更加穩定的容災保障。
以寧波市氣象局為例,氣象業務環境主要包括SQL Server和Oracle兩種數據庫平臺,其中SQL Server采用單服務器方式部署,Oracle數據庫采用2臺服務器搭建RAC集群方式部署,數據由探測設備和業務系統源源不斷產生。數據表主要分為探測和預報2大類,其中探測類數據約20種,主要存儲在SQL Server數據庫;預報數據約40種,主要存儲在Oracle數據庫。預報類數據更新頻率低、更新時間規律、數據量較??;探測類數據更新頻率和時效性更高,部分探測產品存量數據和更新數據量較大;天氣預警等重要天氣數據對時效性要求極高。
氣象數據庫備份要求在統一框架下對異構數據庫備份作業進行集中管理,支持不同的備份方式和靈活的備份策略。通過對幾款主流的企業級備份工具進行研究,NetBackup作為Symantec公司提供的企業級備份管理軟件,支持Unix、Linux、Windows、OS/2以及Macintosh等主流操作系統,是目前使用最廣泛的備份軟件之一。NetBackup采用全圖形的管理方式,同時提供命令行接口,提供了性能優化、監控報警和動態備份速度調整等管理功能,為用戶的集中式數據庫備份管理提供了靈活和有效的手段。和 IBM TSM、CommVault、EMC NetWorker等企業級備份軟件相比,NetBackup在技術架構先進性和應用案例方面都有一定優勢。
NetBackup Enterprise采用3層體系架構:Master Server(主服務器)、Media Servers(介質服務器)和Clients(客戶端)。典型的NetBackup備份管理系統是由一個Master Server、一個或多個Media Servers以及多個Clients組成,Master Server和Media Servers可以是同一臺服務器。NetBackup三層體系結構組件定義如圖1所示。

圖1 NetBackup三層架構
(1)NetBackup Master Server:是第一層架構組件,也是最核心組件,Master Server是管理一切數據庫備份作業的“大腦”。它所管理的工作包括任務調度、客戶端備份、介質管理和設備管理等。Master Server可以掛接一個或多個備份設備,來直接對客戶端進行備份。
(2)NetBackup Media Server:是第二層架構組件,備份設備掛接在Media Server上,當需要備份的數據屬于不同分組(如不同部門、子系統、應用等)或數據量比較大的時候,需要使用多個Media Server來做分組備份管理和分擔備份任務,一個Media Server因故障停止數據保護工作的時候,可以由Master Server把這個Media Server的數據保護工作轉移到另外的Media Servers上。本研究Media Server和Master Server共用一臺服務器。
(3)NetBackup Client:是第三層所有的需要通過網絡把數據傳到Master Server或Media Servers上來做數據備份的計算機,都是備份的客戶端。在客戶端上要安裝NetBackup客戶端軟件,這些備份客戶端在網絡中也充當應用服務器的腳色。
SQL Server備份主要采用腳本調用和文件備份2種方式。腳本調用方式通過NetBackup備份服務器直接調用各個SQL Server客戶端備份腳本進行備份作業,對于一些數據量較大的數據庫,采用了全備和增量備份結合的方式進行。腳本調用方式操作過程如下:①配置SQL Server agent代理,選擇Set SQL Server connection properties選項,設備數據庫Host和賬號密碼。② 生成備份SQL Server數據庫腳本,將備份腳本存放在服務器相關目錄下,供NetBackup備份服務器調用。③新建備份策略,選擇備份類型為MS-SQL-Server,創建備份時間等調度策略信息,選擇之前創建的備份腳本。④手動測試備份作業確認無異常,完成全部備份作業配置。
NetBackup文件備份方式是指先通過SQL Server自帶的管理工具完成備份,再將備份文件拷貝至NetBackup備份服務器。備份過程如下:①通過SQL Server自帶的Management Studio中管理菜單下的維護計劃向導進行備份作業配置。②設置備份作業調度計劃,設定定期刪除過期備份,防止磁盤空間不足。③NetBackup備份服務器定時將SQL Server備份出來的備份文件拷貝至備份服務器上,實現異機備份。
由于本地生產環境Oracle數據庫未開啟歸檔,無法進行RMAN備份,因此采用EXP導出備份方式進行備份。Oracle數據庫采用2種模式備份:NetBackup文件備份方式和OracleEXP遠程導出方式。NetBackup文件備份方式先通過數據庫EXP命令在本地導出備份文件,然后通過NetBackup備份軟件將備份集復制到備份服務器。OracleEXP本地備份腳本如下:
[oracle@qxdb-2~]$more/u02/oraclebackup/expdp.sh
#!/bin/sh
source/home/oracle/.bash_profile
export ORACLE_SID=ORCL
cd$ORACLE_HOME/bin
./expdp expdp/expdp directory=dmp full=y dumpfile=exp_oracle_full_%U.dmp logfile=expdp_oracle_full.log filesize=10G parallel=8 compression=all reuse_dumpfiles=y
Oracle EXP遠程導出方式通過NeBackup備份服務器發起遠程EXP導出備份,并把備份文件直接存放在備份服務器磁盤,并定期刪除過期備份文件。相關腳本如下:
@echo off
#set oracle_sid=netstorm
D:appAdministratorproduct11.2.0client_1BINexp.exe exp/exp@NETSTORM full=y file=T:172_21_146_205_bakdmpfileora_full_exp_%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%.dmp log=T:172_21_146_205_bakdmpfileora_full_exp_%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%.log
D:appAdministratorproduct11.2.0client_1BINexp.exe expdp/expdp@ORCL full=y file=T:10_138_162_137_bakdmpfileora_full_exp_% date:~0,4% -%date:~5,2%-%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%.dmplog=T:10_138_162_137_bakdmpfileora_full_exp_%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%.log
forfiles/p"T:172_21_146_205_bakdmpfile"/d-8/c"cmd/c echo deleting@file...&&del/f@path"
forfiles/p"T:10_138_162_137_bakdmpfile"/d-8/c"cmd/c echo deleting@file...&&del/f@path"
NetBackup支持腳本備份和文件備份2種備份方式,腳本備份方式通過NetBackup腳本模式進行備份,無需在數據庫客戶端進行操作,但是受服務器環境,網絡穩定性影響較大;文件備份利用SQL Server及Oracle數據庫自帶API接口完成備份,穩定性更高,但是也存在空間占用大等缺點。2種備份方式優缺點詳細對比見表1。

表1 腳本備份和文件備份優缺點對比
NetBackup數據庫備份作業配置完畢后,還需開展日常運維工作,及時發現各類備份異常并及時解決,才能保證數據庫系統備份的可用性。常規備份運維包括3項內容:①檢查備份作業運行狀況,在NetBackup軟件主界面Activity Monitor菜單下檢查作業運行狀態,正常運行狀態是藍色,如有告警則為黃色,紅色代表備份作業報錯;②檢查數據庫備份服務器磁盤剩余空間情況,防止因存儲空間不足造成的備份異常;③檢查部分數據庫服務器和備份服務器日志,排查故障和告警信息。
NetBackup軟件在備份、數據傳輸等方面已經自動進行了優化改進,日常運維中只需要對備份策略進行優化即可提高備份效率和穩定性。通過研究和測試總結出以下2條備份策略優化方法:①如果備份數據量較大,可以把備份服務器介質池改成Deduplication Pool模式,該模式具有重復數據壓縮功能,對于重復的數據塊,會進行壓縮重寫,最終能減少備份空間的使用量;②根據業務對數據庫備份的需求,可以對數據量較大的數據庫采用完全備份和增量備份相結合的模式進行備份,減少備份空間使用率。
基于NetBackup的備份模式總體運行穩定,但偶爾也會出現備份失敗情況,日常運維過程中多發3種常見故障,排查方法如下:
(1)磁盤空間不足:因備份服務器或數據庫服務器存儲空間不足造成備份失敗,釋放存儲空間后重新運行備份作業即可恢復,需要加強磁盤使用率監控,同時合理設置備份文件保留期限,避免存儲空間浪費。
(2)NetBackup備份服務異常:分為服務端服務異常和客戶端服務異常2種情況,故障時重新啟動相關服務即可恢復,可以編寫服務自動重啟腳本通過作業調度系統定期自動運行以避免該故障。
(3)網絡故障:NetBackup備份客戶端需要開通13724和1556端口,如果出現備份報錯情況,可以先檢查服務端和客戶端的上述端口連通性;此外一般性網絡故障也會導致備份報錯。
氣象業務數據庫的穩定運行和數據安全對氣象業務的正常開展,預防和減輕氣象災害帶來的損失,保障人民生命財產安全而言至關重要,做好氣象業務數據庫的備份和容災工作刻不容緩。本研究基于NetBackup企業級備份管理軟件,對SQL Server、Oracle等氣象探測和預報數據庫進行集中備份和管理,改變了以往分散備份的方式,提高了備份效率和穩定性,也減輕了運維壓力,實踐證明該模式可以滿足氣象業務數據庫備份容災需求。
[1]韓笑,王力,王吉濱,等.一種地市級氣象數據庫的設計與應用[J].氣象科技,2015,43(6):1053-1059.
[2]竇以文,盧俐,劉旭林,等.氣象數據存貯管理系統[J].計算機系統應用,2011,20(7):116-120.
[3]許皓皓,何彩芬.氣象災害數據庫管理與分析系統開發與實現[J].電子技術與軟件工程,2017(17):156-158.
[4]彭麗娜,陳慧,馬久剛,等.淺談包頭市氣象局SQL Server數據庫的備份策略[J].內蒙古氣象,2011(4):62-64.
[5]郭曉佳,江彩英,謝丹.基于Oracle數據庫的氣象業務系統運維管理研究[J].軟件導刊,2017,16(9):145-147.
[6]王照宇,范文鋒.氣象增值業務平臺應用級容災方案研究[J].山東氣象,2012,32(2):50-53.