本申請涉及計算機領域,尤其涉及一種數據庫還原的方法及設備。
背景技術:
隨著信息化不斷發(fā)展,國家、企業(yè)對數據安全及管理越來越重視,在各行各業(yè)中有價值的數據更多存在數據庫中,sqlserver數據庫作為主流數據庫之一,對其數據的保護、管理以及使用也成為一項重要課題。而對數據庫備份和還原工作,傳統做法是由數據庫管理員(dba)進行的,但存在以下缺陷:
空間成本的問題,dba通常會周期性地做全量備份、增量備份以及事務日志備份。其中,全量備份文件在實際生產環(huán)境中,占用空間特別大,大量數據庫操作的事務日志,其備份文件占用空間也特別大。對數據庫進行任意時間點還原,必要文件有一個全量備份文件、一組事務日志文件,也可能需要一組增量備份文件。而每次還原都要拷貝這些文件出來,無疑占據了很多存儲空間。若要對數據庫任意時間點還原,就要保留相應時間段內的所有全量備份文件、增量備份文件以及一組日志文件。因此,對數據庫任意時間點的還原,每次都要拷貝相應的全量備份文件、事務日志備份文件以及增量備份文件,若對同一個數據庫同時進行不同時間點的恢復,則要拷貝多份這些文件,無疑增加了存儲負擔。
時間成本的問題,對數據庫進行任意時間點還原,必要的步驟有:全量備份的恢復、事務日志的恢復以及選擇時間點還原,也有可能需要增量備份的恢復。其中,全量備份的恢復耗時很長,對數據庫大量操作的事務日志恢復也會占很長時間。對于每次的時間點還原,都要重復上述過程,而不能對前一次還原步驟進行復用。因此,對數據庫進行任意時間點還原,時間消耗主要是在全量備份以及事務日志的恢復上,而且每次還原都必須重復操作。
技術實現要素:
本申請的一個目的是提供一種數據庫還原的方法及設備,解決現有技術中對同一數據庫同時進行不同時間點的恢復導致存儲負擔增加以及全量備份的恢復耗時很長的問題。
根據本申請的一個方面,提供了一種在服務器端用于數據庫還原的方法,該方法包括:
通過傳輸至源數據庫客戶機的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機;
獲取所述僅拷貝模式備份數據庫的事務日志備份;
根據快照周期將所述事務日志備份及所述服務器內的全量備份傳輸至恢復數據庫客戶機及還原數據庫客戶機;
對所述恢復數據庫客戶機上恢復完成后的數據進行快照及快照克隆,并將進行快照克隆的數據傳輸至所述還原數據庫客戶機。
進一步地,通過傳輸至源數據庫客戶機的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機,包括:
通過文件共享協議向所述源數據庫客戶機掛載目錄;
根據所述掛載的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機。
進一步地,獲取所述僅拷貝模式備份數據庫的事務日志備份之前,包括:
根據預設的周期將監(jiān)控事務日志備份命令發(fā)送至所述源數據庫客戶機。
進一步地,根據快照周期將所述事務日志備份及所述服務器內的全量備份傳輸至恢復數據庫客戶機及還原數據庫客戶機,包括:
根據計算的快照周期在到達快照周期點時,通過復用所述文件共享協議將所述事務日志備份及所述服務器內的全量備份掛載至所述恢復數據庫客戶機及所述還原數據庫客戶機;
將數據庫恢復命令發(fā)送至所述恢復數據庫客戶機。
進一步地,對所述恢復數據庫客戶機上恢復完成后的數據進行快照及快照克隆,并將進行快照克隆的數據傳輸至還原數據庫客戶機,包括:
對所述恢復數據庫客戶機上周期性恢復完成后的數據進行快照;
對待還原時間段內的快照進行克隆,并將進行快照克隆的數據通過所述文件共享協議掛載至所述還原數據庫客戶機;
將數據還原命令發(fā)送至所述還原數據庫客戶機。
根據本申請另一個方面,還提供了一種在源數據庫客戶機端用于數據庫還原的方法,該方法包括:
獲取服務器發(fā)送的僅拷貝模式備份數據庫;
根據系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息;
根據所述事務日志備份的信息將所述僅拷貝模式備份數據庫的事務日志備份發(fā)送至所述服務器。
進一步地,所述事務日志備份的信息包括:
備份數據文件的名稱、大小、路徑及備份完成時間。
進一步地,根據系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息,包括:
接收所述服務器發(fā)送的監(jiān)控事務日志備份命令;
根據所述監(jiān)控事務日志備份命令,通過系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息。
根據本申請再一個方面,還提供了一種在恢復數據庫客戶機端用于數據庫還原的方法,該方法包括:
根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;
根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據進行恢復;
根據快照周期對所述已完成恢復的數據進行事務日志備份。
進一步地,根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據進行恢復,包括:
根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據在首次恢復時進行全量備份的恢復,在后續(xù)恢復時進行事務日志備份的恢復。
進一步地,所述僅拷貝模式備份數據庫對應的數據庫文件信息,包括:
對應的數據庫名、數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱。
根據本申請又一個方面,提供了一種在還原數據庫客戶機端用于數據庫還原的方法,其中,所述方法包括:
根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;
根據所述事務日志備份將備份數據文件、日志文件的名稱重新命名,根據所述對應的數據庫文件信息建立對應的替換數據庫;
刪除所述替換數據庫中的數據庫文件信息,并將重新命名后的備份數據文件、日志文件的名稱更改回原名稱,并將所述替換數據庫修改為非還原狀態(tài);
基于服務器傳輸的對恢復數據庫客戶機上恢復完成后的僅拷貝模式備份數據庫中數據進行快照克隆的數據對所述事務日志備份進行還原。
進一步地,所述僅拷貝模式備份數據庫對應的數據庫文件信息,包括:
對應的數據庫名、數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱。
進一步地,根據所述對應的數據庫文件信息建立對應的替換數據庫,包括:
創(chuàng)建與所述對應的數據庫文件信息中數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱相同的替換數據庫。
根據本申請又一個方面,還提供了一種數據庫還原的服務器設備,所述服務器設備包括:
發(fā)送裝置,用于通過傳輸至源數據庫客戶機的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機;
第一獲取裝置,用于獲取所述僅拷貝模式備份數據庫的事務日志備份;
傳輸裝置,用于根據快照周期將所述事務日志備份及所述服務器內的全量備份傳輸至恢復數據庫客戶機及還原數據庫客戶機;
快照克隆傳輸裝置,用于對所述恢復數據庫客戶機上恢復完成后的數據進行快照及快照克隆,并將進行快照克隆的數據傳輸至所述還原數據庫客戶機。
根據本申請另一個方面,還提供了一種數據庫還原的源數據庫客戶機設備,所述源數據庫客戶機設備包括:
第二獲取裝置,用于獲取服務器發(fā)送的僅拷貝模式備份數據庫;
監(jiān)控裝置,用于根據系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息;
發(fā)送備份裝置,用于根據所述事務日志備份的信息將所述僅拷貝模式備份數據庫的事務日志備份發(fā)送至所述服務器。
根據本申請再一個方面,還提供了一種數據庫還原的恢復數據庫客戶機設備,所述恢復數據庫客戶機設備包括:
第一識別裝置,用于根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;
恢復裝置,用于根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據進行恢復;
備份裝置,用于根據快照周期對所述已完成恢復的數據進行事務日志備份。
根據本申請又一個方面,還提供了一種數據庫還原的還原數據庫客戶機設備,所述還原數據庫客戶機設備包括:
第二識別裝置,用于根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;
建立裝置,用于根據所述事務日志備份將備份數據文件、日志文件的名稱重新命名,根據所述對應的數據庫文件信息建立對應的替換數據庫;
修改裝置,用于刪除所述替換數據庫中的數據庫文件信息,并將重新命名后的備份數據文件、日志文件的名稱更改回原名稱,并將所述替換數據庫修改為非還原狀態(tài);
還原裝置,用于基于服務器傳輸的對恢復數據庫客戶機上恢復完成后的僅拷貝模式備份數據庫中數據進行快照克隆的數據對所述事務日志備份進行還原。
與現有技術相比,本申請通過在服務器端根據傳輸至源數據庫客戶機的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機;獲取所述僅拷貝模式備份數據庫的事務日志備份;根據快照周期將所述事務日志備份及所述服務器內的全量備份傳輸至恢復數據庫客戶機及還原數據庫客戶機;對所述恢復數據庫客戶機上恢復完成后的數據進行快照及快照克隆,并將進行快照克隆的數據傳輸至所述還原數據庫客戶機。服務器與源數據庫客戶機、恢復數據庫客戶機、還原數據庫客戶機之間的通訊都是通過文件共享協議進行數據傳輸。因服務器只存儲一份全量備份數據、若干個事務日志數據,數據庫數據的虛擬化訪問使對數據庫的任意時間點進行還原,極大節(jié)約了存儲成本;服務器將周期性恢復的數據進行任意時間點還原,而省去了全量備份的恢復,以及增量備份的恢復,可同時支持數據庫的多個時間點還原,大大節(jié)約了時間成本;另外,也減少了對數據庫的額外影響,實現對dba數據庫備份工作的零干擾。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出本申請一實施例中的基于周期性恢復的數據庫還原的系統架構示意圖;
圖2示出根據本申請的一個方面提供的一種在服務器端用于數據庫還原的方法流程示意圖;
圖3示出根據本申請另一個方面提供的一種在源數據庫客戶機端用于數據庫還原的方法流程示意圖;
圖4示出根據本申請再一個方面提供的一種在恢復數據庫客戶機端用于數據庫還原的方法流程示意圖;
圖5示出根據本申請又一個方面提供的一種在還原數據庫客戶機端用于數據庫還原的方法流程示意圖;
圖6示出根據本申請的又一個方面提供的一種數據庫還原的服務器設備結構示意圖;
圖7示出根據本申請另一個方面提供的一種數據庫還原的源數據庫客戶機設備結構示意圖;
圖8示出根據本申請再一個方面提供的一種數據庫還原的恢復數據庫客戶機設備結構示意圖;
圖9示出根據本申請又一個方面提供的一種數據庫還原的還原數據庫客戶機設備結構示意圖。
附圖中相同或相似的附圖標記代表相同或相似的部件。
具體實施方式
下面結合附圖對本申請作進一步詳細描述。
在本申請一個典型的配置中,終端、服務網絡的設備和可信方均包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或閃存(flashram)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitorymedia),如調制的數據信號和載波。
圖1示出本申請一實施例中的基于周期性恢復的數據庫還原的系統架構示意圖,所述系統包括服務器模塊、源數據庫模塊、恢復數據庫模塊和還原數據庫模塊,其中,服務器模塊在服務器端,為整個系統的控制中心,源數據模塊在數據庫保護對象的客戶機端,即源數據庫客戶機,恢復數據庫模塊在恢復數據庫客戶機端,其作用是實現周期性恢復功能,為最終的數據庫還原做準備,還原數據庫模塊在還原數據庫客戶機端,其作用是實現數據庫任意時間點還原功能;服務器端通過僅拷貝全量備份和日志備份監(jiān)控同步源數據庫的數據;服務器端通過恢復數據庫使用全量備份和日志備份周期性的恢復數據庫。服務器端通過還原數據庫創(chuàng)建臨時數據庫提供給最終用戶使用。服務端與源數據庫、恢復數據庫、還原數據庫之間的通訊都是通過文件共享協議進行數據傳輸。需要說明的是,源數據客戶機、恢復數據庫客戶機和還原數據庫客戶機可以為同一臺機器,也可以為不同的若干機器。
以下實施例均以圖1中系統架構為基礎進行的,具體數據庫還原的方法通過以下方式實現:
圖2示出根據本申請的一個方面提供的一種在服務器端用于數據庫還原的方法流程示意圖,該方法包括:
步驟s11,通過傳輸至源數據庫客戶機的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機;在本申請一實施例中,服務器設備初始化配置好參數后,向源數據庫客戶機掛載一個目錄,將僅拷貝模式備份數據庫發(fā)送至源數據庫客戶機,在此,僅拷貝模式備份數據庫為用僅拷貝模式備份出來的數據庫的數據,從而為后續(xù)的周期性恢復的數據進行任意時間點還原提供數據基礎及實現條件。
步驟s12,獲取所述僅拷貝模式備份數據庫的事務日志備份;在本申請一實施例中,對事務日志備份進行遠程拉取操作,獲取源數據庫中的事務日志備份,從而服務器端只存一份全量備份數據、若干事務日志數據,節(jié)約存儲成本,避免了對數據庫任意時間點的還原時每次都要拷貝相應的全量備份文件、事務日志備份文件以及增量備份文件,對dba的數據庫備份工作達到零干擾。
步驟s13,根據快照周期將所述事務日志備份及所述服務器內的全量備份傳輸至恢復數據庫客戶機及還原數據庫客戶機;在本申請一實施例中,根據快照周期將事務日志及服務器內的全量備份掛載到恢復數據庫客戶機,之后向恢復數據庫模塊發(fā)送數據庫恢復命令,從而恢復數據庫模塊根據接收到的事務日志備份及全量備份進行恢復數據;另外,還需將事務日志備份及全量備份掛載到還原數據庫客戶機,以便還原數據庫客戶機根據接收到的事務日志備份及全量備份實現數據庫任意時間點還原功能。
步驟s14,對所述恢復數據庫客戶機上恢復完成后的數據進行快照及快照克隆,并將進行快照克隆的數據傳輸至所述還原數據庫客戶機。在本申請一實施例中,對周期性恢復完成后的數據做快照,其中,周期性完成后的數據為恢復數據庫客戶機上恢復完成的數據,之后,根據需求為對應的快照做克隆,從而為數據庫還原提供虛擬數據,將快照克隆的數據掛載到數據庫客戶機,向還原數據庫模塊發(fā)起數據庫還原命令,實現數據庫任意時間點還原功能。
在本申請一實施例中,步驟s11,通過文件共享協議向所述源數據庫客戶機掛載目錄;根據所述掛載的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機。在此,通過文件共享協議(smb)向源數據庫客戶機掛載一個目錄,通過所掛載的目錄將僅拷貝模式備份數據庫發(fā)送至源數據庫客戶機,其中,備份路徑為smb路徑。接著,在步驟s12之前,所述包括:步驟s11’,根據預設的周期將監(jiān)控事務日志備份命令發(fā)送至所述源數據庫客戶機。根據源數據庫的繁忙程度決定周期的長短,繁忙的數據庫的周期相對短一些,之后按照決定的周期向源數據庫模塊發(fā)起監(jiān)控事務日志備份命令。
優(yōu)選地,在步驟s13中,根據計算的快照周期在到達快照周期點時,通過復用所述文件共享協議將所述事務日志備份及所述服務器內的全量備份掛載至所述恢復數據庫客戶機及所述還原數據庫客戶機;將數據庫恢復命令發(fā)送至所述恢復數據庫客戶機。在此,快照周期可以由dba進行設置,計算快照周期是指查看當前時間是否是下一個周期時間,在到達下一個周期時間點時將備份數據文件、備份文件復用smb掛載到恢復數據庫客戶端,之后向恢復數據庫模塊發(fā)送數據庫恢復命令。另外,還需要將備份數據文件、備份文件掛載到還原數據庫客戶機,以進行數據庫的任意時間點的還原。
在本申請一實施例中,在步驟s14中,對所述恢復數據庫客戶機上周期性恢復完成后的數據進行快照;對待還原時間段內的快照進行克隆,并將進行快照克隆的數據通過所述文件共享協議掛載至所述還原數據庫客戶機;將數據還原命令發(fā)送至所述還原數據庫客戶機。在此,服務器中保存了恢復數據庫模塊中恢復的數據,利用存儲技術為周期性恢復完成后數據做快照,從而保持恢復數據庫模塊中恢復后數據的狀態(tài);同時利用存儲技術為所要還原相應時間段的快照做克隆,為數據庫還原提供虛擬數據。將快照克隆的數據通過smb掛載到還原數據庫客戶機,向還原數據庫模塊發(fā)起數據庫還原命令。通過上述服務器對備份數據進行周期性恢復并做快照,每次還原時用的是快照數據,實際為虛擬數據,可同時支持數據庫的多個時間點還原,大大節(jié)約了空間成本。
圖3示出根據本申請另一個方面提供的一種在源數據庫客戶機端用于數據庫還原的方法流程示意圖,該方法包括:
步驟s21,獲取服務器發(fā)送的僅拷貝模式備份數據庫;在本申請一實施例中,通過獲取服務器發(fā)送的僅拷貝模式備份數據庫實現僅拷貝模式下備份功能,在源數據庫客戶機端參數配置成功后的初始化工作選擇僅拷貝模式下全量備份,從而不影響dba后續(xù)的增量備份正常使用,對dba的數據庫備份工作達到零干擾。
步驟s22,根據系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息;在本申請一實施例中,源數據庫模塊實現事務日志備份監(jiān)控功能,通過系統表實時監(jiān)控事務日志備份的信息,其中,所述事務日志備份的信息包括:備份數據文件的名稱、大小、路徑及備份完成時間。系統表可以為msdb.dbo.backupmediafamily和msdb.dbo.backupset,通過sqlserver兩個上述系統表實時監(jiān)控事務日志備份的信息,從而實現源數據庫模塊的事務日志備份監(jiān)控功能。
步驟s23,根據所述事務日志備份的信息將所述僅拷貝模式備份數據庫的事務日志備份發(fā)送至所述服務器。接上述實施例,將已完成的事務日志備份上傳至服務器,供服務器后續(xù)的恢復使用,可以理解,已完成到的事務日志備份為僅拷貝模式備份數據庫的事務日志。
在本申請一實施例中,在步驟s22中,接收所述服務器發(fā)送的監(jiān)控事務日志備份命令;根據所述監(jiān)控事務日志備份命令,通過系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息。服務器會周期性向源數據庫模塊發(fā)起監(jiān)控事務日志備份命令,源數據庫模塊收到監(jiān)控事務日志備份命令后,通過sqlserver兩個系統表實時監(jiān)控事務日志備份的信息,包括備份文件、大小、路徑以及完成時間。根據監(jiān)控的事務日志備份的信息實現事務日志備份上傳功能。
圖4示出根據本申請再一個方面提供的一種在恢復數據庫客戶機端用于數據庫還原的方法流程示意圖,該方法包括:
步驟s31,根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;在本申請一實施例中,通過服務器掛載過來的全量備份和事務日志備份,判斷出對應的數據庫文件信息,根據判斷出的數據庫文件信息才能進行數據庫的恢復和還原,其中,對應的數據庫文件信息可以包括對應的數據庫名、數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱。
步驟s32,根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據進行恢復;在本申請一實施例中,根據判斷出的數據文件信息,對僅拷貝模式備份數據庫中的數據進行恢復,包括全量備份的恢復和事務日志備份的恢復,優(yōu)選地,在步驟s32中,根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據在首次恢復時進行全量備份的恢復,在后續(xù)恢復時進行事務日志備份的恢復。在此,全量備份的恢復耗時很長,對數據庫大量操作的事務日志恢復也會占很長時間,而本申請實施例中對數據庫進行恢復時首先需要第一次為全量備份的恢復,才能保證后續(xù)的恢復不會失敗,在第一次全量備份恢復后,后續(xù)的恢復都是基于全量備份和事務日志備份進行的恢復,不需要每次都獲取全量備份以及每次都進行全量備份的恢復,大大減少了時間的消耗。
步驟s33,根據快照周期對所述已完成恢復的數據進行事務日志備份。在本申請一實施例中,根據dba設置的快照周期,進行計算快照周期,當到下一周期的時間點時接受服務器的遠程控制命令,對事務日志做備份,當備份完成后,將恢復后的事務日志備份上傳至服務器,以便對恢復后的事務日志進行快照,進行后續(xù)的還原工作。
圖5示出根據本申請又一個方面提供的一種在還原數據庫客戶機端用于數據庫還原的方法流程示意圖,其中,所述方法包括:
步驟s41,根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;在本申請一實施例中,通過服務器掛載過來的全量備份和事務日志備份,判斷出僅拷貝模式備份數據庫對應的數據文件信息,根據判斷出的數據文件信息,對僅拷貝模式備份數據庫中的數據進行還原,其中,數據庫文件信息可以包括對應的數據庫名、數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱。
步驟s42,根據所述事務日志備份將備份數據文件、日志文件的名稱重新命名,根據所述對應的數據庫文件信息建立對應的替換數據庫;在本申請一實施例中,將數據文件、日志文件更名,后綴加_bak或其他格式,并創(chuàng)建對應的替換數據庫,以便進行替換還原,替換后的數據庫可以啟動。
優(yōu)選地,在步驟s42中,創(chuàng)建與所述對應的數據庫文件信息中數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱相同的替換數據庫。在此,將數據文件、日志文件更名后,創(chuàng)建與數據庫文件信息中數據庫邏輯名、日志邏輯名、數據庫物理名稱以及日志物理名稱相同的簡單的替換數據庫,并做只讀模式的備份,從而實現數據庫的替換還原而不是恢復還原,避免了恢復還原中需要進行一系列檢測的繁瑣步驟,只需要對數據庫進行簡單替換即可。
步驟s43,刪除所述替換數據庫中的數據庫文件信息,并將重新命名后的備份數據文件、日志文件的名稱更改回原名稱,并將所述替換數據庫修改為非還原狀態(tài);接上述實施例,使創(chuàng)建的替換數據庫下線,刪除掉與該數據庫相關的文件,將更名過的數據文件、日志文件名稱更改過來,若重新命名時加了后綴_bak,則此時需要去掉后綴的_bak,之后,將該數據庫上線,修改成非還原狀態(tài)。
步驟s44,基于服務器傳輸的對恢復數據庫客戶機上恢復完成后的僅拷貝模式備份數據庫中數據進行快照克隆的數據對所述事務日志備份進行還原。繼續(xù)接上述實施例,利用服務器掛載過來的快照克隆的數據對事務日志備份開始事務日志的任意時間點還原,數據庫每次還原是僅在前一個快照基礎上做的事務日志還原,避免了重復進行全量備份的恢復、事務日志的恢復、增量備份的恢復以及選擇時間點還原的步驟,極大節(jié)約了時間成本。最后,實現服務器通過還原數據庫創(chuàng)建臨時數據庫提供給最終用戶使用。
綜上所述,可以通過服務器模塊、源數據庫模塊、恢復數據庫模塊和還原數據庫模塊中各模塊的功能及各模塊之間的交互實現基于周期性恢復的數據庫還原技術,其中,服務器模塊為其他三個模塊發(fā)送遠程控制指令,利用存儲技術做快照及快照克隆,并為其他三個模塊提供smb掛載共享數據;源數據庫模塊實現僅拷貝模式全量備份,備份路徑為smb掛載路徑,并監(jiān)控事務日志備份,之后將監(jiān)控的事務日志備份上傳至服務器;恢復數據庫模塊識別備份數據庫對應的數據庫文件信息,第一次現全量恢復,而后實現數據庫的周期性事務日志恢復;還原數據庫模塊識別備份數據庫對應數據庫文件信息,建立對應簡單數據庫,用服務器掛載過來的數據庫文件替換簡單數據庫,使其處于非還原模式,繼續(xù)任意時間點恢復和還原。從而服務器只存儲一份全量備份數據、若干個事務日志數據,數據庫數據的虛擬化訪問使對數據庫的任意時間點進行還原,極大節(jié)約了存儲成本;服務器將周期性恢復的數據進行任意時間點還原,而省去了全量備份的恢復,以及增量備份的恢復,可同時支持數據庫的多個時間點還原,大大節(jié)約了時間成本;另外,也減少了對數據庫的額外影響,實現對dba數據庫備份工作的零干擾。
圖1示出本申請一實施例中的基于周期性恢復的數據庫還原的系統架構示意圖,所述系統包括服務器模塊、源數據庫模塊、恢復數據庫模塊和還原數據庫模塊,其中,服務器模塊在服務器端,為整個系統的控制中心,源數據模塊在數據庫保護對象的客戶機端,即源數據庫客戶機,恢復數據庫模塊在恢復數據庫客戶機端,其作用是實現周期性恢復功能,為最終的數據庫還原做準備,還原數據庫模塊在還原數據庫客戶機端,其作用是實現數據庫任意時間點還原功能;服務器端通過僅拷貝全量備份和日志備份監(jiān)控同步源數據庫的數據;服務器端通過恢復數據庫使用全量備份和日志備份周期性的恢復數據庫。服務器端通過還原數據庫創(chuàng)建臨時數據庫提供給最終用戶使用。服務端與源數據庫、恢復數據庫、還原數據庫之間的通訊都是通過文件共享協議進行數據傳輸。需要說明的是,源數據客戶機、恢復數據庫客戶機和還原數據庫客戶機可以為同一臺機器,也可以為不同的若干機器。
以下實施例均以圖1中系統架構為基礎進行的,具體通過以下設備及裝置實現數據庫還原:
圖6示出根據本申請的又一個方面提供的一種數據庫還原的服務器設備結構示意圖,該服務器設備1包括:發(fā)送裝置11、第一獲取裝置12、傳輸裝置13和快照克隆傳輸裝置14,
發(fā)送裝置11,用于通過傳輸至源數據庫客戶機的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機;在本申請一實施例中,服務器設備初始化配置好參數后,向源數據庫客戶機掛載一個目錄,將僅拷貝模式備份數據庫發(fā)送至源數據庫客戶機,在此,僅拷貝模式備份數據庫為用僅拷貝模式備份出來的數據庫的數據,從而為后續(xù)的周期性恢復的數據進行任意時間點還原提供數據基礎及實現條件。
第一獲取裝置12,用于獲取所述僅拷貝模式備份數據庫的事務日志備份;在本申請一實施例中,對事務日志備份進行遠程拉取操作,獲取源數據庫中的事務日志備份,從而服務器端只存一份全量備份數據、若干事務日志數據,節(jié)約存儲成本,避免了對數據庫任意時間點的還原時每次都要拷貝相應的全量備份文件、事務日志備份文件以及增量備份文件,對dba的數據庫備份工作達到零干擾。
傳輸裝置13,用于根據快照周期將所述事務日志備份及所述服務器內的全量備份傳輸至恢復數據庫客戶機及還原數據庫客戶機;在本申請一實施例中,根據快照周期將事務日志及服務器內的全量備份掛載到恢復數據庫客戶機,之后向恢復數據庫模塊發(fā)送數據庫恢復命令,從而恢復數據庫模塊根據接收到的事務日志備份及全量備份進行恢復數據;另外,還需將事務日志備份及全量備份掛載到還原數據庫客戶機,以便還原數據庫客戶機根據接收到的事務日志備份及全量備份實現數據庫任意時間點還原功能。
快照克隆傳輸裝置14,用于對所述恢復數據庫客戶機上恢復完成后的數據進行快照及快照克隆,并將進行快照克隆的數據傳輸至所述還原數據庫客戶機。在本申請一實施例中,對周期性恢復完成后的數據做快照,其中,周期性完成后的數據為恢復數據庫客戶機上恢復完成的數據,之后,根據需求為對應的快照做克隆,從而為數據庫還原提供虛擬數據,將快照克隆的數據掛載到數據庫客戶機,向還原數據庫模塊發(fā)起數據庫還原命令,實現數據庫任意時間點還原功能。
在本申請一實施例中,發(fā)送裝置11,用于通過文件共享協議向所述源數據庫客戶機掛載目錄;根據所述掛載的目錄將僅拷貝模式備份數據庫發(fā)送至所述源數據庫客戶機。在此,通過文件共享協議(smb)向源數據庫客戶機掛載一個目錄,通過所掛載的目錄將僅拷貝模式備份數據庫發(fā)送至源數據庫客戶機,其中,備份路徑為smb路徑。接著,所述服務器設備包括:發(fā)送命令裝置11’,用于根據預設的周期將監(jiān)控事務日志備份命令發(fā)送至所述源數據庫客戶機。根據源數據庫的繁忙程度決定周期的長短,繁忙的數據庫的周期相對短一些,之后按照決定的周期向源數據庫模塊發(fā)起監(jiān)控事務日志備份命令。
優(yōu)選地,傳輸裝置13,用于根據計算的快照周期在到達快照周期點時,通過復用所述文件共享協議將所述事務日志備份及所述服務器內的全量備份掛載至所述恢復數據庫客戶機及所述還原數據庫客戶機;將數據庫恢復命令發(fā)送至所述恢復數據庫客戶機。在此,快照周期可以由dba進行設置,計算快照周期是指查看當前時間是否是下一個周期時間,在到達下一個周期時間點時將備份數據文件、備份文件復用smb掛載到恢復數據庫客戶端,之后向恢復數據庫模塊發(fā)送數據庫恢復命令。另外,還需要將備份數據文件、備份文件掛載到還原數據庫客戶機,以進行數據庫的任意時間點的還原。
在本申請一實施例中,快照克隆傳輸裝置14,用于對所述恢復數據庫客戶機上周期性恢復完成后的數據進行快照;對待還原時間段內的快照進行克隆,并將進行快照克隆的數據通過所述文件共享協議掛載至所述還原數據庫客戶機;將數據還原命令發(fā)送至所述還原數據庫客戶機。在此,服務器中保存了恢復數據庫模塊中恢復的數據,利用存儲技術為周期性恢復完成后數據做快照,從而保持恢復數據庫模塊中恢復后數據的狀態(tài);同時利用存儲技術為所要還原相應時間段的快照做克隆,為數據庫還原提供虛擬數據。將快照克隆的數據通過smb掛載到還原數據庫客戶機,向還原數據庫模塊發(fā)起數據庫還原命令。通過上述服務器對備份數據進行周期性恢復并做快照,每次還原時用的是快照數據,實際為虛擬數據,可同時支持數據庫的多個時間點還原,大大節(jié)約了空間成本。
圖7示出根據本申請另一個方面提供的一種數據庫還原的源數據庫客戶機設備結構示意圖,該源數據庫客戶機設備2包括:第二獲取裝置21、監(jiān)控裝置22和發(fā)送備份裝置23,
第二獲取裝置21,用于獲取服務器發(fā)送的僅拷貝模式備份數據庫;在本申請一實施例中,通過獲取服務器發(fā)送的僅拷貝模式備份數據庫實現僅拷貝模式下備份功能,在源數據庫客戶機端參數配置成功后的初始化工作選擇僅拷貝模式下全量備份,從而不影響dba后續(xù)的增量備份正常使用,對dba的數據庫備份工作達到零干擾。
監(jiān)控裝置22,用于根據系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息;在本申請一實施例中,源數據庫模塊實現事務日志備份監(jiān)控功能,通過系統表實時監(jiān)控事務日志備份的信息,其中,所述事務日志備份的信息包括:備份數據文件的名稱、大小、路徑及備份完成時間。系統表可以為msdb.dbo.backupmediafamily和msdb.dbo.backupset,通過sqlserver兩個上述系統表實時監(jiān)控事務日志備份的信息,從而實現源數據庫模塊的事務日志備份監(jiān)控功能。
發(fā)送備份裝置23,用于根據所述事務日志備份的信息將所述僅拷貝模式備份數據庫的事務日志備份發(fā)送至所述服務器。接上述實施例,將已完成的事務日志備份上傳至服務器,供服務器后續(xù)的恢復使用,可以理解,已完成到的事務日志備份為僅拷貝模式備份數據庫的事務日志。
在本申請一實施例中,監(jiān)控裝置22,用于接收所述服務器發(fā)送的監(jiān)控事務日志備份命令;根據所述監(jiān)控事務日志備份命令,通過系統表實時監(jiān)控所述僅拷貝模式備份數據庫的事務日志備份的信息。服務器會周期性向源數據庫模塊發(fā)起監(jiān)控事務日志備份命令,源數據庫模塊收到監(jiān)控事務日志備份命令后,通過sqlserver兩個系統表實時監(jiān)控事務日志備份的信息,包括備份文件、大小、路徑以及完成時間。根據監(jiān)控的事務日志備份的信息實現事務日志備份上傳功能。
圖8示出根據本申請再一個方面提供的一種數據庫還原的恢復數據庫客戶機設備結構示意圖,該恢復數據庫客戶機設備3包括:第一識別裝置31、恢復裝置32和備份裝置33,
第一識別裝置31,用于根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;在本申請一實施例中,通過服務器掛載過來的全量備份和事務日志備份,判斷出對應的數據庫文件信息,根據判斷出的數據庫文件信息才能進行數據庫的恢復和還原,其中,對應的數據庫文件信息可以包括對應的數據庫名、數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱。
恢復裝置32,用于根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據進行恢復;在本申請一實施例中,根據判斷出的數據文件信息,對僅拷貝模式備份數據庫中的數據進行恢復,包括全量備份的恢復和事務日志備份的恢復,優(yōu)選地,恢復裝置32,用于根據所述數據文件信息對所述僅拷貝模式備份數據庫中的數據在首次恢復時進行全量備份的恢復,在后續(xù)恢復時進行事務日志備份的恢復。在此,全量備份的恢復耗時很長,對數據庫大量操作的事務日志恢復也會占很長時間,而本申請實施例中對數據庫進行恢復時首先需要第一次為全量備份的恢復,才能保證后續(xù)的恢復不會失敗,在第一次全量備份恢復后,后續(xù)的恢復都是基于全量備份和事務日志備份進行的恢復,不需要每次都獲取全量備份以及每次都進行全量備份的恢復,大大減少了時間的消耗。
備份裝置33,用于根據快照周期對所述已完成恢復的數據進行事務日志備份。在本申請一實施例中,根據dba設置的快照周期,進行計算快照周期,當到下一周期的時間點時接受服務器的遠程控制命令,對事務日志做備份,當備份完成后,將恢復后的事務日志備份上傳至服務器,以便對恢復后的事務日志進行快照,進行后續(xù)的還原工作。
圖9示出根據本申請又一個方面提供的一種數據庫還原的還原數據庫客戶機設備結構示意圖,其中,所述還原數據庫客戶機設備4包括:第二識別裝置41、建立裝置42、修改裝置43和還原裝置44,
第二識別裝置41,用于根據服務器傳輸的僅拷貝模式備份數據庫的事務日志備份及所述服務器內的全量備份,識別所述僅拷貝模式備份數據庫對應的數據庫文件信息;在本申請一實施例中,通過服務器掛載過來的全量備份和事務日志備份,判斷出僅拷貝模式備份數據庫對應的數據文件信息,根據判斷出的數據文件信息,對僅拷貝模式備份數據庫中的數據進行還原,其中,數據庫文件信息可以包括對應的數據庫名、數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱。
建立裝置42,用于根據所述事務日志備份將備份數據文件、日志文件的名稱重新命名,根據所述對應的數據庫文件信息建立對應的替換數據庫;在本申請一實施例中,將數據文件、日志文件更名,后綴加_bak或其他格式,并創(chuàng)建對應的替換數據庫,以便進行替換還原,替換后的數據庫可以啟動。
優(yōu)選地,建立裝置42,用于創(chuàng)建與所述對應的數據庫文件信息中數據庫邏輯名稱、日志邏輯名稱、數據庫物理名稱和日志物理名稱相同的替換數據庫。在此,將數據文件、日志文件更名后,創(chuàng)建與數據庫文件信息中數據庫邏輯名、日志邏輯名、數據庫物理名稱以及日志物理名稱相同的簡單的替換數據庫,并做只讀模式的備份,從而實現數據庫的替換還原而不是恢復還原,避免了恢復還原中需要進行一系列檢測的繁瑣步驟,只需要對數據庫進行簡單替換即可。
修改裝置43,用于刪除所述替換數據庫中的數據庫文件信息,并將重新命名后的備份數據文件、日志文件的名稱更改回原名稱,并將所述替換數據庫修改為非還原狀態(tài);接上述實施例,使創(chuàng)建的替換數據庫下線,刪除掉與該數據庫相關的文件,將更名過的數據文件、日志文件名稱更改過來,若重新命名時加了后綴_bak,則此時需要去掉后綴的_bak,之后,將該數據庫上線,修改成非還原狀態(tài)。
還原裝置44,用于基于服務器傳輸的對恢復數據庫客戶機上恢復完成后的僅拷貝模式備份數據庫中數據進行快照克隆的數據對所述事務日志備份進行還原。繼續(xù)接上述實施例,利用服務器掛載過來的快照克隆的數據對事務日志備份開始事務日志的任意時間點還原,數據庫每次還原是僅在前一個快照基礎上做的事務日志還原,避免了重復進行全量備份的恢復、事務日志的恢復、增量備份的恢復以及選擇時間點還原的步驟,極大節(jié)約了時間成本。最后,實現服務器通過還原數據庫創(chuàng)建臨時數據庫提供給最終用戶使用。
綜上所述,可以通過服務器模塊、源數據庫模塊、恢復數據庫模塊和還原數據庫模塊中各模塊的功能及各模塊之間的交互實現基于周期性恢復的數據庫還原技術,其中,服務器模塊為其他三個模塊發(fā)送遠程控制指令,利用存儲技術做快照及快照克隆,并為其他三個模塊提供smb掛載共享數據;源數據庫模塊實現僅拷貝模式全量備份,備份路徑為smb掛載路徑,并監(jiān)控事務日志備份,之后將監(jiān)控的事務日志備份上傳至服務器;恢復數據庫模塊識別備份數據庫對應的數據庫文件信息,第一次現全量恢復,而后實現數據庫的周期性事務日志恢復;還原數據庫模塊識別備份數據庫對應數據庫文件信息,建立對應簡單數據庫,用服務器掛載過來的數據庫文件替換簡單數據庫,使其處于非還原模式,繼續(xù)任意時間點恢復和還原。從而服務器只存儲一份全量備份數據、若干個事務日志數據,數據庫數據的虛擬化訪問使對數據庫的任意時間點進行還原,極大節(jié)約了存儲成本;服務器將周期性恢復的數據進行任意時間點還原,而省去了全量備份的恢復,以及增量備份的恢復,可同時支持數據庫的多個時間點還原,大大節(jié)約了時間成本;另外,也減少了對數據庫的額外影響,實現對dba數據庫備份工作的零干擾。
顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,可采用專用集成電路(asic)、通用目的計算機或任何其他類似硬件設備來實現。在一個實施例中,本申請的軟件程序可以通過處理器執(zhí)行以實現上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關的數據結構)可以被存儲到計算機可讀記錄介質中,例如,ram存儲器,磁或光驅動器或軟磁盤及類似設備。另外,本申請的一些步驟或功能可采用硬件來實現,例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
另外,本申請的一部分可被應用為計算機程序產品,例如計算機程序指令,當其被計算機執(zhí)行時,通過該計算機的操作,可以調用或提供根據本申請的方法和/或技術方案。而調用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質中,和/或通過廣播或其他信號承載媒體中的數據流而被傳輸,和/或被存儲在根據所述程序指令運行的計算機設備的工作存儲器中。在此,根據本申請的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當該計算機程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據本申請的多個實施例的方法和/或技術方案。
對于本領域技術人員而言,顯然本申請不限于上述示范性實施例的細節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現本申請。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本申請內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數不排除復數。裝置權利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。