本發(fā)明的實施方式涉及數(shù)據(jù)備份技術(shù)領(lǐng)域,更具體地,本發(fā)明的實施方式涉及一種數(shù)據(jù)備份方法及裝置。
背景技術(shù):
本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認(rèn)是現(xiàn)有技術(shù)。
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDBMS)。MySQL是目前最流行的關(guān)系型數(shù)據(jù)庫系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS應(yīng)用軟件之一。
隨著云計算在中國的普及,大多數(shù)云服務(wù)都是以開源數(shù)據(jù)庫MySQL搭建的,而且用戶在云服務(wù)器上搭建數(shù)據(jù)庫大多數(shù)也是采用MySQL數(shù)據(jù)庫。為了提高數(shù)據(jù)的穩(wěn)定性,MySQL數(shù)據(jù)庫中大多會對主數(shù)據(jù)庫設(shè)置從數(shù)據(jù)庫,其中,主數(shù)據(jù)庫用于對用戶提供服務(wù),從數(shù)據(jù)庫是主數(shù)據(jù)庫的備份,通過復(fù)制功能,與主數(shù)據(jù)庫的數(shù)據(jù)保持同步,從數(shù)據(jù)庫用以在主數(shù)據(jù)庫宕機以后,立即對用戶提供服務(wù),以實現(xiàn)服務(wù)的高可用。
現(xiàn)有MySQL數(shù)據(jù)庫中基于二進制日志文件在主數(shù)據(jù)庫和從數(shù)據(jù)庫之間的復(fù)制,實現(xiàn)主數(shù)據(jù)庫和從數(shù)據(jù)庫之間的數(shù)據(jù)同步,具體來說,以一主一從的情況為例,如圖1所示,主數(shù)據(jù)庫102數(shù)據(jù)更改時,將更改操作記錄在二進制日志Binary_log中,從數(shù)據(jù)庫104與主數(shù)據(jù)庫102進行數(shù)據(jù)同步時,請求獲取Binary_log,主數(shù)據(jù)庫102將Binary_log返回給從數(shù)據(jù)庫104,從數(shù)據(jù)庫104接收到主數(shù)據(jù)庫102返回的Binary_log后,將Binary_log中的日志記錄數(shù)據(jù)存儲為重做日志Relay_log,并從Relay_log中解析出在主數(shù)據(jù)庫102上執(zhí)行的更改操作,并執(zhí)行這些更改操作,也就是說,在主數(shù)據(jù)庫102和從數(shù)據(jù)庫104上執(zhí)行同樣的數(shù)據(jù)庫操作,從而實現(xiàn)主數(shù)據(jù)庫102與從數(shù)據(jù)庫104的數(shù)據(jù)一致性。在數(shù)據(jù)同步時,Binary log與Relay log中的數(shù)據(jù)幾乎一樣,但是,二者之間對于同一更改操作記錄的文件名稱和偏移量并不相同,例如,一個更改操作在Binary log中的位置可能是mysql-bin.000001:568,其中,冒號前的mysql-bin.000001部分為文件名稱,冒號后的568部分為文件的偏移量,而它在Relay log中的位置可能是relay-log.000002:124。
由于備份是一個耗時較長,代價較大的操作,為了避免備份對服務(wù)的影響,在關(guān)系型數(shù)據(jù)庫服務(wù)(Relational Database Service,RDS)系統(tǒng)中,在備份時都是在從數(shù)據(jù)庫上進行全量備份,也即全部復(fù)制從數(shù)據(jù)庫中的數(shù)據(jù)進行備份。全量備份的優(yōu)點是數(shù)據(jù)完整,恢復(fù)起來較快,缺點是數(shù)據(jù)量大,占用的存儲空間大。RDS系統(tǒng)除了提供全量備份的功能以外,還提供增量備份的功能。增量備份有兩種實現(xiàn)方式:(1)通過使用開源的備份工具,備份增量部分的物理數(shù)據(jù);(2)拷貝主數(shù)據(jù)庫上的Binary log,只備份增量部分的邏輯數(shù)據(jù)。
現(xiàn)在業(yè)界通用的增量備份方案是使用開源的備份工具(xtrabackup),通過備份增量的物理數(shù)據(jù)來實現(xiàn)增量備份,這種增量備份可以在從數(shù)據(jù)庫中進行增量備份,減少對業(yè)務(wù)的影響,但是,這種方案沒有考慮到基于時間點(Point-in-Time,PIT)恢復(fù)的需求。而在RDS系統(tǒng)實現(xiàn)中,通過拷貝主數(shù)據(jù)庫上的Binary log實現(xiàn)增量備份的方式,有一個顯著的優(yōu)點,能夠有效支持PIT恢復(fù),但是這種方式在從數(shù)據(jù)庫上進行全量備份之后,從主數(shù)據(jù)庫中上復(fù)制Binary log進行備份時,需要知道從Binary log的哪個位置開始復(fù)制,也就是說,在從數(shù)據(jù)庫上進行全量備份之后,需要知道當(dāng)前這個全量備份,與主數(shù)據(jù)庫的Binary log的對應(yīng)關(guān)系。換句話說,這種方式依賴于,備份工具在從數(shù)據(jù)庫上進行全量備份時,能夠確定出這個全量備份對應(yīng)于主數(shù)據(jù)庫的Binary log的位置,以便增量備份在主數(shù)據(jù)庫上復(fù)制Binary log時,能夠確定復(fù)制的起點。
從MySQL 5.6開始,業(yè)界逐漸開始使用基于全局事務(wù)標(biāo)識(Global Transaction Identifier,GTID)模式的故障恢復(fù),希望擺脫對Binary log位置的依賴。如圖2所示,在GTID模式下,就是對于每個事務(wù),都有一個唯一的事務(wù)標(biāo)識,例如:圖2中示出的在數(shù)據(jù)頭Header之后存儲事務(wù)202、事務(wù)204、事務(wù)206以及事務(wù)208的事務(wù)數(shù)據(jù)時,同時存儲每個事務(wù)的事務(wù)標(biāo)識和事務(wù)數(shù)據(jù),而此種模式下事務(wù)標(biāo)識也會隨著增量的邏輯數(shù)據(jù),一起寫到Binary log中。
在從數(shù)據(jù)庫與主數(shù)據(jù)庫進行數(shù)據(jù)同步時,主數(shù)據(jù)庫中有一個GTID集合,從數(shù)據(jù)庫中也有一個GTID集合,通過比對主數(shù)據(jù)庫的GTID集合和從數(shù)據(jù)庫的GTID集合,能夠知道從數(shù)據(jù)庫比主數(shù)據(jù)庫缺少哪一部分事務(wù)數(shù)據(jù)。在基于GTID模式的從數(shù)據(jù)庫上進行全量備份時,備份工具會給出當(dāng)前全量備份包含的GTID集合,但是,并不會給出當(dāng)前全量備份對應(yīng)于主數(shù)據(jù)庫中Binary log的位置。
在現(xiàn)有的基于GTID模式的數(shù)據(jù)庫中,由于備份工具未給出全量備份與主數(shù)據(jù)庫中Binary log的對應(yīng)關(guān)系,也無法快速地通過給出的GTID集合,在主數(shù)據(jù)庫的Binary log中找到該GTID集合對應(yīng)的位置。因此,現(xiàn)有技術(shù)中基于GTID模式的數(shù)據(jù)庫中,在每次備份時均需要復(fù)制從數(shù)據(jù)庫中的全部數(shù)據(jù)進行備份,備份的數(shù)據(jù)量大,占用的存儲空間大,而且不支持PIT恢復(fù)。
因此,目前亟需一種數(shù)據(jù)備份方法,以在基于GTID模式的數(shù)據(jù)庫中進行備份時,在減少備份數(shù)據(jù)量、減少備份數(shù)據(jù)占用的存儲空間以及減少備份時間的同時,有效支持PIT恢復(fù)。
技術(shù)實現(xiàn)要素:
出于現(xiàn)有技術(shù)在基于GTID模式的數(shù)據(jù)庫中,在每次備份時均需要復(fù)制從數(shù)據(jù)庫中的全部數(shù)據(jù)進行備份,備份的數(shù)據(jù)量大,占用的存儲空間大,而且不支持PIT恢復(fù)的問題。
為此,非常需要一種改進的數(shù)據(jù)備份方法,以在基于GTID模式的數(shù)據(jù)庫中進行備份時,在減少備份數(shù)據(jù)量、減少備份數(shù)據(jù)占用的存儲空間以及減少備份時間的同時,有效支持PIT恢復(fù)。
在本上下文中,本發(fā)明的實施方式期望提供一種數(shù)據(jù)備份方法及裝置。
在本發(fā)明實施方式的第一方面中,提供了一種數(shù)據(jù)備份方法,包括:
在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從所述從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置;
從所述主數(shù)據(jù)庫中獲取所述最終復(fù)制位置所在的目標(biāo)二進制日志文件以及所述目標(biāo)二進制日志文件之后的二進制日志文件。
在本發(fā)明實施方式的第二方面中,提供了一種數(shù)據(jù)備份裝置,包括:
復(fù)制位置獲取模塊,用于在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從所述從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置;
增量日志獲取模塊,用于從所述主數(shù)據(jù)庫中獲取所述最終復(fù)制位置所在的目標(biāo)二進制日志文件以及所述目標(biāo)二進制日志文件之后的二進制日志文件。
在本發(fā)明實施方式的第三方面中,提供了一種數(shù)據(jù)備份裝置,例如,可以包括存儲器和處理器,其中,處理器可以用于讀取存儲器中的程序,執(zhí)行下列過程:
在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從所述從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置;
從所述主數(shù)據(jù)庫中獲取所述最終復(fù)制位置所在的目標(biāo)二進制日志文件以及所述目標(biāo)二進制日志文件之后的二進制日志文件。
在本發(fā)明實施方式的第四方面中,提供了一種程序產(chǎn)品,其包括程序代碼,當(dāng)所述程序產(chǎn)品運行時,所述程序代碼用于執(zhí)行以下過程:
在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從所述從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置;
從所述主數(shù)據(jù)庫中獲取所述最終復(fù)制位置所在的目標(biāo)二進制日志文件以及所述目標(biāo)二進制日志文件之后的二進制日志文件。
根據(jù)本發(fā)明實施方式的數(shù)據(jù)備份方法及裝置,通過在基于GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置,從而能夠從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件進行備份,避免了每次備份時均需要復(fù)制從數(shù)據(jù)庫中的全部數(shù)據(jù)進行備份的問題,從而減少了備份數(shù)據(jù)量、備份數(shù)據(jù)占用的存儲空間以及備份時間,而且通過復(fù)制二進制日志進行備份的方法,能夠有效支持PIT恢復(fù)。
附圖說明
通過參考附圖閱讀下文的詳細描述,本發(fā)明示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:
圖1示意性地示出了現(xiàn)有技術(shù)中主數(shù)據(jù)庫與從數(shù)據(jù)庫數(shù)據(jù)同步的原理示意圖;
圖2示意性地示出了現(xiàn)有技術(shù)中GTID模式數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)示意圖;
圖3示意性地示出了根據(jù)本發(fā)明實施方式的應(yīng)用場景示意圖;
圖4示意性地示出了根據(jù)本發(fā)明一實施例的一種數(shù)據(jù)備份方法的流程示意圖;
圖5示意性地示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)備份方法進行數(shù)據(jù)恢復(fù)的流程示意圖;
圖6示意性地示出了根據(jù)本發(fā)明另一實施例的一種數(shù)據(jù)備份裝置的結(jié)構(gòu)示意圖;
圖7示意性地示出了根據(jù)本發(fā)明又一實施例的數(shù)據(jù)備份裝置的結(jié)構(gòu)示意圖;
圖8示意性地示出了根據(jù)本發(fā)明再一實施例的用于數(shù)據(jù)備份方法的程序產(chǎn)品示意圖。
在附圖中,相同或?qū)?yīng)的標(biāo)號表示相同或?qū)?yīng)的部分。
具體實施方式
下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
本領(lǐng)域技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
根據(jù)本發(fā)明的實施方式,提出了一種數(shù)據(jù)備份方法及裝置。
在本文中,需要理解的是,所涉及的術(shù)語中:
1.全量備份:每一次備份,都是一個完整的備份,該備份包含了數(shù)據(jù)庫中的所有數(shù)據(jù)。
2.增量備份:第一次備份是一個全量備份,之后只需要備份增量的那一部分?jǐn)?shù)據(jù),例如,在星期一進行了全量備份,在星期二備份的時候,只需要備份星期一到星期二這一天之間的增量數(shù)據(jù)。
3.PIT恢復(fù):將數(shù)據(jù)恢復(fù)到過去的某一時刻,例如,現(xiàn)在已經(jīng)是星期四,若發(fā)現(xiàn)星期二的12:00點到現(xiàn)在這段時間的數(shù)據(jù)出現(xiàn)了異常,則將數(shù)據(jù)恢復(fù)到星期二的12:00點。
此外,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
下面參考本發(fā)明的若干代表性實施方式,詳細闡釋本發(fā)明的原理和精神。
發(fā)明概述
本發(fā)明人發(fā)現(xiàn),由于現(xiàn)有技術(shù)在基于GTID模式的從數(shù)據(jù)庫上進行全量備份時,備份工具會給出當(dāng)前全量備份包含的GTID集合,但備份工具未給出全量備份與主數(shù)據(jù)庫中Binary log的對應(yīng)關(guān)系,也無法快速地通過給出的GTID集合,在主數(shù)據(jù)庫的Binary log中找到該GTID集合對應(yīng)的位置。因此,在基于GTID模式的從數(shù)據(jù)庫上進行備份時,每次均需要復(fù)制從數(shù)據(jù)庫中的全部數(shù)據(jù)進行備份,備份的數(shù)據(jù)量大,占用的存儲空間大,備份時間長,而且不支持PIT恢復(fù)。
為此,本發(fā)明提供了一種數(shù)據(jù)備份方法及裝置,數(shù)據(jù)備份方法可以包括:在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置;從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件。
在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方式。
應(yīng)用場景總覽
首先參考圖3,如圖3所示,為本發(fā)明實施例提供的數(shù)據(jù)備份方法的應(yīng)用場景示意圖,包括:主數(shù)據(jù)庫302,從數(shù)據(jù)庫304以及備份設(shè)備306,其中,主數(shù)據(jù)庫302和從數(shù)據(jù)庫304均是基于GTID模式的數(shù)據(jù)庫,主數(shù)據(jù)庫302用于對外提供服務(wù),從數(shù)據(jù)庫304是主數(shù)據(jù)庫302的備份,通過復(fù)制主數(shù)據(jù)庫302中的二進制日志文件與主數(shù)據(jù)庫302進行數(shù)據(jù)同步,備份數(shù)據(jù)庫304用于在主數(shù)據(jù)庫302宕機時,對外提供服務(wù),備份設(shè)備306用于對主數(shù)據(jù)庫中的數(shù)據(jù)進行備份。
在備份時,為了不影響主數(shù)據(jù)庫302對外提供服務(wù),備份設(shè)備306先復(fù)制從數(shù)據(jù)庫304中的數(shù)據(jù)進行備份,備份設(shè)備306在完成對從數(shù)據(jù)庫304中的數(shù)據(jù)復(fù)制時,從從數(shù)據(jù)庫304的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫304中的數(shù)據(jù)在主數(shù)據(jù)庫302的二進制日志文件中的最終復(fù)制位置,備份設(shè)備306在獲取最終復(fù)制位置之后,從主數(shù)據(jù)庫302中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件完成數(shù)據(jù)備份。
其中,由于從數(shù)據(jù)庫304通過復(fù)制主數(shù)據(jù)庫302中的二進制日志文件與主數(shù)據(jù)庫302進行數(shù)據(jù)同步,因此,該最終復(fù)制位置是指備份設(shè)備306從從數(shù)據(jù)庫304中復(fù)制的全部數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中對應(yīng)的位置。備份設(shè)備306包括但不限于硬盤、光盤、U盤等存儲設(shè)備。
示例性方法
下面結(jié)合圖3的應(yīng)用場景,參考圖4~圖5來描述根據(jù)本發(fā)明示例性實施方式的數(shù)據(jù)備份方法。需要注意的是,上述應(yīng)用場景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實施方式在此方面不受任何限制。相反,本發(fā)明的實施方式可以應(yīng)用于適用的任何場景。
圖4為本發(fā)明提供的一種數(shù)據(jù)備份方法的一實施例的流程示意圖,主要包括數(shù)據(jù)備份的流程,執(zhí)行主體可以為應(yīng)用場景總覽中的備份設(shè)備306或者與主數(shù)據(jù)庫302、從數(shù)據(jù)庫304以及備份設(shè)備306相連接的控制裝置。如圖4所示,本發(fā)明實施例提供的一種數(shù)據(jù)備份方法,包括如下步驟:
步驟401,在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置。
本步驟中,從數(shù)據(jù)庫的復(fù)制進度信息,是指從數(shù)據(jù)庫與主數(shù)據(jù)庫之間數(shù)據(jù)同步的進度信息,也即從數(shù)據(jù)庫復(fù)制主數(shù)據(jù)庫的二進制日志的進度。在基于GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,在對從數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制完成之后,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置。
最終復(fù)制位置是指備份時從從數(shù)據(jù)庫中復(fù)制的全部數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中對應(yīng)的位置。該最終復(fù)制位置,包括:二進制日志文件標(biāo)識以及在二進制日志文件中的偏移位置。其中,二進制日志文件標(biāo)識用于確定最終復(fù)制位置所在的二進制日志文件。
由于每個二進制日志文件中包括多條數(shù)據(jù)庫的更改操作記錄,最終復(fù)制位置可能并不是二進制日志文件的第一條更改操作記錄,因此,還需要根據(jù)在二進制日志文件中的偏移位置確定最終復(fù)制位置所對應(yīng)的更改操作記錄。作為較為具體的實施例,例如:最終復(fù)制位置包括的二進制文件標(biāo)識為012,在二進制日志文件中的偏移位置為10,則可以確定最終復(fù)制位置對應(yīng)的是主數(shù)據(jù)庫中標(biāo)識為012的二進制日志文件的第10條更改操作記錄。
具體實施時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置,可以通過修改開源備份工具的方式,使得備份工具在備份時提供該最終復(fù)制位置。當(dāng)然,還可以采用其它的方式獲取,此處并不用于具體限定,例如:解析主數(shù)據(jù)庫的二進制日志,通過字符串匹配的方式確定從數(shù)據(jù)庫中的GTID集合在二進制日志中對應(yīng)的最終復(fù)制位置。
步驟402,從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件。
本步驟中,在獲取最終復(fù)制位置之后,確定最終復(fù)制位置所在的目標(biāo)二進制日志文件,并從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件,完成數(shù)據(jù)備份。其中,最終復(fù)制位置所在的目標(biāo)二進制日志文件是指最終復(fù)制位置包括的二進制日志文件標(biāo)識所標(biāo)識出的二進制日志文件。
本發(fā)明實施例,通過在基于GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置,從而能夠從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件進行備份,避免了每次備份時均需要復(fù)制從數(shù)據(jù)庫中的全部數(shù)據(jù)進行備份的問題,從而減少了備份數(shù)據(jù)量、備份數(shù)據(jù)占用的存儲空間以及備份時間,而且通過復(fù)制二進制日志進行備份的方法,能夠有效支持PIT恢復(fù)。
優(yōu)選地,為了保證獲取到的最終復(fù)制位置的準(zhǔn)確性,本發(fā)明實施例在基于GTID模式的數(shù)據(jù)庫中從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取最終復(fù)制位置,包括:在基于GTID模式的數(shù)據(jù)庫中完成對從數(shù)據(jù)庫中數(shù)據(jù)的備份時,對從數(shù)據(jù)庫中的數(shù)據(jù)進行加鎖,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取最終復(fù)制位置。
具體的,由于從數(shù)據(jù)庫不斷地與主數(shù)據(jù)庫進行數(shù)據(jù)同步,從數(shù)據(jù)庫中的數(shù)據(jù)是不斷變化的,因此,為了防止在完成對從數(shù)據(jù)庫中的數(shù)據(jù)備份到從從數(shù)據(jù)庫的復(fù)制進度信息中獲取最終復(fù)制位置之間的時間內(nèi),從數(shù)據(jù)庫從主數(shù)據(jù)庫復(fù)制數(shù)據(jù)進行數(shù)據(jù)同步,從而導(dǎo)致獲取到的最終復(fù)制位置不準(zhǔn)確,在完成對從數(shù)據(jù)庫中數(shù)據(jù)的備份時,對從數(shù)據(jù)庫的數(shù)據(jù)進行加鎖,禁止從數(shù)據(jù)庫復(fù)制主數(shù)據(jù)庫中的數(shù)據(jù)進行數(shù)據(jù)同步,保證從數(shù)據(jù)庫中數(shù)據(jù)與備份時復(fù)制的數(shù)據(jù)完全一致,進而從從數(shù)據(jù)庫的復(fù)制進度信息中獲取最終復(fù)制位置。當(dāng)然,在獲取最終復(fù)制位置之后,對從數(shù)據(jù)庫進行解鎖,以使從數(shù)據(jù)庫與主數(shù)據(jù)庫保持?jǐn)?shù)據(jù)同步。
圖5為本發(fā)明提供的一種數(shù)據(jù)備份方法進行數(shù)據(jù)恢復(fù)的流程示意圖,在本發(fā)明提供的一種數(shù)據(jù)備份方法進行數(shù)據(jù)恢復(fù)的實施例中,主要包括在完成數(shù)據(jù)備份之后進行數(shù)據(jù)恢復(fù)的流程,執(zhí)行主體可以為應(yīng)用場景總覽中的備份設(shè)備306或者與主數(shù)據(jù)庫302、從數(shù)據(jù)庫304以及備份設(shè)備306相連接的控制裝置。如圖5所示,本發(fā)明實施例提供的一種數(shù)據(jù)備份方法進行數(shù)據(jù)恢復(fù)時,包括如下步驟:
步驟501,在進行數(shù)據(jù)恢復(fù)時,向待恢復(fù)數(shù)據(jù)庫發(fā)送備份時從從數(shù)據(jù)庫中復(fù)制的數(shù)據(jù)以及備份時從主數(shù)據(jù)庫中獲取的二進制日志文件。
本步驟中,在完成數(shù)據(jù)備份之后,進行數(shù)據(jù)恢復(fù)時,也即接收到數(shù)據(jù)恢復(fù)請求時,響應(yīng)于數(shù)據(jù)恢復(fù)請求向待恢復(fù)數(shù)據(jù)庫發(fā)送備份時從從數(shù)據(jù)庫中復(fù)制的數(shù)據(jù)以及備份時從主數(shù)據(jù)庫中獲取的二進制日志文件。
步驟502,控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作。
本步驟中,控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,以恢復(fù)備份的數(shù)據(jù)。較為優(yōu)選地,在利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作時,可以將二進制日志文件存儲為重做日志,然后從重做日志中解析出更改操作,然后對接收到的數(shù)據(jù)進行更改操作。
優(yōu)選地,若期望將數(shù)據(jù)恢復(fù)到某一時刻,則在進行數(shù)據(jù)恢復(fù)時,還需要獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻,其中,目標(biāo)時刻需要根據(jù)實際恢復(fù)需求預(yù)先配置,例如:目標(biāo)時刻為9月1日12:00。
具體實施時,在獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻之后,若期望將待恢復(fù)數(shù)據(jù)庫恢復(fù)至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同,有以下兩種實施方式,具體來說:
實施方式一、在獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻之后,在向待恢復(fù)數(shù)據(jù)庫發(fā)送備份時從從數(shù)據(jù)庫中復(fù)制的數(shù)據(jù)以及備份時從主數(shù)據(jù)庫中獲取的二進制日志文件時,根據(jù)所述二進制日志文件中的時間標(biāo)簽,向所述待恢復(fù)數(shù)據(jù)庫發(fā)送時間標(biāo)簽標(biāo)識時刻在所述目標(biāo)時刻之前的所有二進制日志文件,并控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作。
具體地,每個二進制日志文件中的時間標(biāo)簽中記錄了該二進制日志文件中第一條更改操作記錄的時刻以及最后一條更改操作記錄的時刻,而且二進制日志文件中每條更改操作記錄均有對應(yīng)的更改時刻,因此,在獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻之后,可以根據(jù)獲取到的目標(biāo)時刻以及二進制日志文件中的時間標(biāo)簽,從備份時從主數(shù)據(jù)庫中獲取的二進制日志文件中篩選出時間標(biāo)簽標(biāo)識時刻在所述目標(biāo)時刻之前的所有二進制日志文件,并將這部分二進制日志文件發(fā)送至待恢復(fù)數(shù)據(jù)庫,避免了將所有二進制日志文件發(fā)送至待恢復(fù)數(shù)據(jù)庫,減小了數(shù)據(jù)發(fā)送量,提高數(shù)據(jù)恢復(fù)速度。
值得說明的是,若目標(biāo)時刻在某一二進制日志文件的時間標(biāo)簽所標(biāo)識的起始時刻(第一條更改操作記錄的時刻)或終止時刻(最后一條更改操作記錄的時刻)之間,則根據(jù)該二進制日志文件中每條更改操作記錄對應(yīng)的更改時刻以及目標(biāo)時刻,將該二進制日志文件拆分為兩個子二進制日志文件,其中一個子二進制日志文件中包含更改操作記錄對應(yīng)的更改時刻在目標(biāo)時刻之前的更改操作記錄,另一個子二進制日志文件中包含更改操作記錄對應(yīng)的更改時刻在目標(biāo)時刻之后的更改操作記錄。
實施方式二、在獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻,向待恢復(fù)數(shù)據(jù)庫發(fā)送備份時從從數(shù)據(jù)庫中復(fù)制的數(shù)據(jù)以及備份時從主數(shù)據(jù)庫中獲取的二進制日志文件之后,在控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作時,控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到目標(biāo)時刻至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同。
具體的,控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到目標(biāo)時刻至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同,包括:根據(jù)二進制日志文件中的時間標(biāo)簽,控制待恢復(fù)數(shù)據(jù)庫利用時間標(biāo)簽標(biāo)識時刻在目標(biāo)時刻之前的所有二進制日志文件對接收到的數(shù)據(jù)進行更改操作;或者控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,在將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到目標(biāo)時刻之后的任一時刻之后,控制將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)回滾至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同。
具體實施時,由于每個二進制日志文件中的時間標(biāo)簽中記錄了該二進制日志文件中第一條更改操作記錄的時刻以及最后一條更改操作記錄的時刻,而且二進制日志文件中每條更改操作記錄均有對應(yīng)的更改時刻,因此,在控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作時,可以根據(jù)二進制日志文件中的時間標(biāo)簽以及二進制日志文件中每條更改操作記錄對應(yīng)的更改時刻,控制待恢復(fù)數(shù)據(jù)庫利用時間標(biāo)簽標(biāo)識時刻在目標(biāo)時刻之前的所有更改操作記錄對接收到的數(shù)據(jù)進行更改操作。
當(dāng)然,具體實施時,在將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到目標(biāo)時刻時,也可以先將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到目標(biāo)時刻之后的任一時刻,然后控制將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)回滾到目標(biāo)時刻,也即控制將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)回滾至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同。
示例性設(shè)備
在介紹了本發(fā)明示例性實施方式的方法之后,接下來,參考圖6描述本發(fā)明示例性實施方式的數(shù)據(jù)備份裝置。
圖6為本發(fā)明實施例提供的一種數(shù)據(jù)備份裝置的結(jié)構(gòu)示意圖之一,如圖6所示,可以包括如下模塊:
復(fù)制位置獲取模塊601,用于在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置;
日志獲取模塊602,用于從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件。
優(yōu)選地,復(fù)制位置獲取模塊601,包括:
鎖定單元6011,用于在基于GTID模式的數(shù)據(jù)庫中完成對從數(shù)據(jù)庫中數(shù)據(jù)的備份時,對從數(shù)據(jù)庫中的數(shù)據(jù)進行加鎖;
獲取單元6012,用于從從數(shù)據(jù)庫的復(fù)制進度信息中獲取最終復(fù)制位置。
在本實施例的一些實施方式中,可選的,該數(shù)據(jù)備份裝置還包括:
備份數(shù)據(jù)發(fā)送模塊603,用于在進行數(shù)據(jù)恢復(fù)時,向待恢復(fù)數(shù)據(jù)庫發(fā)送備份時從從數(shù)據(jù)庫中復(fù)制的數(shù)據(jù)以及備份時從主數(shù)據(jù)庫中獲取的二進制日志文件;
數(shù)據(jù)恢復(fù)模塊604,用于控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作。
在本實施例的一些實施方式中,可選的,該數(shù)據(jù)備份裝置還包括:
恢復(fù)時刻獲取模塊605,用于獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻。
在恢復(fù)時刻獲取模塊605獲取預(yù)先配置的待恢復(fù)數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到的目標(biāo)時刻之后,在將待恢復(fù)數(shù)據(jù)庫的數(shù)據(jù)恢復(fù)至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同時,可以由備份數(shù)據(jù)發(fā)送模塊603執(zhí)行,也可以由數(shù)據(jù)恢復(fù)模塊604執(zhí)行,具體來說:
在本實施例的一些實施方式中,備份數(shù)據(jù)發(fā)送模塊603向待恢復(fù)數(shù)據(jù)庫發(fā)送從主數(shù)據(jù)庫中獲取的二進制日志文件,具體用于:根據(jù)二進制日志文件中的時間標(biāo)簽,向待恢復(fù)數(shù)據(jù)庫發(fā)送時間標(biāo)簽標(biāo)識時刻在目標(biāo)時刻之前的所有二進制日志文件。
在本實施例的一些實施方式中,數(shù)據(jù)恢復(fù)模塊604,具體用于:控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同。
數(shù)據(jù)恢復(fù)模塊604控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同,具體用于:根據(jù)二進制日志文件中的時間標(biāo)簽,控制待恢復(fù)數(shù)據(jù)庫利用時間標(biāo)簽標(biāo)識時刻在目標(biāo)時刻之前的所有二進制日志文件對接收到的數(shù)據(jù)進行更改操作;或者控制待恢復(fù)數(shù)據(jù)庫利用接收到的二進制日志文件對接收到的數(shù)據(jù)進行更改操作,在將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到目標(biāo)時刻之后的任一時刻之后,控制將待恢復(fù)數(shù)據(jù)庫中的數(shù)據(jù)回滾至與主數(shù)據(jù)庫在目標(biāo)時刻的數(shù)據(jù)相同。
示例性設(shè)備
在介紹了本發(fā)明示例性實施方式的方法和裝置之后,接下來,介紹根據(jù)本發(fā)明的又一示例性實施方式的數(shù)據(jù)備份裝置。
所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。
在一些可能的實施方式中,根據(jù)本發(fā)明的數(shù)據(jù)備份裝置可以至少包括至少一個處理單元、以及至少一個存儲單元。其中,所述存儲單元存儲有程序代碼,當(dāng)所述程序代碼被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的數(shù)據(jù)備份方法中的步驟。例如,所述處理單元可以執(zhí)行如圖4中所示的步驟401,在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置,步驟402,從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件。
下面參照圖7來描述根據(jù)本發(fā)明的這種實施方式的數(shù)據(jù)備份裝置70。圖7顯示的數(shù)據(jù)備份裝置70僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。
如圖7所示,數(shù)據(jù)備份裝置70以通用計算設(shè)備的形式表現(xiàn)。數(shù)據(jù)備份裝置70的組件可以包括但不限于:上述至少一個處理單元701、上述至少一個存儲單元702、連接不同系統(tǒng)組件(包括處理單元701和存儲單元702)的總線703。
總線703表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器、外圍總線、處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。
存儲單元702可以包括易失性存儲器形式的可讀介質(zhì),例如隨機存取存儲器(RAM)7021和/或高速緩存存儲器7022,還可以進一步包括只讀存儲器(ROM)7023。
存儲單元702還可以包括具有一組(至少一個)程序模塊7024的程序/實用工具7025,這樣的程序模塊7024包括但不限于:操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。
數(shù)據(jù)備份裝置70也可以與一個或多個外部設(shè)備704(例如鍵盤、指向設(shè)備等)通信,還可與一個或者多個使得用戶能與數(shù)據(jù)備份裝置70交互的設(shè)備通信,和/或與使得該數(shù)據(jù)備份裝置70能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口705進行。并且,數(shù)據(jù)備份裝置70還可以通過網(wǎng)絡(luò)適配器706與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖7所示,網(wǎng)絡(luò)適配器706通過總線703與數(shù)據(jù)備份裝置70的其它模塊通信。應(yīng)當(dāng)理解,盡管圖中未示出,可以結(jié)合數(shù)據(jù)備份裝置70使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
示例性程序產(chǎn)品
在一些可能的實施方式中,本發(fā)明提供的用于數(shù)據(jù)備份方法的各個方面還可以實現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在計算機設(shè)備上運行時,所述程序代碼用于使所述計算機設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的數(shù)據(jù)備份方法中的步驟,例如,所述計算機設(shè)備可以執(zhí)行如圖4中所示的步驟401,在基于全局事務(wù)標(biāo)識GTID模式的數(shù)據(jù)庫中對從數(shù)據(jù)庫中的數(shù)據(jù)備份時,從從數(shù)據(jù)庫的復(fù)制進度信息中獲取復(fù)制的從數(shù)據(jù)庫中的數(shù)據(jù)在主數(shù)據(jù)庫的二進制日志文件中的最終復(fù)制位置,步驟402,從主數(shù)據(jù)庫中獲取最終復(fù)制位置所在的目標(biāo)二進制日志文件以及目標(biāo)二進制日志文件之后的二進制日志文件。
所述程序產(chǎn)品可以采用一個或多個可讀介質(zhì)的任意組合??勺x介質(zhì)可以是可讀信號介質(zhì)或者可讀存儲介質(zhì)。可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。
如圖8所示,描述了根據(jù)本發(fā)明的實施方式的用于數(shù)據(jù)備份的程序產(chǎn)品80,其可以采用便攜式緊湊盤只讀存儲器(CD-ROM)并包括程序代碼,并可以在終端設(shè)備上運行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
可讀信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合??勺x信號介質(zhì)還可以是可讀存儲介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、有線、光纜、RF等等,或者上述的任意合適的組合。
可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言—諸如Java、C++等,還包括常規(guī)的過程式程序設(shè)計語言—諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算設(shè)備上部分在遠程計算設(shè)備上執(zhí)行、或者完全在遠程計算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠程計算設(shè)備的情形中,遠程計算設(shè)備可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算設(shè)備,或者,可以連接到外部計算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
應(yīng)當(dāng)注意,盡管在上文詳細描述中提及了數(shù)據(jù)備份裝置的若干模塊或子模塊,但是這種劃分僅僅是示例性的并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多模塊的特征和功能可以在一個模塊中具體化。反之,上文描述的一個模塊的特征和功能可以進一步劃分為由多個模塊來具體化。
此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。
雖然已經(jīng)參考若干具體實施方式描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開的具體實施方式,對各方面的劃分也不意味著這些方面中的特征不能組合以進行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。