自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

系統(tǒng)優(yōu)化利器:達(dá)夢讀寫分離集群

企業(yè)動態(tài)
隨著各行業(yè)業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)復(fù)雜程度的不斷攀升,數(shù)據(jù)庫的訪問壓力正不斷增強(qiáng)。在大型應(yīng)用系統(tǒng)中往往存在上百萬的用戶,有上千萬的數(shù)據(jù)量,產(chǎn)生眾多的數(shù)據(jù)庫查詢操作,也有較多的數(shù)據(jù)庫寫操作。如果能將數(shù)據(jù)庫的讀寫操作分離,無疑能大幅提升系統(tǒng)性能。

隨著各行業(yè)業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)復(fù)雜程度的不斷攀升,數(shù)據(jù)庫的訪問壓力正不斷增強(qiáng)。在大型應(yīng)用系統(tǒng)中往往存在上百萬的用戶,有上千萬的數(shù)據(jù)量,產(chǎn)生眾多的數(shù)據(jù)庫查詢操作,也有較多的數(shù)據(jù)庫寫操作。如果能將數(shù)據(jù)庫的讀寫操作分離,無疑能大幅提升系統(tǒng)性能。

一、 系統(tǒng)概述

在一個高并發(fā)的事務(wù)型系統(tǒng)中,當(dāng)寫事務(wù)占的比例相對讀事務(wù)相對較小時,可以借助DM7的主備系統(tǒng)備機(jī)可讀的特點,將讀事務(wù)轉(zhuǎn)移到備機(jī)執(zhí)行,減少單節(jié)點的并發(fā)壓力,通過增加備機(jī)節(jié)點資源,提高系統(tǒng)的并發(fā)能力,增強(qiáng)系統(tǒng)性能。

DM7提供一種獨具創(chuàng)新的主備方案,即時歸檔主備系統(tǒng),該系統(tǒng)可通過客戶端來實現(xiàn)讀寫事務(wù)的自動分離,讀事務(wù)在備機(jī)執(zhí)行,寫事務(wù)在主機(jī)執(zhí)行,減輕主機(jī)的負(fù)載。備機(jī)可以配置多個,備機(jī)配置的越多,更能分擔(dān)主機(jī)的壓力,系統(tǒng)整體并發(fā)效率越高。

二、 讀寫分離流程

DM7使用JDBC驅(qū)動與服務(wù)器結(jié)合的方式實現(xiàn)讀寫分離,大致流程如下:

1) 用戶登錄后,客戶端首先連接到主機(jī),主機(jī)根據(jù)即時歸檔的配置,獲取一個有效的備機(jī)信息,并返回給客戶端。

2) 客戶端根據(jù)主機(jī)返回的備機(jī)IP和端口,建立與該備機(jī)的連接。

3) 客戶端執(zhí)行語句時先在備機(jī)上執(zhí)行,如果是只讀事務(wù),則只在備機(jī)上執(zhí)行。

4) 如果系統(tǒng)收到客戶端試圖在備機(jī)模式下修改數(shù)據(jù)等錯誤,則說明該事務(wù)是寫事務(wù),則轉(zhuǎn)移到主機(jī)上執(zhí)行。

5) 一旦主機(jī)上執(zhí)行的寫事務(wù)提交,則下次繼續(xù)從備機(jī)開始執(zhí)行。

6) 為了實現(xiàn)負(fù)載均衡,防止出現(xiàn)讀事務(wù)過多占用備機(jī)資源、主機(jī)空閑的情況,客戶端采用一定的算法進(jìn)行均衡,主機(jī)上也會執(zhí)行一部分讀事務(wù)。

圖1 讀寫分離流程

三、 即時歸檔

DM7支持多種歸檔類型,本地歸檔、實時歸檔、同步歸檔、異步歸檔等類型。為了實現(xiàn)讀寫分離,新增一種即時歸檔(Timely archive)類型,以區(qū)別實時歸檔。

實時歸檔是實時發(fā)送日志到備機(jī),備機(jī)收到日志不會等待日志APPLY完成,立即響應(yīng)給主機(jī),主機(jī)收到響應(yīng)后才刷本地日志。

即時歸檔是一種比實時歸檔更加嚴(yán)格的遠(yuǎn)程歸檔方式,先刷本地日志,然后發(fā)送到備機(jī),并且等待備機(jī)APPLY完成,之所以要這么做,原因有2個:

首先,即時歸檔主備系統(tǒng)不會發(fā)生主備切換,在主機(jī)發(fā)送完日志到備機(jī)后刷日志前主機(jī)崩潰的情況下,不能讓備機(jī)多一段日志,確保主機(jī)數(shù)據(jù)是完整且***的。

其次,需要保證主備機(jī)的數(shù)據(jù)一致性,避免從備機(jī)讀的數(shù)據(jù)到主機(jī)進(jìn)行更新時數(shù)據(jù)已經(jīng)不一致了。

在某些不需要保證嚴(yán)格一致性的情況下,可以通過dmarch.ini中的ARCH_WAIT_APPLY配置項,來配置不需要等待備機(jī)重做完日志的主備系統(tǒng),類似于實時歸檔,可以進(jìn)一步提高系統(tǒng)性能。

四、 事務(wù)一致性

若事務(wù)全為讀操作,則全部在備機(jī)上執(zhí)行。

若事務(wù)全為寫操作,則全部在主機(jī)上執(zhí)行。

若事務(wù)既有讀又有寫,備機(jī)會將寫操作返回給主機(jī)執(zhí)行,該事務(wù)中從寫操作開始以后所有操作均在主機(jī)上執(zhí)行,保證事務(wù)一致性。

五、 數(shù)據(jù)同步

配置讀寫分離集群之前,必須先同步主備機(jī)數(shù)據(jù),確保兩者保持完全一致;主數(shù)據(jù)庫可以是新初始化的數(shù)據(jù),也可以是正在生產(chǎn)、使用中的數(shù)據(jù)。DM7提供了兩種方式初始化同步主備機(jī)數(shù)據(jù),數(shù)據(jù)文件拷貝以及備份還原方式。

不能使用分別初始化庫的方法,原因如下:

1) 每個庫都有一個***魔數(shù)(permenant_magic),主備機(jī)傳送日志時會判斷這個值是否一樣,確保來自同一個庫,不同的庫傳送不了日志

2) 由于dminit初始化數(shù)據(jù)庫時,會生成隨機(jī)密鑰用于加密,每次生成的密鑰都不相同,備機(jī)無法解析采用主機(jī)密鑰加密的數(shù)據(jù)

1. 數(shù)據(jù)文件拷貝

如果搭建系統(tǒng)之前,數(shù)據(jù)庫系統(tǒng)已經(jīng)上線運(yùn)行了,可通過拷貝數(shù)據(jù)文件的方式實現(xiàn)主備數(shù)據(jù)庫的同步。具體步驟包括:

1) 正常關(guān)閉數(shù)據(jù)庫。

2) 嚴(yán)格按照數(shù)據(jù)文件在主機(jī)上的分布,拷貝數(shù)據(jù)文件到備機(jī)的對應(yīng)目錄。

3) 如果數(shù)據(jù)文件統(tǒng)一存放在一個目錄下,則直接拷貝整個目錄即可。

2. 備份還原方式

用戶也可以通過脫機(jī)備份、脫機(jī)還原的方式同步主備機(jī)數(shù)據(jù),更詳細(xì)的說明可以參考備份恢復(fù)相關(guān)文檔。具體步驟包括:

1) 正常關(guān)閉數(shù)據(jù)庫

2) 進(jìn)行脫機(jī)備份

3) 拷貝備份文件到備機(jī)

4) 執(zhí)行脫機(jī)數(shù)據(jù)庫恢復(fù)

六、 讀寫分離效果

搭建1主2備系統(tǒng),***情況可提升吞吐量250%。

圖2 讀寫分離測試效果

達(dá)夢高性能讀寫分離集群已成功應(yīng)用于世界500強(qiáng)、大型央企財務(wù)核心系統(tǒng)建設(shè)中,欲知詳情,請密切關(guān)注2014年4月10即將在北京舉辦的2014中國數(shù)據(jù)庫技術(shù)大會。屆時,武漢達(dá)夢數(shù)據(jù)庫有限公司將在本次大會的數(shù)據(jù)庫性能調(diào)優(yōu)專場為大家?guī)砭恃葜v,敬請期待!

責(zé)任編輯:黃丹 來源: 中國商業(yè)電訊
相關(guān)推薦

2022-12-15 09:44:29

數(shù)據(jù)庫利器

2024-12-23 07:37:53

2009-08-14 15:47:48

浪潮奇夢達(dá)

2010-07-28 13:47:32

達(dá)夢數(shù)據(jù)庫

2025-03-31 10:40:52

2019-09-30 09:19:54

Redis分離云數(shù)據(jù)庫

2014-04-16 14:36:03

2018-10-16 16:45:05

數(shù)據(jù)庫讀寫分離

2017-05-25 10:22:13

NoSQL數(shù)據(jù)庫主主備份

2021-03-26 08:20:51

SpringBoot讀寫分離開發(fā)

2022-04-25 08:03:57

MySQL中間件MyCat

2023-07-07 08:36:45

配置注解jar

2009-05-04 09:13:52

PHPMySQL讀寫分離

2017-09-04 09:53:58

MySQLAtlasNavicat

2020-04-23 15:08:41

SpringBootMyCatJava

2018-01-01 05:23:13

服務(wù)化讀寫分離架構(gòu)

2010-05-17 11:19:44

MySQL proxy

2021-06-25 10:05:58

SpringBootMySQL數(shù)據(jù)庫

2020-09-07 07:36:32

數(shù)據(jù)庫集群程序員

2020-12-11 16:37:46

數(shù)據(jù)庫/新基建/全棧
點贊
收藏

51CTO技術(shù)棧公眾號