本發(fā)明涉及大數(shù)據(jù)
技術(shù)領(lǐng)域:
,具體地說(shuō)是一種基于消息隊(duì)列的異步數(shù)據(jù)備份方法。
背景技術(shù):
:隨著大數(shù)據(jù)時(shí)代的到來(lái),人們?cè)絹?lái)越多的意識(shí)到數(shù)據(jù)對(duì)企業(yè)的重要性。在這個(gè)“數(shù)據(jù)即資產(chǎn)”的時(shí)代,如何利用數(shù)據(jù)備份來(lái)保證數(shù)據(jù)安全也成為我們迫切需要解決的難題。傳統(tǒng)的數(shù)據(jù)備份方案大多依賴于數(shù)據(jù)庫(kù)的冗余模式(主從庫(kù)),其缺點(diǎn)如下:依賴于特定的數(shù)據(jù)庫(kù)平臺(tái),不能滿足不同應(yīng)用場(chǎng)景數(shù)據(jù)備份需求。采用主從庫(kù)之間的數(shù)據(jù)復(fù)制模式,當(dāng)主庫(kù)因誤操作執(zhí)行清除數(shù)據(jù)操作時(shí),存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。局限于結(jié)構(gòu)化數(shù)據(jù),很難支持半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的備份需求。為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于消息隊(duì)列的數(shù)據(jù)備份方案,解決全品類數(shù)據(jù)備份的難題。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種基于消息隊(duì)列的異步數(shù)據(jù)備份方法。一種基于消息隊(duì)列的異步數(shù)據(jù)備份方法,其實(shí)現(xiàn)過(guò)程為:首先通過(guò)客戶端發(fā)起數(shù)據(jù)寫入請(qǐng)求;然后由備份服務(wù)器讀取請(qǐng)求消息并生成本地文件,該本地文件為臨時(shí)文件,達(dá)到最大容量限制后輸出數(shù)據(jù)文件;最后將本地文件上傳至ftp文件備份服務(wù)器,完成備份過(guò)程。在客戶端發(fā)起數(shù)據(jù)寫入請(qǐng)求時(shí),首先需要通過(guò)業(yè)務(wù)接口讀取并判斷是否開啟備份開關(guān)配置,如果文件備份開關(guān)為開啟狀態(tài),則將數(shù)據(jù)寫入消息隊(duì)列中。備份服務(wù)器通過(guò)持續(xù)讀取消息隊(duì)列來(lái)生成本地?cái)?shù)據(jù)文件,具體過(guò)程為:備份服務(wù)器讀取消息隊(duì)列,判斷是否有新消息,如果沒(méi)有則休眠10s后繼續(xù)讀取,如有新消息,則讀取消息內(nèi)容,調(diào)用文件寫入接口;文件寫入接口判斷是否需要生成新文件:如果不需要生成新文件,則追加寫入文件內(nèi)容,即采用追加的方式寫入文件內(nèi)容,結(jié)構(gòu)化數(shù)據(jù)寫文本文件,一行寫一條數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)寫二進(jìn)制文件,以TLV格式寫入文件內(nèi)容,單個(gè)數(shù)據(jù)文件寫入數(shù)據(jù)時(shí)以加鎖的方式控制并發(fā)訪問(wèn);如果需要生成新數(shù)據(jù)文件,則需先將臨時(shí)文件輸出至本地目錄,然后將文件備份結(jié)果寫記錄,最后生成新的臨時(shí)文件,寫入文件內(nèi)容。在上述步驟中生成的新數(shù)據(jù)文件采用如下規(guī)則命名:表名+主機(jī)ip第四段+日期+主鍵,并以后綴的方式區(qū)分臨時(shí)文件及數(shù)據(jù)文件,新生成的臨時(shí)文件以.tmp為后綴;已寫入完成的數(shù)據(jù)文件以.data為后綴。所述文件備份結(jié)果寫記錄在備份文件結(jié)果記錄模塊中,該模塊用于統(tǒng)計(jì)分析、數(shù)據(jù)比對(duì),并根據(jù)存儲(chǔ)記錄,文件恢復(fù)時(shí)快速定位備份文件,該備份文件結(jié)果記錄模塊中記錄的內(nèi)容包括ID;日期;備份文件類型;業(yè)務(wù)表名;備份文件名;文件大小,單位為MB;記錄數(shù),即文件數(shù)據(jù)條數(shù);創(chuàng)建時(shí)間,即輸出數(shù)據(jù)文件的時(shí)間;是否已上傳,即用于標(biāo)識(shí)文件是否已上傳至ftp服務(wù)器,0表示否,1表示是;上傳時(shí)間;ftp文件備份服務(wù)器主機(jī)ip;文件存放主目錄;是否已刪除,用于標(biāo)識(shí)文件是否已從ftp服務(wù)器刪除,0表示否,1表示是。將本地文件上傳至ftp文件備份服務(wù)器的具體過(guò)程為:首先掃描本地文件目錄,判斷是否存在數(shù)據(jù)文件,如果不存在則休眠10分鐘后繼續(xù)掃描;如果存在待上傳的數(shù)據(jù)文件,則統(tǒng)計(jì)ftp文件備份服務(wù)器存儲(chǔ)使用情況,判斷是否達(dá)到存儲(chǔ)上限;如果達(dá)到存儲(chǔ)上限則刪除文件,釋放空間,實(shí)現(xiàn)數(shù)據(jù)滾動(dòng)存儲(chǔ),刪除規(guī)則為一次刪除一天的數(shù)據(jù),優(yōu)先刪除最早日期的數(shù)據(jù);最后將本地?cái)?shù)據(jù)文件上傳至ftp文件備份服務(wù)器,上傳成功后更新相關(guān)記錄信息并刪除本地文件。所述ftp文件備份服務(wù)器數(shù)據(jù)存儲(chǔ)規(guī)劃根據(jù)不同的文件類型,通過(guò)設(shè)置時(shí)間、容量?jī)蓚€(gè)維度進(jìn)行控制,如果存儲(chǔ)時(shí)間或者容量任一維度達(dá)到閾值限制,則進(jìn)行滾動(dòng)存儲(chǔ)。本發(fā)明的一種基于消息隊(duì)列的異步數(shù)據(jù)備份方法和現(xiàn)有技術(shù)相比,具有以下有益效果:本發(fā)明以公共安全敏感人群作為初始條件,有效的解決了結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的備份難題,本發(fā)明,基于消息服務(wù),采用異步架構(gòu),業(yè)務(wù)接口將數(shù)據(jù)寫入消息隊(duì)列即可,無(wú)需等待處理結(jié)果,最大限度的減少了數(shù)據(jù)備份對(duì)業(yè)務(wù)受理效率產(chǎn)生的影響,有效的提高了數(shù)據(jù)備份效率,同時(shí)提高了備份服務(wù)的可靠性,即使備份服務(wù)宕機(jī)既不影響正常業(yè)務(wù)受理又不會(huì)導(dǎo)致數(shù)據(jù)丟失,數(shù)據(jù)存儲(chǔ)基于數(shù)據(jù)文件,不依賴與特定的數(shù)據(jù)庫(kù)平臺(tái),既可以滿足傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),又可以滿足NOSQL數(shù)據(jù)庫(kù)的備份需求,真正實(shí)現(xiàn)了安全、可靠、高效的數(shù)據(jù)備份方案,其可應(yīng)用于任何需要數(shù)據(jù)備份服務(wù)的場(chǎng)景,實(shí)用性強(qiáng),適用范圍廣泛,尤其適用于具有非結(jié)構(gòu)化數(shù)據(jù)備份需求的系統(tǒng),具有很好的推廣應(yīng)用價(jià)值。附圖說(shuō)明附圖1為基于消息隊(duì)列的異步數(shù)據(jù)備份方案整體架構(gòu)示意圖。附圖2為基于消息隊(duì)列的數(shù)據(jù)備份文件生成流程示意圖。附圖3為本地備份文件上傳至ftp服務(wù)器流程示意圖。具體實(shí)施方式下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。一種基于消息隊(duì)列的異步數(shù)據(jù)備份方法,不依賴于特定的數(shù)據(jù)庫(kù)平臺(tái),既可以滿足傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),又可以滿足NOSQL數(shù)據(jù)庫(kù)的備份需求。支持結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)的備份需求。基于消息服務(wù),采用異步架構(gòu),業(yè)務(wù)接口將數(shù)據(jù)寫入消息隊(duì)列即可,無(wú)需等待處理結(jié)果,最大限度的減少了數(shù)據(jù)備份對(duì)業(yè)務(wù)受理效率產(chǎn)生的影響。數(shù)據(jù)存儲(chǔ)基于數(shù)據(jù)文件,不依賴與特定的數(shù)據(jù)庫(kù)平臺(tái),既可以滿足傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),又可以滿足NOSQL數(shù)據(jù)庫(kù)的備份需求。對(duì)于結(jié)構(gòu)化數(shù)據(jù),寫入文本文件,對(duì)于非結(jié)構(gòu)化數(shù)據(jù)寫入TLV格式二進(jìn)制文件。可滿足結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化所有類型數(shù)據(jù)備份需求。備份服務(wù)讀取消息先生成本地臨時(shí)文件,達(dá)到容量限制后輸出數(shù)據(jù)文件。然后將本地備份文件上傳至ftp文件備份服務(wù)器。ftp服務(wù)器數(shù)據(jù)存儲(chǔ)規(guī)劃可根據(jù)不同的文件類型,設(shè)置時(shí)間、容量?jī)蓚€(gè)維度進(jìn)行控制,如果存儲(chǔ)時(shí)間或者容量任一維度達(dá)到限制,則進(jìn)行滾動(dòng)存儲(chǔ)。為提高文件備份效率,最大限度的減少數(shù)據(jù)備份對(duì)業(yè)務(wù)受理效率產(chǎn)生的影響,本數(shù)據(jù)備份方案,采用先寫入本地臨時(shí)文件,然后采用異步的方式將本地備份文件上傳至ftp文件備份服務(wù)器。下面結(jié)合附圖1作進(jìn)一步描述,其具體實(shí)現(xiàn)步驟如下:客戶端發(fā)起數(shù)據(jù)寫入請(qǐng)求后,業(yè)務(wù)接口讀取是否開啟備份開關(guān)配置,如果文件備份開關(guān)為開啟狀態(tài),則將數(shù)據(jù)寫入消息隊(duì)列。備份組件服務(wù)持續(xù)讀取消息隊(duì)列,生成本地?cái)?shù)據(jù)文件(參照附圖2:基于消息隊(duì)列的數(shù)據(jù)備份文件生成流程示意圖)。備份服務(wù)讀取消息隊(duì)列,判斷是否有新消息,如果沒(méi)有則休眠10s后繼續(xù)讀取,如有新消息,則讀取消息內(nèi)容,調(diào)用文件寫入接口。文件寫入接口判斷是否需要生成新文件。系統(tǒng)根據(jù)寫入請(qǐng)求自動(dòng)判斷是否產(chǎn)生新文件。同一天同一張表產(chǎn)生一個(gè)數(shù)據(jù)文件,單個(gè)文件大小不超過(guò)1G,達(dá)到容量限制則產(chǎn)生一個(gè)新文件。新生成的臨時(shí)文件以.tmp為后綴。如果不需要生成新文件,則追加寫入文件內(nèi)容。采用追加的方式寫入文件內(nèi)容,結(jié)構(gòu)化數(shù)據(jù)寫文本文件,一行寫一條數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)寫二進(jìn)制文件,以TLV格式寫入文件內(nèi)容,單個(gè)數(shù)據(jù)文件寫入數(shù)據(jù)時(shí)以加鎖的方式控制并發(fā)訪問(wèn)。4)如果需要生成新數(shù)據(jù)文件,則需先將臨時(shí)文件輸出至本地目錄,然后將文件備份結(jié)果寫入備份文件結(jié)果記錄表,然后生成新的臨時(shí)文件,寫入文件內(nèi)容。文件命名采用如下規(guī)則:表名+主機(jī)ip第四段+日期+主鍵:表名-ip-yyyyMMdd-3位序列號(hào),如:TRFF_PHOTO.VIO_JDCZP-243-20161116-001.tmp。以后綴的方式區(qū)分臨時(shí)文件及數(shù)據(jù)文件。新生成的臨時(shí)文件以.tmp為后綴。已寫入完成的數(shù)據(jù)文件以.data為后綴。上面所述的兩種數(shù)據(jù)在本地存儲(chǔ)目錄規(guī)劃如下表所示:已完成的備份數(shù)據(jù)文件,寫入備份文件結(jié)果記錄表,用于統(tǒng)計(jì)分析,數(shù)據(jù)比對(duì),方便掌握文件備份情況,服務(wù)器資源占用情況。根據(jù)存儲(chǔ)記錄,文件恢復(fù)時(shí)可快速定位備份文件。該備份文件結(jié)果記錄表如下表所示。文件上傳服務(wù),掃描數(shù)據(jù)文件,將數(shù)據(jù)文件上傳至ftp服務(wù)器(參照附圖3:本地備份文件上傳至ftp服務(wù)器流程示意圖)。上傳服務(wù)掃描本地文件目錄,判斷是否存在數(shù)據(jù)文件(后綴為.data),如果不存在則休眠10分鐘后繼續(xù)掃描。如果存在待上傳的數(shù)據(jù)文件,則統(tǒng)計(jì)ftp服務(wù)器存儲(chǔ)使用情況,判斷是否達(dá)到存儲(chǔ)上限。備份文件存儲(chǔ)時(shí),ftp服務(wù)器支持容量+時(shí)間兩個(gè)維度進(jìn)行控制,先到為準(zhǔn)。如果任一指標(biāo)達(dá)到閾值配置,則需刪除備份文件,釋放存儲(chǔ)空間。其中服務(wù)器存儲(chǔ)容量限制采用存儲(chǔ)容量控制配置表進(jìn)行控制,文件存放時(shí)間采用存儲(chǔ)時(shí)間控制配置表進(jìn)行控制,可靈活配置,滿足實(shí)際業(yè)務(wù)需求。存儲(chǔ)容量控制配置表如下表所示:存儲(chǔ)時(shí)間控制配置表如下表所示:字段名稱字段編碼字段類型字段描述備份文件類型FILE_TYPEvarchar(20)備份文件類型存放時(shí)間STORAGE_TIMEint備份文件存放周期,單位:天業(yè)務(wù)表與文件類型映射關(guān)系表如下表所示:字段名稱字段編碼字段類型字段描述表名TABLE_NAMEvarchar(50)業(yè)務(wù)表名備份文件類型FILE_TYPEvarchar(20)備份文件類型其中訪問(wèn)控制表配置示例如下:以滿足結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)40T的數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)2年的場(chǎng)景為例。存儲(chǔ)容量控制配置表為:結(jié)構(gòu)化數(shù)據(jù)默認(rèn)備份文件類型為text,非結(jié)構(gòu)化數(shù)據(jù)默認(rèn)備份分件類型為bin。bin、text類型為默認(rèn)配置,image-wf為自定義配置,可根據(jù)實(shí)際業(yè)務(wù)拆分,如違法圖片數(shù)據(jù)量比較大,可單獨(dú)劃分空間。容量為空表示不限制。文件存儲(chǔ)時(shí)優(yōu)先訪問(wèn)存儲(chǔ)容量未達(dá)到使用限制的目錄,如果均未達(dá)到上限,按照從小到大訪問(wèn)順序依次使用。存儲(chǔ)容量均達(dá)到使用上限之后,需刪除文件釋放空間,刪除策略為,刪除最早日期的數(shù)據(jù),一次刪除一天的數(shù)據(jù)。支持動(dòng)態(tài)擴(kuò)容,存儲(chǔ)容量控制配置表發(fā)生變更時(shí),系統(tǒng)可以及時(shí)感知。存儲(chǔ)時(shí)間控制配置表為:備份文件類型存放時(shí)間text2年如不配置,表示不以時(shí)間維度進(jìn)行控制。業(yè)務(wù)表與文件類型映射關(guān)系表如下所示:表名備份文件類型TRFF_PHOTO.VIO_JDCZPimage-wf針對(duì)實(shí)際業(yè)務(wù)拆分的容量控制,需要配置業(yè)務(wù)表與備份文件類型的對(duì)應(yīng)關(guān)系,如未拆分,不需要配置。如果達(dá)到存儲(chǔ)上限則需要?jiǎng)h除文件,釋放空間。支持容量+時(shí)間兩個(gè)維度進(jìn)行控制,先到為準(zhǔn)。如果任一指標(biāo)達(dá)到閾值配置,則需刪除備份文件,釋放存儲(chǔ)空間,實(shí)現(xiàn)數(shù)據(jù)滾動(dòng)存儲(chǔ)。刪除規(guī)則:一次刪除一天的數(shù)據(jù),優(yōu)先刪除最早日期的數(shù)據(jù)。上傳文件至服務(wù)器。將本地?cái)?shù)據(jù)文件上傳至服務(wù)器,上傳成功后更新備份文件結(jié)果記錄表,同時(shí)刪除本地文件。服務(wù)器存儲(chǔ)目錄規(guī)劃如下表所示:本發(fā)明備份數(shù)據(jù)基于文件,不依賴于特定的數(shù)據(jù)庫(kù)平臺(tái),既可以滿足傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),又可以滿足NOSQL數(shù)據(jù)庫(kù)的備份需求。本方案針對(duì)結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)分別輸出文本文件及二進(jìn)制文件類型,可滿足結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)備份需求。本數(shù)據(jù)備份方案,采用異步架構(gòu),業(yè)務(wù)接口將數(shù)據(jù)寫入消息隊(duì)列即可,無(wú)需等待處理結(jié)果,最大限度的減少了數(shù)據(jù)備份對(duì)業(yè)務(wù)受理效率產(chǎn)生的影響,有效的提高了文件備份效率,同時(shí)也提高了備份服務(wù)的可靠性。即使備份服務(wù)宕機(jī),既不影響正常業(yè)務(wù)受理又不會(huì)導(dǎo)致數(shù)據(jù)丟失。備份服務(wù)讀取消息先生成本地臨時(shí)文件,達(dá)到最大容量限制后輸出數(shù)據(jù)文件。然后將本地備份文件上傳至ftp文件備份服務(wù)器。ftp數(shù)據(jù)存儲(chǔ)規(guī)劃可根據(jù)不同的文件類型,設(shè)置時(shí)間、容量?jī)蓚€(gè)維度進(jìn)行控制,如果存儲(chǔ)時(shí)間或者容量任一維度達(dá)到限制,則進(jìn)行滾動(dòng)存儲(chǔ)。存儲(chǔ)容量支持熱擴(kuò)容,容量設(shè)置發(fā)生變更后,系統(tǒng)能夠自動(dòng)感知。當(dāng)數(shù)據(jù)庫(kù)崩潰時(shí),數(shù)據(jù)恢復(fù)策略支持先恢復(fù)近期一段時(shí)間的熱數(shù)據(jù),先保證系統(tǒng)能夠正常使用。然后再逐漸恢復(fù)歷史數(shù)據(jù),盡量縮短停機(jī)時(shí)間。通過(guò)上面具體實(shí)施方式,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。除說(shuō)明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。當(dāng)前第1頁(yè)1 2 3