欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)庫的服務(wù)提供方法和系統(tǒng)與流程

文檔序號(hào):12733692閱讀:1574來源:國知局
數(shù)據(jù)庫的服務(wù)提供方法和系統(tǒng)與流程

本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及數(shù)據(jù)庫的服務(wù)提供方法和系統(tǒng)。



背景技術(shù):

當(dāng)前,數(shù)據(jù)庫系統(tǒng)一般采用一主一從的主從架構(gòu),來提供高可用性的服務(wù)。正常情況下,由主數(shù)據(jù)庫服務(wù)器對(duì)外服務(wù)。如果對(duì)外服務(wù)的進(jìn)程執(zhí)行了對(duì)數(shù)據(jù)的更改,則會(huì)在把更改寫入數(shù)據(jù)庫存儲(chǔ)前,先寫入到事務(wù)日志中。每條日志記錄了對(duì)一條數(shù)據(jù)記錄的修改,其中包含了數(shù)據(jù)記錄的主鍵和更新操作的具體信息。主數(shù)據(jù)庫服務(wù)器產(chǎn)生的日志,不斷通過網(wǎng)絡(luò)連接,發(fā)送給從數(shù)據(jù)庫服務(wù)器。從數(shù)據(jù)庫服務(wù)器接收到日志后,將其進(jìn)行回放,以使其數(shù)據(jù)跟主數(shù)據(jù)庫服務(wù)器同步。為描述簡(jiǎn)便,在后面的描述中,有時(shí)將主數(shù)據(jù)庫服務(wù)器簡(jiǎn)稱為主庫,將從數(shù)據(jù)庫服務(wù)器簡(jiǎn)稱為備庫。

現(xiàn)有技術(shù)中,數(shù)據(jù)庫系統(tǒng)對(duì)外提供針對(duì)數(shù)據(jù)庫的服務(wù)時(shí),在主庫發(fā)生宕機(jī)等異常,無法對(duì)外服務(wù)時(shí),需要切換到備庫,由備庫繼續(xù)提供服務(wù),從而實(shí)現(xiàn)高可用性。為使切換后,備庫的狀態(tài)與主庫的最后狀態(tài)一致,要保證備庫已經(jīng)有主庫的所有日志。

由上可見,在現(xiàn)有技術(shù)的數(shù)據(jù)庫的服務(wù)提供方法中,在一主一從架構(gòu)中,主備之間經(jīng)常會(huì)發(fā)生由于網(wǎng)絡(luò)不穩(wěn)定(如丟失數(shù)據(jù)包)、網(wǎng)絡(luò)瓶頸、或者備庫達(dá)到性能瓶頸(如CPU利用率達(dá)到峰值)而導(dǎo)致日志無法及時(shí)發(fā)送到備庫的現(xiàn)象,可能導(dǎo)致日志丟失。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)實(shí)施例提供了數(shù)據(jù)庫的服務(wù)提供方法和系統(tǒng),能夠保證日志不丟失。

一方面,提供了一種數(shù)據(jù)庫的服務(wù)提供方法,所述方法包括:

當(dāng)主數(shù)據(jù)庫服務(wù)器接收到客戶端的服務(wù)提供請(qǐng)求時(shí),根據(jù)所述服務(wù)提供請(qǐng)求更改數(shù)據(jù)庫中的數(shù)據(jù),并將所述數(shù)據(jù)庫的更改信息寫入到第一事務(wù)日志中,將所述第一事務(wù)日志發(fā)送給從數(shù)據(jù)庫服務(wù)器;

當(dāng)所述主數(shù)據(jù)庫服務(wù)器與所述從數(shù)據(jù)庫服務(wù)器之間的網(wǎng)絡(luò)連接斷開或超時(shí),或者,所述主數(shù)據(jù)庫服務(wù)器中累積的未發(fā)送成功的事務(wù)日志的數(shù)量超過預(yù)設(shè)數(shù)值時(shí),或者,所述第一事務(wù)日志的發(fā)送時(shí)間超過預(yù)設(shè)時(shí)間時(shí),所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)。

可選地,所述方法還包括:

當(dāng)所述主數(shù)據(jù)庫服務(wù)器確認(rèn)所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息已經(jīng)傳輸給所述緩沖區(qū),完成事務(wù)提交操作,通知所述客戶端事務(wù)提交成功。

可選地,所述所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,所述方法還包括:

所述主數(shù)據(jù)庫服務(wù)器繼續(xù)將所述第一事務(wù)日志發(fā)送給所述從數(shù)據(jù)庫服務(wù)器。

可選地,所述所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,所述方法還包括:

當(dāng)所述主數(shù)據(jù)庫服務(wù)器確認(rèn)所述第一事務(wù)日志已經(jīng)發(fā)送給所述從數(shù)據(jù)庫服務(wù)器后,所述主數(shù)據(jù)庫服務(wù)器向所述緩沖區(qū)發(fā)送指示消息,所述指示消息用于指示所述緩沖區(qū)刪除所述第一事務(wù)日志。

可選地,所述所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,所述方法還包括:

當(dāng)所述主數(shù)據(jù)庫服務(wù)器和所述從數(shù)據(jù)庫服務(wù)器之間發(fā)生主從切換時(shí),所述從數(shù)據(jù)庫服務(wù)器從所述緩沖區(qū)取出所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放,以使所述從數(shù)據(jù)庫服務(wù)器與所述主數(shù)據(jù)庫服務(wù)器同步數(shù)據(jù),回放完成開始對(duì)外提供服務(wù)。

可選地,所述所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,所述方法還包括:

當(dāng)所述主數(shù)據(jù)庫服務(wù)器和所述從數(shù)據(jù)庫服務(wù)器之間發(fā)生主從切換時(shí),所述從數(shù)據(jù)庫服務(wù)器從所述緩沖區(qū)取出所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息,其中,所述更新對(duì)象的信息具體為主鍵或頁面號(hào)信息,根據(jù)所述主鍵或頁面號(hào)信息對(duì)相應(yīng)的主鍵或頁面進(jìn)行加鎖,開始對(duì)外提供服務(wù)。

可選地,所述方法還包括:

當(dāng)所述從數(shù)據(jù)庫服務(wù)器接收到的數(shù)據(jù)庫事務(wù)訪問了加鎖的數(shù)據(jù),則會(huì)等待;直到所述從數(shù)據(jù)庫服務(wù)器接收到所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放后,釋放加鎖的數(shù)據(jù),再繼續(xù)所述數(shù)據(jù)庫事務(wù)。

可選地,所述方法還包括:

所述從數(shù)據(jù)庫服務(wù)器接收所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放,以使所述從數(shù)據(jù)庫服務(wù)器與所述主數(shù)據(jù)庫服務(wù)器同步數(shù)據(jù)。

另一方面,提供了一種數(shù)據(jù)庫系統(tǒng),所述系統(tǒng)包括:主數(shù)據(jù)庫服務(wù)器、從數(shù)據(jù)庫服務(wù)器和緩沖區(qū);

所述主數(shù)據(jù)庫服務(wù)器,用于當(dāng)所述主數(shù)據(jù)庫服務(wù)器接收到客戶端的服務(wù)提供請(qǐng)求時(shí),根據(jù)所述服務(wù)提供請(qǐng)求更改數(shù)據(jù)庫中的數(shù)據(jù),并將所述數(shù)據(jù)庫的更改信息寫入到第一事務(wù)日志中,將所述第一事務(wù)日志發(fā)送給從數(shù)據(jù)庫服務(wù)器;

所述從數(shù)據(jù)庫服務(wù)器,用于接收所述主數(shù)據(jù)庫服務(wù)器發(fā)送的所述第一事務(wù)日志;

所述主數(shù)據(jù)庫服務(wù)器,還用于當(dāng)所述主數(shù)據(jù)庫服務(wù)器與所述從數(shù)據(jù)庫服 務(wù)器之間的網(wǎng)絡(luò)連接斷開或超時(shí),或者,所述主數(shù)據(jù)庫服務(wù)器中累積的未發(fā)送成功的事務(wù)日志的數(shù)量超過預(yù)設(shè)數(shù)值時(shí),或者,所述第一事務(wù)日志的發(fā)送時(shí)間超過預(yù)設(shè)時(shí)間時(shí),將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū);

所述緩沖區(qū),用于存儲(chǔ)所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息。

可選地,所述主數(shù)據(jù)庫服務(wù)器,還用于當(dāng)所述主數(shù)據(jù)庫服務(wù)器確認(rèn)所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息已經(jīng)傳輸給所述緩沖區(qū),完成事務(wù)提交操作,通知所述客戶端事務(wù)提交成功。

可選地,所述主數(shù)據(jù)庫服務(wù)器,還用于在將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,繼續(xù)將所述第一事務(wù)日志發(fā)送給所述從數(shù)據(jù)庫服務(wù)器。

可選地,所述主數(shù)據(jù)庫服務(wù)器,還用于當(dāng)確認(rèn)所述第一事務(wù)日志已經(jīng)發(fā)送給所述從數(shù)據(jù)庫服務(wù)器后,向所述緩沖區(qū)發(fā)送指示消息,所述指示消息用于指示所述緩沖區(qū)刪除所述第一事務(wù)日志。

可選地,所述從數(shù)據(jù)庫服務(wù)器,還用于在所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,當(dāng)所述主數(shù)據(jù)庫服務(wù)器和所述從數(shù)據(jù)庫服務(wù)器之間發(fā)生主從切換時(shí),從所述緩沖區(qū)取出所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放,以使所述從數(shù)據(jù)庫服務(wù)器與所述主數(shù)據(jù)庫服務(wù)器同步數(shù)據(jù),回放完成開始對(duì)外提供服務(wù)。

可選地,所述從數(shù)據(jù)庫服務(wù)器,還用于在所述主數(shù)據(jù)庫服務(wù)器將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,當(dāng)所述主數(shù)據(jù)庫服務(wù)器和所述從數(shù)據(jù)庫服務(wù)器之間發(fā)生主從切換時(shí),所述從數(shù)據(jù)庫服務(wù)器從所述緩沖區(qū)取出所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息,其中,所述更新對(duì)象的信息具體為主鍵或頁面號(hào)信息,根據(jù)所述主鍵或 頁面號(hào)信息對(duì)相應(yīng)的主鍵或頁面進(jìn)行加鎖,開始對(duì)外提供服務(wù)。

可選地,所述從數(shù)據(jù)庫服務(wù)器,還用于當(dāng)所述從數(shù)據(jù)庫服務(wù)器接收到的數(shù)據(jù)庫事務(wù)訪問了加鎖的數(shù)據(jù),則會(huì)等待;直到所述從數(shù)據(jù)庫服務(wù)器接收到所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放后,釋放加鎖的數(shù)據(jù),再繼續(xù)所述數(shù)據(jù)庫事務(wù)。

可選地,所述從數(shù)據(jù)庫服務(wù)器,還用于接收所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放,以使所述從數(shù)據(jù)庫服務(wù)器與所述主數(shù)據(jù)庫服務(wù)器同步數(shù)據(jù)。

本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)庫的服務(wù)提供方法,在一主一從架構(gòu)的基礎(chǔ)上,另外設(shè)置了緩沖區(qū),當(dāng)備庫暫時(shí)無法接收日志時(shí),主庫將日志發(fā)送給緩沖區(qū),能夠保證日志不丟失。并且,可以當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)第一事務(wù)日志或者第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息已經(jīng)傳輸給緩沖區(qū)后,完成事務(wù)提交操作,通知所述客戶端事務(wù)提交成功,以便盡快的把日志傳出,從而完成事務(wù)提交,有效提高了主庫的性能,同時(shí)又不影響整個(gè)系統(tǒng)的可用性。

附圖說明

圖1為本申請(qǐng)實(shí)施例一提供的數(shù)據(jù)庫系統(tǒng)架構(gòu)圖;

圖2為本申請(qǐng)實(shí)施例二提供的數(shù)據(jù)庫的服務(wù)提供方法信號(hào)流圖;

圖3為本申請(qǐng)實(shí)施例三提供的數(shù)據(jù)庫系統(tǒng)架構(gòu)圖。

具體實(shí)施方式

為使本申請(qǐng)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。

為便于對(duì)本申請(qǐng)實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例做進(jìn)一步的解釋說明,實(shí)施例并不構(gòu)成對(duì)本申請(qǐng)實(shí)施例的限定。

圖1為本申請(qǐng)實(shí)施例一提供的數(shù)據(jù)庫系統(tǒng)架構(gòu)圖,該系統(tǒng)在一主一從架構(gòu)的基礎(chǔ)上,另外設(shè)置了緩沖區(qū),參照?qǐng)D1,該數(shù)據(jù)庫系統(tǒng)具體包括主數(shù)據(jù)庫服務(wù)器、從數(shù)據(jù)庫服務(wù)器和緩沖區(qū)。基于圖1所示的系統(tǒng)架構(gòu),本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)庫的服務(wù)提供方法,當(dāng)從數(shù)據(jù)庫服務(wù)器即備庫暫時(shí)無法接收日志時(shí),主數(shù)據(jù)庫服務(wù)器即主庫將日志發(fā)送給緩沖區(qū),以便盡快的把日志傳出,從而完成事務(wù)提交,有效提高了主庫的性能,同時(shí)又不影響整個(gè)系統(tǒng)的可用性。

圖2為本申請(qǐng)實(shí)施例二提供的數(shù)據(jù)庫的服務(wù)提供方法信號(hào)流圖,該方法基于圖1所示的數(shù)據(jù)庫系統(tǒng)架構(gòu),參照?qǐng)D2,該方法包括:

步驟201,主數(shù)據(jù)庫服務(wù)器接收客戶端的服務(wù)提供請(qǐng)求。

其中,當(dāng)用戶需要訪問數(shù)據(jù)庫時(shí),通過客戶端與主數(shù)據(jù)庫服務(wù)器建立連接,主數(shù)據(jù)庫服務(wù)器接收到客戶端的服務(wù)提供請(qǐng)求后,通過服務(wù)進(jìn)程來為用戶提供服務(wù)。

步驟202,主數(shù)據(jù)庫服務(wù)器根據(jù)服務(wù)提供請(qǐng)求更改數(shù)據(jù)庫中的數(shù)據(jù),并將數(shù)據(jù)庫的更改信息寫入到第一事務(wù)日志中。

本申請(qǐng)實(shí)施例中,對(duì)于更改數(shù)據(jù)的操作和寫入日志的操作的執(zhí)行順序不做限定,可以先更改數(shù)據(jù)后寫入日志,也可以先寫入日志后更改數(shù)據(jù),還可以同時(shí)寫入日志和更改數(shù)據(jù)。

步驟203,主數(shù)據(jù)庫服務(wù)器將第一事務(wù)日志發(fā)送給從數(shù)據(jù)庫服務(wù)器。

其中,可以通過在主數(shù)據(jù)庫服務(wù)器中設(shè)置日志寫入與發(fā)送模塊,由該日志寫入與發(fā)送模塊執(zhí)行寫入日志和發(fā)送日志的操作。

步驟204,從數(shù)據(jù)庫服務(wù)器接收到第一事務(wù)日志后,將第一事務(wù)日志進(jìn)行回放,以使從數(shù)據(jù)庫服務(wù)器與主數(shù)據(jù)庫服務(wù)器同步數(shù)據(jù)。

具體地,可以通過日志回放進(jìn)程,將第一事務(wù)日志進(jìn)行回放。

步驟205,當(dāng)主數(shù)據(jù)庫服務(wù)器確定日志無法及時(shí)傳輸?shù)綇臄?shù)據(jù)庫服務(wù)器時(shí),也即步驟204無法正常執(zhí)行時(shí),主數(shù)據(jù)庫服務(wù)器將第一事務(wù)日志或者第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)。

本申請(qǐng)實(shí)施例中,主數(shù)據(jù)庫服務(wù)器可以但不限于在下述情況下確定日志無法及時(shí)傳輸?shù)綇臄?shù)據(jù)庫服務(wù)器:當(dāng)主數(shù)據(jù)庫服務(wù)器與從數(shù)據(jù)庫服務(wù)器之間的網(wǎng)絡(luò)連接斷開或超時(shí),或者,主數(shù)據(jù)庫服務(wù)器中累積的未發(fā)送成功的事務(wù)日志的數(shù)量超過預(yù)設(shè)數(shù)值時(shí),或者,第一事務(wù)日志的發(fā)送時(shí)間超過預(yù)設(shè)時(shí)間。

其中,造成網(wǎng)絡(luò)連接斷開或超時(shí)的原因可能是由于網(wǎng)絡(luò)帶寬瓶頸或備庫的性能瓶頸等原因。

第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息可以為主鍵值或者頁面號(hào)。

緩沖區(qū)具體提供一個(gè)用作緩沖的消息隊(duì)列或緩存服務(wù)。

步驟206,當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)第一事務(wù)日志已經(jīng)發(fā)送給從數(shù)據(jù)庫服務(wù)器,或者,當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)從數(shù)據(jù)庫服務(wù)器已經(jīng)將第一次事務(wù)日志回放完畢后,或者,當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)第一事務(wù)日志或者第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息已經(jīng)傳輸給緩沖區(qū),完成事務(wù)提交操作,通知客戶端事務(wù)提交成功。

本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)庫的服務(wù)提供方法,擴(kuò)大了主數(shù)據(jù)庫服務(wù)器完成事務(wù)提交操作的范圍,不僅可以在當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)第一事務(wù)日志已經(jīng)發(fā)送給從數(shù)據(jù)庫服務(wù)器,或者,當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)從數(shù)據(jù)庫服務(wù)器已經(jīng)將第一次事務(wù)日志回放完畢后,完成事務(wù)提交操作,而且當(dāng)從數(shù)據(jù)庫服務(wù)器即備庫暫時(shí)無法接收日志時(shí),主數(shù)據(jù)庫服務(wù)器即主庫將日志或者日志對(duì)應(yīng)的更新對(duì)象的信息發(fā)送給緩沖區(qū),從而完成事務(wù)提交,有效提高了主庫的性能,同時(shí)又不影響整個(gè)系統(tǒng)的可用性。

在數(shù)據(jù)庫系統(tǒng)的一主一從架構(gòu)中,設(shè)置主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器兩個(gè)服務(wù)器的目的主要是為了當(dāng)主庫不可用時(shí),可以進(jìn)行主從切換,由從庫來為用戶提供服務(wù)。

本申請(qǐng)的一個(gè)具體的實(shí)施例中,當(dāng)主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器之間發(fā)生主從切換時(shí),從數(shù)據(jù)庫服務(wù)器從緩沖區(qū)取出第一事務(wù)日志,將第一事務(wù)日志進(jìn)行回放,以使從數(shù)據(jù)庫服務(wù)器與主數(shù)據(jù)庫服務(wù)器同步數(shù)據(jù),回放完成開始對(duì)外提供服務(wù)。

本申請(qǐng)的另一個(gè)具體的實(shí)施例中,當(dāng)主數(shù)據(jù)庫服務(wù)器和從數(shù)據(jù)庫服務(wù)器之間發(fā)生主從切換時(shí),從數(shù)據(jù)庫服務(wù)器從緩沖區(qū)取出第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息,其中,更新對(duì)象的信息具體為主鍵或頁面號(hào)信息,根據(jù)主鍵或頁面號(hào)信息對(duì)相應(yīng)的主鍵或頁面進(jìn)行加鎖,開始對(duì)外提供服務(wù)。

可選地,當(dāng)從數(shù)據(jù)庫服務(wù)器接收到的數(shù)據(jù)庫事務(wù)訪問了加鎖的數(shù)據(jù),則會(huì)等待;直到從數(shù)據(jù)庫服務(wù)器接收到第一事務(wù)日志,將第一事務(wù)日志進(jìn)行回放后,釋放加鎖的數(shù)據(jù),再由從數(shù)據(jù)庫服務(wù)器繼續(xù)該數(shù)據(jù)庫事務(wù)。

此外,也可以采取另外的方式,當(dāng)從數(shù)據(jù)庫服務(wù)器接收到的數(shù)據(jù)庫事務(wù)訪問了加鎖的數(shù)據(jù),則會(huì)等待;直到主數(shù)據(jù)庫服務(wù)器恢復(fù)后,再由主數(shù)據(jù)庫服務(wù)器繼續(xù)該數(shù)據(jù)庫事務(wù)。

可選地,主數(shù)據(jù)庫服務(wù)器將第一事務(wù)日志或者第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)之后,主數(shù)據(jù)庫服務(wù)器繼續(xù)將第一事務(wù)日志發(fā)送給從數(shù)據(jù)庫服務(wù)器。

可選地,當(dāng)主數(shù)據(jù)庫服務(wù)器確認(rèn)第一事務(wù)日志已經(jīng)發(fā)送給從數(shù)據(jù)庫服務(wù)器后,主數(shù)據(jù)庫服務(wù)器向緩沖區(qū)發(fā)送指示消息,該指示消息用于指示緩沖區(qū)刪除第一事務(wù)日志。

本申請(qǐng)實(shí)施例提供的方案其可用性與一主兩從方案相當(dāng),其中,一主兩從方案即基于一個(gè)主數(shù)據(jù)庫服務(wù)器和兩個(gè)從數(shù)據(jù)庫服務(wù)器的系統(tǒng)架構(gòu)的數(shù)據(jù)庫的服務(wù)提供方法。另外,本申請(qǐng)實(shí)施例中,由于緩沖區(qū)只需提供主備日志傳輸異常時(shí),保存日志的空間,主備日志傳輸恢復(fù)正常后,緩沖區(qū)即可丟棄日志,因此對(duì)緩沖區(qū)的存儲(chǔ)空間要求較小,實(shí)用性強(qiáng),成本較低;而且作為一個(gè)全局的服務(wù),一個(gè)緩沖區(qū)可以服務(wù)于多個(gè)數(shù)據(jù)庫系統(tǒng),所以此方案相對(duì) 于一主兩從方案,降低了對(duì)硬件的要求,相應(yīng)大幅降低了成本。

圖3為本申請(qǐng)實(shí)施例三提供的數(shù)據(jù)庫系統(tǒng)架構(gòu)圖,該系統(tǒng)用于執(zhí)行本申請(qǐng)實(shí)施例提供的數(shù)據(jù)庫的服務(wù)提供方法,參照?qǐng)D3,該系統(tǒng)包括:主數(shù)據(jù)庫服務(wù)器301、從數(shù)據(jù)庫服務(wù)器302和緩沖區(qū)303;

所述主數(shù)據(jù)庫服務(wù)器301,用于當(dāng)所述主數(shù)據(jù)庫服務(wù)器301接收到客戶端的服務(wù)提供請(qǐng)求時(shí),根據(jù)所述服務(wù)提供請(qǐng)求更改數(shù)據(jù)庫中的數(shù)據(jù),并將所述數(shù)據(jù)庫的更改信息寫入到第一事務(wù)日志中,將所述第一事務(wù)日志發(fā)送給從數(shù)據(jù)庫服務(wù)器302;

所述從數(shù)據(jù)庫服務(wù)器302,用于接收所述主數(shù)據(jù)庫服務(wù)器301發(fā)送的所述第一事務(wù)日志;

所述主數(shù)據(jù)庫服務(wù)器301,還用于當(dāng)所述主數(shù)據(jù)庫服務(wù)器301與所述從數(shù)據(jù)庫服務(wù)器302之間的網(wǎng)絡(luò)連接斷開或超時(shí),或者,所述主數(shù)據(jù)庫服務(wù)器301中累積的未發(fā)送成功的事務(wù)日志的數(shù)量超過預(yù)設(shè)數(shù)值時(shí),或者,所述第一事務(wù)日志的發(fā)送時(shí)間超過預(yù)設(shè)時(shí)間時(shí),將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)303;

所述緩沖區(qū)303,用于存儲(chǔ)所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息。

可選地,所述主數(shù)據(jù)庫服務(wù)器301,還用于當(dāng)所述主數(shù)據(jù)庫服務(wù)器301確認(rèn)所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息已經(jīng)傳輸給所述緩沖區(qū)303,完成事務(wù)提交操作,通知所述客戶端事務(wù)提交成功。

可選地,所述主數(shù)據(jù)庫服務(wù)器301,還用于在將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)303之后,繼續(xù)將所述第一事務(wù)日志發(fā)送給所述從數(shù)據(jù)庫服務(wù)器302。

可選地,所述主數(shù)據(jù)庫服務(wù)器301,還用于當(dāng)確認(rèn)所述第一事務(wù)日志已經(jīng)發(fā)送給所述從數(shù)據(jù)庫服務(wù)器302后,向所述緩沖區(qū)303發(fā)送指示消息,所述指示消息用于指示所述緩沖區(qū)303刪除所述第一事務(wù)日志。

可選地,所述從數(shù)據(jù)庫服務(wù)器302,還用于在所述主數(shù)據(jù)庫服務(wù)器301將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)303之后,當(dāng)所述主數(shù)據(jù)庫服務(wù)器301和所述從數(shù)據(jù)庫服務(wù)器302之間發(fā)生主從切換時(shí),從所述緩沖區(qū)303取出所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放,以使所述從數(shù)據(jù)庫服務(wù)器302與所述主數(shù)據(jù)庫服務(wù)器301同步數(shù)據(jù),回放完成開始對(duì)外提供服務(wù)。

可選地,所述從數(shù)據(jù)庫服務(wù)器302,還用于在所述主數(shù)據(jù)庫服務(wù)器301將所述第一事務(wù)日志或者所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息傳輸給緩沖區(qū)303之后,當(dāng)所述主數(shù)據(jù)庫服務(wù)器301和所述從數(shù)據(jù)庫服務(wù)器302之間發(fā)生主從切換時(shí),所述從數(shù)據(jù)庫服務(wù)器302從所述緩沖區(qū)303取出所述第一事務(wù)日志對(duì)應(yīng)的更新對(duì)象的信息,其中,所述更新對(duì)象的信息具體為主鍵或頁面號(hào)信息,根據(jù)所述主鍵或頁面號(hào)信息對(duì)相應(yīng)的主鍵或頁面進(jìn)行加鎖,開始對(duì)外提供服務(wù)。

可選地,所述從數(shù)據(jù)庫服務(wù)器302,還用于當(dāng)所述從數(shù)據(jù)庫服務(wù)器302接收到的數(shù)據(jù)庫事務(wù)訪問了加鎖的數(shù)據(jù),則會(huì)等待;直到所述從數(shù)據(jù)庫服務(wù)器302接收到所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放后,釋放加鎖的數(shù)據(jù),再繼續(xù)所述數(shù)據(jù)庫事務(wù)。

可選地,所述從數(shù)據(jù)庫服務(wù)器302,還用于接收所述第一事務(wù)日志,將所述第一事務(wù)日志進(jìn)行回放,以使所述從數(shù)據(jù)庫服務(wù)器302與所述主數(shù)據(jù)庫服務(wù)器301同步數(shù)據(jù)。

專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的對(duì)象及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為 超出本申請(qǐng)的范圍。

結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。

以上所述的具體實(shí)施方式,對(duì)本申請(qǐng)的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本申請(qǐng)的具體實(shí)施方式而已,并不用于限定本申請(qǐng)的保護(hù)范圍,凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永善县| 长阳| 舞阳县| 连山| 民丰县| 洞头县| 陆河县| 东兴市| 广汉市| 桂平市| 孟津县| 郁南县| 原平市| 西昌市| 墨玉县| 马山县| 南阳市| 榆林市| 纳雍县| 明水县| 迁西县| 突泉县| 建始县| 滦南县| 棋牌| 泊头市| 陇西县| 富阳市| 松阳县| 西平县| 英德市| 南溪县| 丰都县| 龙山县| 岱山县| 五指山市| 千阳县| 冕宁县| 郎溪县| 崇左市| 泌阳县|