English

Back You Up 公開(kāi)課13期 | 數據庫同步技術 分(fēn)享實錄

 

7月28日,Back You Up 鼎甲線上公開(kāi)課第13期開(kāi)講,中(zhōng)華區技術支持經理李浩介紹了數據庫同步技術的原理以及定時複制與實時複制的區别,并給我(wǒ)們演示了一(yī)遍實際的操作。

歡迎大(dà)家進入到今天《數據庫同步技術解析》這個課程,我(wǒ)會把技術原理和操作都給大(dà)家做個介紹。
爲什麽會有數據庫複制技術呢?我(wǒ)相信大(dà)家會比較容易理解,因爲在任何一(yī)個企業裏面核心的數據都是存儲在數據庫裏面的
在容災需求方面,在單機模式主要解決數據庫單點故障的問題。如果企業有做異地容災的考慮,那我(wǒ)們會擴展到在異地還會有一(yī)台數據庫的備機,即便是你本地生(shēng)産機房完全不可用的話(huà),在異地也能把你的數據庫監管起來。
大(dà)數據平台有一(yī)個很重要的需求——數據搜集。那核心的數據怎麽樣能同步到大(dà)數據這個平台上?這個可以使用我(wǒ)們的數據庫容災技術來實現。

這就是我(wǒ)們做數據庫容災主要的三個場景

那麽數據庫同步的原理是怎麽樣的呢?

這邊給大(dà)家做一(yī)個簡單的流程介紹。我(wǒ)們會把生(shēng)産庫整庫的文件同步到備機上做一(yī)個覆蓋,初始的同步二者數據基本上是一(yī)緻的。

如果用戶有一(yī)個更高的需求,比如想做實時的數據庫容災,那我(wǒ)們可以應用實時日志(zhì)同步技術,在定時同步的基礎上追加實時同步。

那麽什麽時候應用呢?我(wǒ)們這裏會設置一(yī)個固定的頻(pín)率。

如果是我(wǒ)們負載比較高的機器,頻(pín)率要稍微設置低一(yī)些,好讓它及時地把在線日志(zhì)應用上去(qù),減少在故障時激活備機所應用日志(zhì)的數據量,提高接管的效率。

這就是我(wǒ)們實現的原理。

這塊給大(dà)家講講我(wǒ)們鼎甲數據庫同步容災的一(yī)些優勢:
第一(yī)個:物(wù)理複制方式。什麽是物(wù)理複制呢?其實就是把數據文件(包括數據庫的配置)全都同步到備機上去(qù)。還有一(yī)種市面上大(dà)家常接觸的是邏輯複制,這種模式是不能同步所有類型的數據,隻能同步表裏面的一(yī)些數據。我(wǒ)們的優勢是可以同步所有數據類型,而且效率和性能方面是非常高的
第二個:兼容性,我(wǒ)們的主庫是積蓄狀态也是可以兼容的。比如說你是Oracle RAC集群、SQL Server數據庫集群等,在這些基礎上會再進行一(yī)個同步背景,實現像異地容災這種場景。
第三個是目前我(wǒ)們産品上所支持的數據庫類型有兩種(Oracle、SQLServer),還有一(yī)種是MySQL。我(wǒ)們産品8.0做了一(yī)個架構把MySQL同步功能遷移過來,近期也會上線。
RPO方面,我(wǒ)們能做定時的複制,也能做實時的複制。而實時複制的同步頻(pín)率是在秒級的,也就意味着我(wǒ)們是以幾乎零丢失的方式實現數據庫的同步
細粒度方面,我(wǒ)們隻同步了日志(zhì),所同步的數據量很小(xiǎo)。而且我(wǒ)們不要求主庫和磁盤空間是完全一(yī)樣的。
下(xià)面是我(wǒ)們數據庫同步的應用場景,我(wǒ)這邊是用行業給大(dà)家做一(yī)個舉例。我(wǒ)們常跟客戶提的一(yī)個點就是用戶需要重視數據庫的保障。因爲數據災難而導緻數據丢失這種現象是屢見不鮮的。
在政務上第一(yī)個我(wǒ)們可以通過搭建一(yī)個數據庫備機的方式接管它的主庫。第二個你也可以把備庫作查詢去(qù)使用
像高校最重要的OA、一(yī)卡通等,目前國産化進展比較慢(màn),所以核心庫還是Oracle、SQL Sever,比較适用于我(wǒ)們這種方式。
在醫院一(yī)般核心庫還是Oracle和SQL Sever,而且醫院比較特别,它HIS庫承載了所有的數據,一(yī)旦出現了故障那麽醫院基本所有的業務都運行不了,所以對于核心庫的容災複制是非常重要的
還有一(yī)個跟大(dà)家提一(yī)下(xià):我(wǒ)們的核心數據庫容災是一(yī)個方面,另外(wài)有時用戶也會提應用容災的事情,我(wǒ)們的數據庫容災是可以配合我(wǒ)們另外(wài)一(yī)款産品DBackup DRO做一(yī)個整機的數據庫容災。那麽數據庫容災配合整機容災就可以實現所有應用場景的容災接管。
下(xià)面來講講我(wǒ)們同步數據的一(yī)個準備條件以及定時同步和實時同步的區别。
在準備條件這方面比較簡單,第一(yī)條是我(wǒ)們隻要求主庫和備庫、操作系統的版本、數據庫的版本相同即可,第二條是主庫要處于歸檔模式,第三條是備庫的磁盤空間要大(dà)于或等于主庫的實際數據庫容量即可。
我(wǒ)們的定時同步主要同步的是主庫的歸檔日志(zhì),也就是你每一(yī)次的同步它都會要求做一(yī)次主庫的歸檔切換,所以第一(yī)次同步的頻(pín)率一(yī)般不能太高,我(wǒ)們的建議值是5—10分(fēn)鍾一(yī)次。
在實時這塊上我(wǒ)們的實時複制技術主要同步的是在線日志(zhì),而且它的原理上是直接監控在線日志(zhì)有沒有變化。所以雖然實時複制是兩級的,但它對生(shēng)産的影響并不高
在創建備份作業這塊,定時複制和備份沒有關系,我(wǒ)們無需實現全備份的作業。然而我(wǒ)們要實時同步複制是需要備份的,先創建一(yī)個全庫的備份作業,再創建一(yī)個實時的連續日志(zhì)備份作業。
下(xià)面爲大(dà)家做一(yī)個數據庫同步的演示,我(wǒ)這邊搭建了兩個數據庫,待會兒我(wǒ)們來做一(yī)些删除表、插入表等一(yī)系列操作,看看是否會進行同步。
首先我(wǒ)們要創建同步作業的話(huà),在界面上跟着向導去(qù)做即可。
這裏會有一(yī)些參數的設置,我(wǒ)們可以看到參數文件有兩個選項,一(yī)個是主庫的參數文件,一(yī)個是從庫的參數文件。如果是主庫和備庫的硬件、數據庫安裝路徑等基本相同,使用主庫的參數文件去(qù)覆蓋備庫是否沒問題的。如果差異很大(dà),那我(wǒ)們要使用從庫的參數文件。
第二個參數是删除歸檔日志(zhì),這個需要綜合用戶的使用場景,它可以删除已經複制的歸檔日志(zhì),也可以做兼容性的保留。
第三個是主機地址和從機地址。假如你的主庫和備庫有多個IP地址,可以用中(zhōng)選擇一(yī)個進行複制,這個算是數據路徑的一(yī)個配置,也就是數據複制通道的配置。
第四個是複制日志(zhì)的保存目錄,也就是我(wǒ)們的日志(zhì)複制到備庫中(zhōng)在應用之前,可以進行一(yī)個緩存。
點擊下(xià)一(yī)步是我(wǒ)們所設置的一(yī)些同步複制的情況,提交之後就能創建整個的複制作業。創建好後我(wǒ)們可以看到備庫現在是mounted狀态,隻有這樣才能進行數據庫日志(zhì)的應用。在主庫故障後,我(wǒ)們可以選擇激活備庫,使其變成open狀态接收業務。
接下(xià)來我(wǒ)們直接做個測試,先查詢下(xià)主庫的狀态,裏面有兩條數據,那我(wǒ)們可以insert一(yī)條數據,在新建一(yī)個表後再插入一(yī)條數據,待會兒看看是否也能同步到備機上去(qù)。
因爲我(wǒ)們設置的是定時同步,複制完後選擇隻讀打開(kāi)備庫,再來查看備庫是否已經同步數據。我(wǒ)們可以看到它現在的狀态是READ ONLY,這表示備庫已經打開(kāi)。
接下(xià)來我(wǒ)們在備庫裏做一(yī)個查詢步驟,可以看到第一(yī)個表格和第二個表格的數據都存在,這就是已經同步的表現。那我(wǒ)們還可以做删除表格的一(yī)些操作,選擇繼續複制便可以實現數據的同步。
今天的分(fēn)享到這裏結束了,謝謝大(dà)家的觀看。

聯系我(wǒ)們