許皓皓,楊 豪
(寧波市氣象網(wǎng)絡(luò)與裝備保障中心,浙江寧波315012)
數(shù)據(jù)庫作為數(shù)據(jù)存儲、分析、管理和應(yīng)用的有效途徑和載體,在氣象業(yè)務(wù)中被廣泛應(yīng)用[1-3]。氣象數(shù)據(jù)庫一旦發(fā)生故障,對氣象部門業(yè)務(wù)的正常開展、對預(yù)防和減輕氣象災(zāi)害帶來的損失都會造成嚴(yán)重后果。各地氣象部門針對數(shù)據(jù)庫備份難題開展了廣泛研究,彭麗娜等[4]通過研究SQL Server數(shù)據(jù)庫備份策略保證數(shù)據(jù)庫持續(xù)穩(wěn)定運行;郭曉佳等[5]針對Oracle數(shù)據(jù)庫開展了運行維護管理研究;王照宇等[6]研究出一種Oracle數(shù)據(jù)庫應(yīng)用級容災(zāi)方案,實現(xiàn)準(zhǔn)實時備份。當(dāng)前異構(gòu)數(shù)據(jù)庫平臺共存已經(jīng)成為氣象業(yè)務(wù)新常態(tài),但是現(xiàn)有研究大多只針對單一數(shù)據(jù)庫平臺開展,如果能針對異構(gòu)數(shù)據(jù)庫平臺提供一體化備份解決方案,勢必會降低備份復(fù)雜度,提高運維效率,為氣象業(yè)務(wù)提供更加穩(wěn)定的容災(zāi)保障。
以寧波市氣象局為例,氣象業(yè)務(wù)環(huán)境主要包括SQL Server和Oracle兩種數(shù)據(jù)庫平臺,其中SQL Server采用單服務(wù)器方式部署,Oracle數(shù)據(jù)庫采用2臺服務(wù)器搭建RAC集群方式部署,數(shù)據(jù)由探測設(shè)備和業(yè)務(wù)系統(tǒng)源源不斷產(chǎn)生。數(shù)據(jù)表主要分為探測和預(yù)報2大類,其中探測類數(shù)據(jù)約20種,主要存儲在SQL Server數(shù)據(jù)庫;預(yù)報數(shù)據(jù)約40種,主要存儲在Oracle數(shù)據(jù)庫。預(yù)報類數(shù)據(jù)更新頻率低、更新時間規(guī)律、數(shù)據(jù)量較小;探測類數(shù)據(jù)更新頻率和時效性更高,部分探測產(chǎn)品存量數(shù)據(jù)和更新數(shù)據(jù)量較大;天氣預(yù)警等重要天氣數(shù)據(jù)對時效性要求極高。
氣象數(shù)據(jù)庫備份要求在統(tǒng)一框架下對異構(gòu)數(shù)據(jù)庫備份作業(yè)進行集中管理,支持不同的備份方式和靈活的備份策略。通過對幾款主流的企業(yè)級備份工具進行研究,NetBackup作為Symantec公司提供的企業(yè)級備份管理軟件,支持Unix、Linux、Windows、OS/2以及Macintosh等主流操作系統(tǒng),是目前使用最廣泛的備份軟件之一。NetBackup采用全圖形的管理方式,同時提供命令行接口,提供了性能優(yōu)化、監(jiān)控報警和動態(tài)備份速度調(diào)整等管理功能,為用戶的集中式數(shù)據(jù)庫備份管理提供了靈活和有效的手段。和 IBM TSM、CommVault、EMC NetWorker等企業(yè)級備份軟件相比,NetBackup在技術(shù)架構(gòu)先進性和應(yīng)用案例方面都有一定優(yōu)勢。
NetBackup Enterprise采用3層體系架構(gòu):Master Server(主服務(wù)器)、Media Servers(介質(zhì)服務(wù)器)和Clients(客戶端)。典型的NetBackup備份管理系統(tǒng)是由一個Master Server、一個或多個Media Servers以及多個Clients組成,Master Server和Media Servers可以是同一臺服務(wù)器。NetBackup三層體系結(jié)構(gòu)組件定義如圖1所示。
圖1 NetBackup三層架構(gòu)
(1)NetBackup Master Server:是第一層架構(gòu)組件,也是最核心組件,Master Server是管理一切數(shù)據(jù)庫備份作業(yè)的“大腦”。它所管理的工作包括任務(wù)調(diào)度、客戶端備份、介質(zhì)管理和設(shè)備管理等。Master Server可以掛接一個或多個備份設(shè)備,來直接對客戶端進行備份。
(2)NetBackup Media Server:是第二層架構(gòu)組件,備份設(shè)備掛接在Media Server上,當(dāng)需要備份的數(shù)據(jù)屬于不同分組(如不同部門、子系統(tǒng)、應(yīng)用等)或數(shù)據(jù)量比較大的時候,需要使用多個Media Server來做分組備份管理和分擔(dān)備份任務(wù),一個Media Server因故障停止數(shù)據(jù)保護工作的時候,可以由Master Server把這個Media Server的數(shù)據(jù)保護工作轉(zhuǎn)移到另外的Media Servers上。本研究Media Server和Master Server共用一臺服務(wù)器。
(3)NetBackup Client:是第三層所有的需要通過網(wǎng)絡(luò)把數(shù)據(jù)傳到Master Server或Media Servers上來做數(shù)據(jù)備份的計算機,都是備份的客戶端。在客戶端上要安裝NetBackup客戶端軟件,這些備份客戶端在網(wǎng)絡(luò)中也充當(dāng)應(yīng)用服務(wù)器的腳色。
SQL Server備份主要采用腳本調(diào)用和文件備份2種方式。腳本調(diào)用方式通過NetBackup備份服務(wù)器直接調(diào)用各個SQL Server客戶端備份腳本進行備份作業(yè),對于一些數(shù)據(jù)量較大的數(shù)據(jù)庫,采用了全備和增量備份結(jié)合的方式進行。腳本調(diào)用方式操作過程如下:①配置SQL Server agent代理,選擇Set SQL Server connection properties選項,設(shè)備數(shù)據(jù)庫Host和賬號密碼。② 生成備份SQL Server數(shù)據(jù)庫腳本,將備份腳本存放在服務(wù)器相關(guān)目錄下,供NetBackup備份服務(wù)器調(diào)用。③新建備份策略,選擇備份類型為MS-SQL-Server,創(chuàng)建備份時間等調(diào)度策略信息,選擇之前創(chuàng)建的備份腳本。④手動測試備份作業(yè)確認(rèn)無異常,完成全部備份作業(yè)配置。
NetBackup文件備份方式是指先通過SQL Server自帶的管理工具完成備份,再將備份文件拷貝至NetBackup備份服務(wù)器。備份過程如下:①通過SQL Server自帶的Management Studio中管理菜單下的維護計劃向?qū)нM行備份作業(yè)配置。②設(shè)置備份作業(yè)調(diào)度計劃,設(shè)定定期刪除過期備份,防止磁盤空間不足。③NetBackup備份服務(wù)器定時將SQL Server備份出來的備份文件拷貝至備份服務(wù)器上,實現(xiàn)異機備份。
由于本地生產(chǎn)環(huán)境Oracle數(shù)據(jù)庫未開啟歸檔,無法進行RMAN備份,因此采用EXP導(dǎo)出備份方式進行備份。Oracle數(shù)據(jù)庫采用2種模式備份:NetBackup文件備份方式和OracleEXP遠(yuǎn)程導(dǎo)出方式。NetBackup文件備份方式先通過數(shù)據(jù)庫EXP命令在本地導(dǎo)出備份文件,然后通過NetBackup備份軟件將備份集復(fù)制到備份服務(wù)器。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遠(yuǎn)程導(dǎo)出方式通過NeBackup備份服務(wù)器發(fā)起遠(yuǎn)程EXP導(dǎo)出備份,并把備份文件直接存放在備份服務(wù)器磁盤,并定期刪除過期備份文件。相關(guān)腳本如下:
@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腳本模式進行備份,無需在數(shù)據(jù)庫客戶端進行操作,但是受服務(wù)器環(huán)境,網(wǎng)絡(luò)穩(wěn)定性影響較大;文件備份利用SQL Server及Oracle數(shù)據(jù)庫自帶API接口完成備份,穩(wěn)定性更高,但是也存在空間占用大等缺點。2種備份方式優(yōu)缺點詳細(xì)對比見表1。
表1 腳本備份和文件備份優(yōu)缺點對比
NetBackup數(shù)據(jù)庫備份作業(yè)配置完畢后,還需開展日常運維工作,及時發(fā)現(xiàn)各類備份異常并及時解決,才能保證數(shù)據(jù)庫系統(tǒng)備份的可用性。常規(guī)備份運維包括3項內(nèi)容:①檢查備份作業(yè)運行狀況,在NetBackup軟件主界面Activity Monitor菜單下檢查作業(yè)運行狀態(tài),正常運行狀態(tài)是藍(lán)色,如有告警則為黃色,紅色代表備份作業(yè)報錯;②檢查數(shù)據(jù)庫備份服務(wù)器磁盤剩余空間情況,防止因存儲空間不足造成的備份異常;③檢查部分?jǐn)?shù)據(jù)庫服務(wù)器和備份服務(wù)器日志,排查故障和告警信息。
NetBackup軟件在備份、數(shù)據(jù)傳輸?shù)确矫嬉呀?jīng)自動進行了優(yōu)化改進,日常運維中只需要對備份策略進行優(yōu)化即可提高備份效率和穩(wěn)定性。通過研究和測試總結(jié)出以下2條備份策略優(yōu)化方法:①如果備份數(shù)據(jù)量較大,可以把備份服務(wù)器介質(zhì)池改成Deduplication Pool模式,該模式具有重復(fù)數(shù)據(jù)壓縮功能,對于重復(fù)的數(shù)據(jù)塊,會進行壓縮重寫,最終能減少備份空間的使用量;②根據(jù)業(yè)務(wù)對數(shù)據(jù)庫備份的需求,可以對數(shù)據(jù)量較大的數(shù)據(jù)庫采用完全備份和增量備份相結(jié)合的模式進行備份,減少備份空間使用率。
基于NetBackup的備份模式總體運行穩(wěn)定,但偶爾也會出現(xiàn)備份失敗情況,日常運維過程中多發(fā)3種常見故障,排查方法如下:
(1)磁盤空間不足:因備份服務(wù)器或數(shù)據(jù)庫服務(wù)器存儲空間不足造成備份失敗,釋放存儲空間后重新運行備份作業(yè)即可恢復(fù),需要加強磁盤使用率監(jiān)控,同時合理設(shè)置備份文件保留期限,避免存儲空間浪費。
(2)NetBackup備份服務(wù)異常:分為服務(wù)端服務(wù)異常和客戶端服務(wù)異常2種情況,故障時重新啟動相關(guān)服務(wù)即可恢復(fù),可以編寫服務(wù)自動重啟腳本通過作業(yè)調(diào)度系統(tǒng)定期自動運行以避免該故障。
(3)網(wǎng)絡(luò)故障:NetBackup備份客戶端需要開通13724和1556端口,如果出現(xiàn)備份報錯情況,可以先檢查服務(wù)端和客戶端的上述端口連通性;此外一般性網(wǎng)絡(luò)故障也會導(dǎo)致備份報錯。
氣象業(yè)務(wù)數(shù)據(jù)庫的穩(wěn)定運行和數(shù)據(jù)安全對氣象業(yè)務(wù)的正常開展,預(yù)防和減輕氣象災(zāi)害帶來的損失,保障人民生命財產(chǎn)安全而言至關(guān)重要,做好氣象業(yè)務(wù)數(shù)據(jù)庫的備份和容災(zāi)工作刻不容緩。本研究基于NetBackup企業(yè)級備份管理軟件,對SQL Server、Oracle等氣象探測和預(yù)報數(shù)據(jù)庫進行集中備份和管理,改變了以往分散備份的方式,提高了備份效率和穩(wěn)定性,也減輕了運維壓力,實踐證明該模式可以滿足氣象業(yè)務(wù)數(shù)據(jù)庫備份容災(zāi)需求。
[1]韓笑,王力,王吉濱,等.一種地市級氣象數(shù)據(jù)庫的設(shè)計與應(yīng)用[J].氣象科技,2015,43(6):1053-1059.
[2]竇以文,盧俐,劉旭林,等.氣象數(shù)據(jù)存貯管理系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2011,20(7):116-120.
[3]許皓皓,何彩芬.氣象災(zāi)害數(shù)據(jù)庫管理與分析系統(tǒng)開發(fā)與實現(xiàn)[J].電子技術(shù)與軟件工程,2017(17):156-158.
[4]彭麗娜,陳慧,馬久剛,等.淺談包頭市氣象局SQL Server數(shù)據(jù)庫的備份策略[J].內(nèi)蒙古氣象,2011(4):62-64.
[5]郭曉佳,江彩英,謝丹.基于Oracle數(shù)據(jù)庫的氣象業(yè)務(wù)系統(tǒng)運維管理研究[J].軟件導(dǎo)刊,2017,16(9):145-147.
[6]王照宇,范文鋒.氣象增值業(yè)務(wù)平臺應(yīng)用級容災(zāi)方案研究[J].山東氣象,2012,32(2):50-53.