天天看點

Oracle高可用,常用幾點知識

我們幫助行業客戶進行上雲業務遷移,Oracle的業務資料遷移幾乎成了必然遇到的問題。對Oracle的資料高可用,作為雲架構師,應該說是必須懂。今天我們從入門開始,介紹一些常見的問題。

Oracle高可用,常用幾點知識

一、什麼是DG、RAC

DG(Data Guard)資料衛士,它主要解決資料存儲上的安全問題,簡單來講就是存儲另外一份同步的資料備援來保護資料,而且這種保護是動态的,秒級同步。DG很好地避免了伺服器系統在資料存儲上的單點故障。

RAC(Real Application Cluster)實時資料叢集,則很好地解決了伺服器的擴充問題,我們可以用X86伺服器來增加伺服器的通路節點。可以做到負載均衡或者是熱備。

二、DG如何實作資料的備援

Data Guard包括一個生産資料庫以及若幹個備用資料庫,這些資料庫隻與主資料庫在事務上保持一緻。副資料庫通過重做資料保持這種事務的一緻性。

當主資料庫發生變更、新增操作時,則生成重做資料并将其寫入本地日志檔案中。此時主資料庫必須運作在歸檔模式,否則不會産生日志檔案。副資料庫将日志檔案下載下傳到本地,并應用到備用資料庫中。此時DG可以選擇是資料同步模式、還是異步模式。

三、DG最多可以實作多少副資料庫?

最近做的一個項目,副資料庫達到了兩個,一個在公有雲端,另一個在本地的客戶私有雲。

實作DG可以實作最多九份副資料庫,也就是可以實作最多九份隻讀資料庫,或九處不同地方的資料庫備份。

DG主、副資料庫運作的底層作業系統、DBMS資料庫版本要求一緻。如兩邊都是RedHat 6.8、Oracle 12G。

四、DG副本資料有兩種不同的資料重寫方式

1、Redo Log實體寫資料模式。

Redo Log、SQL。Redo Log是實體重寫,就也就直接往副資料庫的塊裡寫資料,直接複制塊。而SQL是邏輯重寫,在副資料庫裡寫标準語句,insert資料等。

因為Redo Log是實體重寫,如果此時副資料庫正在執行寫操作,Oracle資料庫是無法正常打開的。為了解決該問題,實作主副資料庫的讀寫分離功能,Oracle支援閃回功能,也就是讀資料時,Oracle置為隻讀模式(此時同步資料無法寫入),而當有實體資料寫入時,Oracle置為寫模式。

在Oracle 11G版本開始,DG提升了Redo Log的功能,資料庫可以在Read Only模式下繼續Redo寫資料。

2、SQL邏輯寫資料模式。

SQL模式不需要鎖定副資料庫,任何時侯都可以往副資料庫裡進行資料的讀/寫操作。

SQL采用邏輯重寫資料的方式,insert、update等标準SQL語句重寫資料,看上去挺美好。但有弊端,使用該模式有些資料類型、語句有操作上的限制,不能保證資料庫完全一緻。

3、真實場景我們如哪種模式?

幾個項目中,用到Redo Log實體寫資料的更多。為了保證資料的一緻性,這是很關鍵的。