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