一種數(shù)據(jù)庫操作方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)庫領(lǐng)域,特別是涉及一種數(shù)據(jù)庫操作方法和裝置。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)技術(shù)的應用場景中,應用服務不可用是非常敏感的問題。一方面,應用服務不可用會讓用戶體驗急劇變差,甚至讓用戶產(chǎn)生一定的恐慌;另一方面,應用服務不可用也會給用戶或者服務提供方帶來經(jīng)濟損失,特別是一些對實時性有要求的業(yè)務,如,各類金融業(yè)務。
[0003]有很多因素都可能導致應用服務不可用,例如,數(shù)據(jù)庫故障或數(shù)據(jù)庫升級(包括軟件升級和磁盤升級)等。為了避免因數(shù)據(jù)庫故障或升級等因素而導致應用服務不可用,一般需要對數(shù)據(jù)庫做備份處理。也就是說,在系統(tǒng)中,數(shù)據(jù)庫除了包括有一個主庫之外,還要包括有至少一個備庫,在主庫可用的情況下,應用服務器通過對主庫進行操作來完成應用服務。而在主庫不可用的情況下,其中一個備庫被啟動,應用服務器通過對備庫進行操作來繼續(xù)完成應用服務。
[0004]在實現(xiàn)本申請的過程中,本申請的發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:由于備庫中的數(shù)據(jù)與主庫中的數(shù)據(jù)不是同步的,而是存在一定的數(shù)據(jù)延遲時間,因此,在備庫被啟動之后,并不能立刻對備庫進行操作,而需要先將備庫中缺失的數(shù)據(jù)寫入到備庫中,使備庫與主庫中的數(shù)據(jù)達到完全一致,即,主庫與備庫之間需要進行切換,而該切換過程需要花費一定的時間。也就是說,從備庫被啟動開始到真正地被操作,應用服務器還需要等待一段時間,通常,這段時間為10?15分鐘。而對于一些有實時性要求的業(yè)務來說,這段時間是無法接受的。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本申請實施例提供了一種數(shù)據(jù)庫操作方法和裝置,以緩解甚至避免在主庫和備庫進行切換時而出現(xiàn)的應用服務不可用的問題。
[0006]本申請實施例公開了如下技術(shù)方案:
[0007]—種數(shù)據(jù)庫操作方法,第一數(shù)據(jù)庫保存業(yè)務請求記錄,第二數(shù)據(jù)庫保存業(yè)務數(shù)據(jù),所述第二數(shù)據(jù)庫包括一個主庫和至少一個備庫;所述方法包括:
[0008]當主庫不可用時,根據(jù)第一數(shù)據(jù)庫中的業(yè)務請求記錄統(tǒng)計在備庫可信時間臨界點之后提交的業(yè)務請求,將統(tǒng)計的業(yè)務請求所對應的賬號作為備庫不可處理賬號,其中,以主庫不可用的初始時間點為預設(shè)時間段的終止點,起始點即為所述備庫可信時間臨界點,所述預設(shè)時間段的時長大于或等于備庫與主庫之間的數(shù)據(jù)延遲時間;
[0009]判斷當前業(yè)務請求所對應的賬號是否為所述備庫不可處理賬號;
[0010]如果是,拒絕當前業(yè)務請求;
[0011]如果否,接受當前業(yè)務請求,并根據(jù)當前業(yè)務請求對備庫進行操作。
[0012]優(yōu)選的,所述方法還包括:
[0013]在拒絕當前業(yè)務請求之前,判斷當前業(yè)務請求針對的業(yè)務類型是否為預設(shè)業(yè)務類型;
[0014]拒絕當前業(yè)務請求為:
[0015]如果當前業(yè)務請求針對的業(yè)務類型不是預設(shè)業(yè)務類型,拒絕當前業(yè)務請求。
[0016]進一步優(yōu)選的,所述方法還包括:
[0017]如果當前業(yè)務請求針對的業(yè)務類型是預設(shè)業(yè)務類型,接受當前業(yè)務請求,并根據(jù)當前業(yè)務請求對備庫進行操作。
[0018]優(yōu)選的,所述備庫為只允許進行讀取操作的數(shù)據(jù)庫;
[0019]所述根據(jù)當前業(yè)務請求對備庫進行操作為:
[0020]根據(jù)當前業(yè)務請求對備庫進行讀取操作。
[0021]進一步優(yōu)選的,所述方法還包括:根據(jù)當前業(yè)務請求對第三數(shù)據(jù)庫進行寫入操作,其中,第三數(shù)據(jù)庫為允許進行寫入操作的數(shù)據(jù)庫。
[0022]一種數(shù)據(jù)庫操作裝置,其特征在于,第一數(shù)據(jù)庫保存業(yè)務請求記錄,第二數(shù)據(jù)庫保存業(yè)務數(shù)據(jù),所述第二數(shù)據(jù)庫包括一個主庫和至少一個備庫;所述裝置包括:
[0023]統(tǒng)計單元,用于當主庫不可用時,根據(jù)第一數(shù)據(jù)庫中的業(yè)務請求記錄統(tǒng)計備庫可信時間臨界點之后提交的業(yè)務請求,將統(tǒng)計的業(yè)務請求所對應的賬號作為備庫不可處理賬號,其中,以主庫不可用的初始時間點為預設(shè)時間段的終止點,起始點即為所述備庫可信時間臨界點,所述預設(shè)時間段的時長大于或等于備庫與主庫之間的數(shù)據(jù)延遲時間;
[0024]第一判斷單元,用于判斷當前業(yè)務請求所對應的賬號是否為所述備庫不可處理賬號;
[0025]請求拒絕單元,用于如果當前業(yè)務請求所對應的賬號是所述備庫不可處理賬號,拒絕當前業(yè)務請求。
[0026]第一操作單元,用于如果當前業(yè)務請求所對應的賬號不是備庫不可處理賬號,接受當前業(yè)務請求,并根據(jù)當前業(yè)務請求對備庫進行操作。
[0027]優(yōu)選的,所述裝置還包括:
[0028]第二判斷單元,用于在所述拒絕請求單元拒絕當前的業(yè)務請求之前,判斷當前業(yè)務請求針對的業(yè)務類型是否為預設(shè)業(yè)務類型;
[0029]所述請求拒絕單元用于,如果當前業(yè)務請求針對的業(yè)務類型不是預設(shè)業(yè)務類型,拒絕當前業(yè)務請求。
[0030]進一步優(yōu)選的,所述第一操作單元還用于,如果當前業(yè)務請求針對的業(yè)務類型是預設(shè)業(yè)務類型,接受當前業(yè)務請求,并根據(jù)當前業(yè)務請求對備庫進行操作。
[0031]優(yōu)選的,所述備庫為只允許進行讀取操作的數(shù)據(jù)庫;
[0032]所述第一操作單元用于,根據(jù)當前業(yè)務請求對備庫進行讀取操作。
[0033]進一步優(yōu)選的,所述裝置還包括:
[0034]第二操作單元,用于根據(jù)當前業(yè)務請求對第三數(shù)據(jù)庫進行寫入操作,其中,第三數(shù)據(jù)庫為允許進行寫入操作的數(shù)據(jù)庫。
[0035]由上述實施例可以看出,與現(xiàn)有技術(shù)相比,本申請的優(yōu)點在于:
[0036]當業(yè)務數(shù)據(jù)所在的第二數(shù)據(jù)庫的主庫不可用時,在主庫和其備庫的切換過程中,可以先確定備庫不可處理賬號,即,對于備庫不可處理賬號下的業(yè)務請求來說,備庫中的數(shù)據(jù)是不可信的。而除備庫不可處理賬號之外的賬號為備庫可處理的賬號,即,對于備庫可處理賬號下的業(yè)務請求來說,備庫中的數(shù)據(jù)是可信的。因此,對于備庫可處理賬號下的業(yè)務請求,可以根據(jù)該業(yè)務請求直接對備庫進行操作。這樣就可以保證在主庫和備庫的切換過程中,應用服務仍然是可用的,并不會因此而中斷,緩解甚至避免了在主庫和備庫進行切換時而出現(xiàn)的應用服務不可用的問題。
【附圖說明】
[0037]為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0038]圖1示意性地示出了本發(fā)明的實施方式可以在其中實施的示例性應用場景;
[0039]圖2為本申請?zhí)峁┑囊环N數(shù)據(jù)庫操作方法的一個實施例的流程圖;
[0040]圖3為本申請中的估算備庫可信時間臨界點的原理示意圖;
[0041]圖4為本申請中第一數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)示意圖;
[0042]圖5為本申請中第二數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)示意圖;
[0043]圖6為本申請?zhí)峁┑囊环N數(shù)據(jù)庫操作方法的另一個實施例的流程圖;
[0044]圖7為本申請?zhí)峁┑囊环N數(shù)據(jù)庫操作裝置的一個實施例的結(jié)構(gòu)圖;
[0045]圖8為本申請?zhí)峁┑囊环N數(shù)據(jù)庫操作裝置的另一個實施例的結(jié)構(gòu)圖。
【具體實施方式】
[0046]由于備庫與主庫之間僅存在幾秒鐘的數(shù)據(jù)延遲,因此,可以確定的是,當主庫因為各種原因而導致不可用時,備庫中的絕大部分數(shù)據(jù)與主庫中的數(shù)據(jù)是一致的,為了便于后面的描述,將這一部分數(shù)據(jù)稱