陶 佩
(民航西南空管局飛服中心 四川 610200)
眾所周知,數據對于很多大型企事業來說是非常重要的,尤其是對數據信息依賴程度很高的企事業更是如此 。數據信息一旦不慎丟失或者生產系統不能正常運行,都會造成不可估量的損失。為了保障生產系統的正常運行,應當采取先進、有效的災備系統,實現系統主備份設施的快速切換與災難性恢復,防范于未然。
現下在航空情報領域,由于航空情報數據重要性的提升,數據庫的災備能力越來越引起重視,災備系統建設將成為航空情報行業保障數據安全的重要措施。Oracle中的DataGuard技術正是一種高可用性的容災備份技術,可以解決Oracle數據庫的數據丟失或破壞的問題。
本文所涉及的航行情報信息管理系統(簡稱CNMS)是民航近年來航空情報工作的主要業務系統,主要用于向機場、航空公司、空中交通管制部門和其它用戶提供航空數據信息服務。
近年來,隨著CNMS數據量的不斷增加、用戶數量和需求的不斷發展,CNMS雖然運行效率依然良好,但在高可用性和高可靠性方面還存在不足,因此本單位一直沿用的傳統災備方式已經不能滿足及時、準確恢復數據的需求。為了使CNMS在遇到數據災難性損失等重大事件時,數據庫系統能夠在限定時間內成功恢復系統,甚至能夠達到瞬時切換至備份系統,本單位決定采用甲骨文公司推出的DataGuard技術為基礎用來幫助完善本單位的容災備份系統,提出了建設新的災備系統以提高CNMS數據抵御災害能力的方案并進行具體實施。
通過查詢大量相關資料,根據航空情報業務的要求及其提供的原始資料,結合民航航空業務標準,參考一些同類的災備系統進行分析和研究。
因在數據高可用性、數據保護、系統資源利用和自動化管理方面具有優勢,最終決定采用Oracle DataGuard技術來進行CNMS災備系統的設計與實現 。
現階段CNMS災備策略的不足之處:數據庫數據備份方式單一和復雜;數據庫系統受災后恢復時間長;數據庫數據保護力度不足,備份和恢復過程易丟失數據;備份方式可能會影響主數據庫性能;現階段數據庫恢復方式復雜,無法滿足數據高可靠性的需求,人為因素較多,備份和恢復過程容易產生差錯。
根據分析出的現階段災備策略的不足,提出新搭建的CNMS災備系統需要解決的重要問題和基本要求。
CNMS災備方式設計主要包括數據庫災備方式、應用系統災備方式和存儲災備方式。其中數據庫災備方式采用Oracle DataGuard技術,實現主用、災備系統數據庫信息實時同步,即是將生產系統數據庫操作日志實時或周期性的復制到災備系統數據庫中,實現二者之間的數據一致性。
DataGuard架構通常由多臺(至少兩臺)位于不同位置的數據庫服務器組成。其中以CNMS主用服務器為主數據庫角色,其它備份數據庫為standby數據庫,基本原理是將主數據產生的聯機日志隨時傳送給各個standby數據庫,standby數據庫再重做這些日志。當CNMS主數據庫發生重大故障或當地發生火災、地震等災難事件時,任意一個standby數據可以快速轉換為主數據庫角色,主數據庫是大部分應用訪問的生產數據庫,產生修改操作并將這些操作傳輸到其他服務器上的數據庫上備份數據庫是主數據庫上的某個時間點的備份,它們事務上是一致的。主數據庫和備份數據庫之間的數據傳輸、日志應用和角色切換等都是通過DataGuard完善的后臺機制來確保完成的。在DataGuard環境下,當主數據庫出現故障時,這時我們就需要對備份數據庫進行角色切換,讓備份數據庫轉變為主數據庫,確保數據不會丟失。
主庫和備庫切換方法:
當主庫出現故障、需將從主庫切換到備庫時,用以下sql語句進行切換
SQL>alter database comit to switchover to physical standby with session shutdown;
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>recover managed standby database disconnect;
當主庫出現故障,需將備庫切換為主庫時,用以下sql語句進行切換
SQL>alter database commit to switchover to primary;
SQL>alter database open;
應用系統方面,本課題涉及的CNMS軟件在應用層方面都是基于Oracle數據庫中提取數據的方式,因此在災備方面只需考慮增加災備所用的客戶端設備;存儲災備方式采用磁盤拷貝技術,利用光纖直連,異地備份時可以實現數據的遠程復制與同步。
對CNMS災備系統具體處置能力進行設計。可分為三種情況:當CNMS系統正常運行時,災備系統處于何種運行情況;當CNMS主用系統發生災難而不可用時,如何切換至災備系統 ,這種情況可分為本地災備與異地災備兩種方式;當生產系統主用數據庫恢復正常后,災備系統與主用系統的角色互換是何種情況的設計。
利用Oracle數據庫軟件創建數據庫環境,根據生產系統數據庫創建一個或多個災備數據庫(根據實際應用需求);在主用和災備數據庫之間利用Oracle DataGuard技術建立聯系,從而保證數據庫之間的數據的一致性;最終根據設計階段的具體災備流程對主用和災備系統、存儲和應用終端進行部署調試。
搭建好CNMS災備系統后,對需求分析階段提出的建設目標一一進行測試,并對測試后的結果進行系統性的分析,將測試結果比對傳統災備系統,重點討論新的CNMS災備系統的建立與實現相對于傳統系統的提升與優化性。
在實施新的災備系統后,CNMS系統在數據信息的安全保障方面有較明顯的提升,對業務發展提供了有力的支撐。通過驗證新災備系統建設后的測試成果,能夠證明本文所采用的災備系統分析方法是切實可行的。隨著民航的發展,航行情報服務業務的需求量也會越來越大,這些新的業務系統因工作特點和CNMS系統類似,所以也很有可能遭遇和CNMS系統一樣的數據庫災備問題。對本文涉及的CNMS災備系統的建設工作,今后也會給其他新的業務系統的數據保障提供思路和經驗,而且本文涉及的CNMS災備系統的建設工作,也會對今后航空情報業務系統的數據保障產生積極的影響。