TaurusDB一致性級別
TaurusDB約束限制
TaurusDB一致性級別需要數(shù)據(jù)庫內(nèi)核小版本為8.0.22.28.1及以上。
開啟會話一致性還需您的數(shù)據(jù)庫代理引擎版本為2.7.4.0及以上。
開啟全局一致性還需您的數(shù)據(jù)庫代理引擎版本為2.23.02.000及以上。
TaurusDB最終一致性
TaurusDB實例開啟數(shù)據(jù)庫代理后,同一會話內(nèi),連續(xù)多次SELECT請求會根據(jù)權(quán)重配比,路由到不同的數(shù)據(jù)庫節(jié)點,由于主節(jié)點與讀節(jié)點之前存在復(fù)制時延,并且各個讀節(jié)點的復(fù)制時延大小不一定完全相同,可能會導(dǎo)致每次SELECT請求得到的結(jié)果存在差異,因此默認情況下,數(shù)據(jù)庫代理只能保證數(shù)據(jù)的最終一致。
TaurusDB會話一致性
由于TaurusDB最終一致性可能會導(dǎo)致多次SELECT請求的結(jié)果存在差異,數(shù)據(jù)庫代理進一步提供了會話級別的數(shù)據(jù)一致性,保證了在同一會話內(nèi),每次SELECT請求都可以獲取到上一次寫入操作后,數(shù)據(jù)庫的最新數(shù)據(jù)。
TaurusDB數(shù)據(jù)庫代理會記錄每個數(shù)據(jù)節(jié)點的日志序號(Log Sequence Number,簡稱LSN),同時針對每一個會話也會維護對應(yīng)的LSN,即Session LSN。當(dāng)某個會話有數(shù)據(jù)更新操作執(zhí)行完畢時,數(shù)據(jù)庫代理會根據(jù)當(dāng)時主節(jié)點的LSN來更新對應(yīng)的Session LSN,后續(xù)有讀請求來的時候,數(shù)據(jù)庫代理會比較Session LSN以及各個數(shù)據(jù)節(jié)點的LSN,將請求發(fā)往LSN大于或等于Session LSN的數(shù)據(jù)節(jié)點,從而保證當(dāng)前會話內(nèi),SELECT請求總能獲取到上一次更新操作后的最新數(shù)據(jù)。
說明:TaurusDB開啟會話一致性后,如果主節(jié)點與讀節(jié)點復(fù)制時延較大,各個讀節(jié)點LSN均小于Session LSN,會導(dǎo)致SELECT請求發(fā)送到主節(jié)點,從而增大主節(jié)點的壓力,整個數(shù)據(jù)庫集群的讀寫性能會有一定的降低。
TaurusDB全局一致性
TaurusDB數(shù)據(jù)庫代理提供了全局級別的數(shù)據(jù)一致性,保證在不同會話內(nèi),數(shù)據(jù)一致,即寫入數(shù)據(jù)后,立即執(zhí)行查詢類操作,能夠準(zhǔn)確查到修改后的數(shù)據(jù)。
適用場景:建議在業(yè)務(wù)讀多寫少的場景下選擇全局一致性。
TaurusDB全局一致性提供以下兩個參數(shù):
| 
                                         參數(shù) 
                                     | 
                                    
                                    
                                    
                                         說明 
                                     | 
                                    
                                  
|---|---|
ConsistTimeout  | 
                                  
                                  TaurusDB全局一致性讀超時時間,即允許用于只讀節(jié)點的LSN更新至主節(jié)點最新LSN的時間。若超出該時間,數(shù)據(jù)庫代理將根據(jù)ConsistTimeoutPolicy參數(shù)設(shè)置的策略進行對應(yīng)操作。 取值范圍:0~300000,默認值為30,單位為毫秒。  | 
                                  
                                  
ConsistTimeoutPolicy  | 
                                  
                                  TaurusDB全局一致性讀超時策略,若未能在參數(shù)ConsistTimeout設(shè)置的時間內(nèi)將只讀節(jié)點的LSN更新至主節(jié)點最新LSN,數(shù)據(jù)庫代理將根據(jù)ConsistTimeoutPolicy參數(shù)設(shè)置進行對應(yīng)操作。 取值范圍如下: lrouteMaster:將讀請求發(fā)往主節(jié)點(默認)。 lretry:代理返回一個錯誤報文wait replication complete timeout, please retry給應(yīng)用端。  | 
                                  
                                  
說明:如需修改表中的參數(shù),需要聯(lián)系華為云客服人員申請權(quán)限。
使用TaurusDB全局一致性的時候數(shù)據(jù)庫會向主庫進行探活,并且探活會給主庫增加一定的壓力。
開啟TaurusDB全局一致性時,會增加整體業(yè)務(wù)的SQL平均響應(yīng)時延,同時主節(jié)點的壓力也會增大;當(dāng)主從延遲較高時,可能會導(dǎo)致應(yīng)用卡頓,根據(jù)ConsistTimeoutPolicy參數(shù)設(shè)置的策略,可能更多的請求被路由到主節(jié)點,造成主節(jié)點壓力進一步增大,業(yè)務(wù)延遲也可能增加。
如果在使用TaurusDB全局一致性過程中遇到“Failed to obtain the LSN from the master node.....”報錯信息,可能是由于數(shù)據(jù)庫主節(jié)點壓力過大,導(dǎo)致獲取LSN失敗,請聯(lián)系技術(shù)支持協(xié)助。
TaurusDB事務(wù)拆分功能
TaurusDB事務(wù)拆分操作背景
默認情況下,云數(shù)據(jù)庫TaurusDB數(shù)據(jù)庫代理會將事務(wù)內(nèi)的所有請求都發(fā)送到主節(jié)點以保障事務(wù)的正確性,但是某些框架會將所有請求封裝到非自動提交的事務(wù)中(通過set autocommit=0;關(guān)閉自動提交),導(dǎo)致主節(jié)點負載過大。
TaurusDB事務(wù)拆分使用限制
設(shè)置事務(wù)拆分需要滿足數(shù)據(jù)庫代理引擎版本為2.3.9.5及以上。
在默認的REPEATABLE_READ隔離級別下,云數(shù)據(jù)庫TaurusDB不支持事務(wù)拆分功能。
僅READ-UNCOMMITTED和READ-COMMITTED級別允許事務(wù)拆分,請修改事務(wù)隔離級別。
僅讀寫模式支持事務(wù)拆分功能。
TaurusDB事務(wù)拆分功能描述
TaurusDB數(shù)據(jù)庫代理提供事務(wù)拆分的功能,能夠?qū)⑹聞?wù)內(nèi)寫操作之前的讀請求轉(zhuǎn)發(fā)到只讀節(jié)點,降低主節(jié)點負載。
事務(wù)拆分功能默認關(guān)閉。
開啟事務(wù)拆分后,當(dāng)云數(shù)據(jù)庫TaurusDB關(guān)閉自動提交后,僅會在發(fā)生寫操作時才正式開啟事務(wù),正式開啟事務(wù)前的讀請求會通過負載均衡模塊分流至只讀節(jié)點。
TaurusDB事務(wù)拆分注意事項
當(dāng)TaurusDB事務(wù)拆分功能開啟后,僅支持將事務(wù)隔離級別修改為READ-UNCOMMITTED或READ-COMMITTED,若需要將事務(wù)隔離級別修改至更高的級別,需要關(guān)閉事務(wù)拆分功能。
TaurusDB事務(wù)拆分操作步驟
步驟 1登錄管理控制臺。
步驟 2單擊管理控制臺左上角的,選擇區(qū)域和項目。
步驟 3在頁面左上角單擊,選擇“數(shù)據(jù)庫 > 云數(shù)據(jù)庫 TaurusDB”。
步驟 4在“實例管理”頁面,選擇目標(biāo)實例,單擊實例名稱,進入實例基本信息頁面。
步驟 5在左側(cè)導(dǎo)航欄,單擊“數(shù)據(jù)庫代理”。
步驟 6在“數(shù)據(jù)庫代理”頁面,單擊“事務(wù)拆分”后的。
步驟 7在彈框中單擊“確認”,開啟事務(wù)拆分。
----結(jié)束
說明:開通或關(guān)閉事務(wù)拆分后僅對新連接生效。
TaurusDB訪問控制
操作背景
TaurusDB事務(wù)拆分?jǐn)?shù)據(jù)庫代理實例開啟了負載均衡,數(shù)據(jù)庫代理實例的安全組不生效,默認不限制連接數(shù)據(jù)庫代理的源IP地址,需通過訪問控制功能限制源IP地址。
如果管理控制臺上沒有顯示開啟訪問控制功能的按鈕,說明數(shù)據(jù)庫代理實例安全組會生效,不需要使用訪問控制功能。
TaurusDB數(shù)據(jù)庫開啟訪問控制
步驟 1 登錄管理控制臺。
步驟 2 單擊管理控制臺左上角的,選擇區(qū)域和項目。
步驟 3 在頁面左上角單擊,選擇“數(shù)據(jù)庫 > 云數(shù)據(jù)庫 TaurusDB”。
步驟 4 在“實例管理”頁面,選擇指定的實例,單擊實例名稱,進入實例的“基本信息”頁面。
步驟 5 在“數(shù)據(jù)庫代理”頁面,選擇目標(biāo)代理實例,單擊“訪問控制”處的,開啟訪問控制。
步驟 6 單擊“設(shè)置”,彈框中設(shè)置訪問控制方式和IP地址。
訪問控制方式:僅支持設(shè)置黑名單或白名單的其中一種,切換后原設(shè)置失效,黑名單內(nèi)的地址禁止訪問,請謹(jǐn)慎操作。
IP地址或網(wǎng)段:輸入符合規(guī)范的IP地址或網(wǎng)段,具體要求如下:
?每行一個IP地址或網(wǎng)段,以回車結(jié)束。
?每個IP地址或網(wǎng)段都可以用“|”分隔添加備注,如“192.168.10.10丨GaussDB01”,備注長度范圍是0到50字符,不能包含<>。
?最多可添加300個IP地址或網(wǎng)段。
----結(jié)束
TaurusDB數(shù)據(jù)庫關(guān)閉訪問控制
步驟 1 登錄管理控制臺。
步驟 2 單擊管理控制臺左上角的,選擇區(qū)域和項目。
步驟 3 在頁面左上角單擊,選擇“數(shù)據(jù)庫 > 云數(shù)據(jù)庫 TaurusDB”。
步驟 4 在“實例管理”頁面,選擇指定的實例,單擊實例名稱。
步驟 5 在“數(shù)據(jù)庫代理”頁面,選擇目標(biāo)代理實例,單擊“訪問控制”處的。
步驟 6 彈框中單擊“是”,關(guān)閉訪問控制。
----結(jié)束
專題內(nèi)容推薦
活動對象:華為云電銷客戶及渠道伙伴客戶可參與消費滿送活動,其他客戶參與前請咨詢客戶經(jīng)理
活動時間: 2020年8月12日-2020年9月11日
活動期間,華為云用戶通過活動頁面購買云服務(wù),或使用上云禮包優(yōu)惠券在華為云官網(wǎng)新購云服務(wù),累計新購實付付費金額達到一定額度,可兌換相應(yīng)的實物禮品?;顒觾?yōu)惠券可在本活動頁面中“上云禮包”等方式獲取,在華為云官網(wǎng)直接購買(未使用年中云鉅惠活動優(yōu)惠券)或參與其他活動的訂單付費金額不計入統(tǒng)計范圍內(nèi);