關于數據庫災備,你想知道的都在這里

時間:2019-04-30 欄目:技術前沿


編者按:本文為“千字千金!中國首屆災備行業征文大賽”參賽作品,本文作者為英方技術經理莊輝,文章從一名DBA的角度,介紹了數據庫災備業務中常見的一些問題,這些內容,對于每一位想要接觸或正在接觸數據庫災備的人來說,都是大有裨益的。以下為文章正文。



說到數據庫,就不得不提災備,災備話題常年占據著各個DBA社區的頭條位置,而說到數據庫災備,首先要說的就是Oracle數據庫災備,說到Oracle數據庫災備就不得不提兩個與之相關的概念,一個是架構層面的RAC,一個是技術層面的數據復制。


RAC本質上是一種集群,即cluster,主要的作用是負責故障切換和高可用。

首先,RAC可以做到故障切換,即兩臺服務器如果其中一臺發生宕機,那么另一臺服務器可以繼續對外提供服務,繼而保證業務的連續運行。

其次,RAC還可以實現負載均衡。假設上層應用要接收兩千個訂單,那么RAC可以將兩千個訂單平均低分配給不同的節點,當然,在實際中更多的是根據應用來分配訂單,并做進一步的負載均衡。

雖然RAC有著諸多的優點,但是也具有一個較為明顯的問題,即數據為單份——RAC的數據只有一份共享存儲。所以嚴格意義上的RAC并不是一個完整的災備手段,他的更大的意義體現在高可用層面。


除了RAC,我們還需要對Oracle自帶的災備軟件DG/ADG有所了解,常用的容災軟件采用的技術方案是主庫將redo log傳遞到備庫,備庫對redo log進行應用,實現數據庫異地復制。但這種技術存在一些問題,比如數據傳遞為單向傳遞,只能從主庫傳遞到備庫,且不能跨版本傳遞等。

此外,這種日志應用方式可以分為物理和邏輯兩個層面。

物理層面中,備庫對于redo log(默認archivelog)進行block級別的media recovery,相當于主庫的克隆,和主庫有相同的DBNAME和DBID。備庫打開后,在只讀狀態下,構建讀寫分離的應用環境(ActiveDG),可以通過snapshot DG構建可讀寫的測試環境。

而邏輯層面中,備庫會自動對redo log進行日志挖掘(logminer),執行相應的SQL。且備庫和主庫是兩個獨立的庫,具有不同的DBNAME和DBID。最后,部分DDL和數據類型不受支持,相較于物理層面具有一定的局限性。

這種方式對數據庫有三種保護模式。

1. 最大保護:數據100%零丟失。但是生產環境中很少使用最大保護模式,因為如果備庫出現問題或網絡延遲,都會給主庫的事物帶來性能的影響。且最大保護模式要求必須兩個以上的備庫,對客戶來講,需要準備三臺服務器,因此,最大性能模式更加受到客戶的青睞。

2. 最大性能:相較于最大保護需要三臺服務器,最大性能只需要一臺服務器便可以滿足業務需求。雖然最大性能無法做到數據100%零丟失,可能主庫和備庫之間會存在數據差異,但是,網絡和備庫都不會對主庫的事物處理帶來影響,這也是最大性能模式的最大優勢。

3. 最大可用:最大可用模式也可以保證數據100%零丟失,但是和最大保護模式一樣,備庫和網絡延遲都會對主庫造成影響,且需要兩臺以上的服務器。但是在最大可用模式下,如果主庫沒有接到備庫發出的信號,將自動轉換成最大性能模式。

總結來說,想要應用Oracle這種災備技術,首先必須要開歸檔。Oracle的所有備份(備份一體機),都需要數據庫開歸檔。對于沒有開歸檔的數據庫,則無法解決。其次,對帶寬要求極高,且切換麻煩,對運維的DBA要求極高。第三,對數據庫的要求必須是同版本,且只能做到實例級別的同步。

SQL Serve的Cluster也是高可用級別的集群,即故障轉移群集。與RAC相似的事,SQL Serve也為數據單份,但是相比RAC,SQL Serve要求必須有域控,且域控本身的使用相對麻煩,并需要服務器。因此對于傳統的cluster,SQL Serve對服務器要求很高。但是由于數據單份,因此切換很快,且過程不會有數據丟失。另外SQLServer2012中新增的AlwaysOn是一個新增高可用性解決方案。在AlwaysOn之前,SQL Server已經有的高可用性和數據恢復方案,比如數據庫鏡像,日志傳送和故障轉移集群,都有其自身的局限性。而AlwaysOn作為微軟新推出的解決方案,提取了數據庫鏡像和故障轉移集群的優點。SQL Serve AlwaysOn的主節點既可以是集群,也可以是單機,且SQLServe的備庫可讀。其模式既有異步提交,也有同步提交模式。但是AlwaysOn依賴域控,對帶寬要求高,出現故障排錯麻煩。

MySQL在原理上也是應用日志,并且備庫可讀,但是MySQL為命令行安裝,缺乏圖形化和統一的管理平臺。

英方的i2Active即為邏輯日志技術原理。可以在數據庫高并發事務場景下實現數據庫全量同步、增量同步,通過同步校驗確保數據庫源端和目標端的事務級最終一致性 ; 同時提供備庫接管和增量回切等高級功能,幫助用戶在復雜的應用環境下完 成數據庫的容災備份、異構數據遷移、數據分發、構建數據倉庫等數據整合工作。

通過以上敘述,我們會發現在實際場景中,幾乎沒有PRO=0、RTO=0的災備解決方案,這樣的絕對情況,更多的是出現在理論中;其次,如果做IDC或者全業務級管理將十分麻煩,而未來的災備業務將是一個系統工程,因此一個統一的管理平臺是必不可少的;最后,在技術和業務場景不斷更新換代的當下,對于每一位DBA的學習能力、解決問題的能力要求也是越來越高,唯有不斷學習與實踐才是常勝之道。

及時響應,快速服務,為您保駕續航

立即注冊

銷售咨詢:400-0078-655
緊急報修:021-61735936
投訴熱線:021-61679076
技術QQ群:532148075
歡迎加入!
隱私聲明
當您在本網站進行合作伙伴注冊登記,本網站將收集您的相關信息,并保存記錄。本網站收集的個人信息包括但不限于:姓名、地址、公司、所在地區、電話號碼以及電子郵件地址等。您主動提供的信息越多及越準確,我們就能夠更好地為您提供有關服務。
咨詢·購買
星际争霸战在线客服