国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)庫恢復方法及系統(tǒng)的制作方法

      文檔序號:8395961閱讀:798來源:國知局
      一種數(shù)據(jù)庫恢復方法及系統(tǒng)的制作方法
      【技術領域】
      [0001]本發(fā)明屬于計算機領域,尤其涉及一種數(shù)據(jù)庫恢復方法及系統(tǒng)。
      【背景技術】
      [0002]交易系統(tǒng),如股票交易系統(tǒng)、基金交易系統(tǒng)、銀行交易系統(tǒng)等的上線是一個風險極大的工作,各種不確定因素都有可能導致交易系統(tǒng)上線的失敗?,F(xiàn)在,在交易系統(tǒng)上線前,往往會通過系統(tǒng)仿真來完成大量的系統(tǒng)功能測試和性能壓力測試,以便用戶能在系統(tǒng)上線前對系統(tǒng)上線后可能存在的風險進行控制,大大減少了交易系統(tǒng)直接上線的失敗風險。由于交易系統(tǒng)仿真過程一般都會進行多次,在每一次交易系統(tǒng)仿真結束之后,又需要將修改后的數(shù)據(jù)庫恢復至原始狀態(tài)。
      [0003]另外,用戶在操作數(shù)據(jù)庫的過程中,也可能會對數(shù)據(jù)庫進行誤操作,比如數(shù)據(jù)的誤刪除、誤修改等,這些誤操作往往會給用戶帶來巨大的損失,尤其是在金融業(yè),當用戶發(fā)現(xiàn)前面對數(shù)據(jù)庫的操作包括了錯誤的操作時,需要能夠獲取發(fā)生誤操作時間所對應的數(shù)據(jù),才能夠對誤操作的數(shù)據(jù)進行判斷和處理,也就是說,需要將修改后的數(shù)據(jù)庫恢復到發(fā)生誤操作的時間點上。
      [0004]現(xiàn)有技術通過交易回滾的方式將修改后的數(shù)據(jù)庫恢復至原始狀態(tài)或發(fā)生誤操作的時間點之前的狀態(tài),存在數(shù)據(jù)庫恢復效率低,恢復時間長的問題。

      【發(fā)明內容】

      [0005]本發(fā)明實施例提供一種數(shù)據(jù)庫恢復方法,旨在解決現(xiàn)有數(shù)據(jù)庫恢復效率低、恢復時間長的問題。
      [0006]本發(fā)明實施例是這樣實現(xiàn)的,一種數(shù)據(jù)庫恢復方法,包括如下步驟:
      [0007]根據(jù)數(shù)據(jù)庫操作記錄集合,生成變化記錄集合;
      [0008]根據(jù)所述變化記錄集合,對數(shù)據(jù)庫進行逆操作;
      [0009]其中,所述數(shù)據(jù)庫操作記錄集合至少記錄針對生產數(shù)據(jù)庫的插入操作、刪除操作及修改操作的所有操作歷史信息;
      [0010]所述變化記錄集合記錄希望恢復到的目標時間點和結束時間點之間的所有發(fā)生變化的行首次出現(xiàn)的變化記錄,所述變化記錄至少包括所述數(shù)據(jù)庫某張表某一行的唯一標識、操作類型信息和在操作發(fā)生之前所有的值信息;
      [0011]所述唯一標識用于唯一標識所述變化記錄集合中的一個實例對象,至少包括數(shù)據(jù)庫中某一行所在表的表名和所述行記錄的鍵值;
      [0012]所述操作類型信息包括補充操作和清除操作,所述補充操作是所述數(shù)據(jù)庫操作記錄集合中刪除操作的逆操作,表示將已經(jīng)被刪除的數(shù)據(jù)在測試數(shù)據(jù)庫中還原,或者是所述數(shù)據(jù)庫操作記錄集合中更新操作的逆操作,表示將測試數(shù)據(jù)庫中的對應記錄還原到更新操作以前的狀態(tài);所述清除操作為所述數(shù)據(jù)庫操作記錄集合中插入操作的逆操作,表示刪除測試數(shù)據(jù)庫中已經(jīng)插入的數(shù)據(jù)。
      [0013]本發(fā)明實施例還提供一種數(shù)據(jù)庫恢復系統(tǒng),所述系統(tǒng)包括:
      [0014]變化記錄集合生成單元,用于根據(jù)數(shù)據(jù)庫操作記錄集合,生成變化記錄集合;以及
      [0015]逆操作單元,用于根據(jù)所述變化記錄集合,對數(shù)據(jù)庫進行逆操作;
      [0016]其中,所述數(shù)據(jù)庫操作記錄集合至少記錄針對生產數(shù)據(jù)庫的插入操作、刪除操作及修改操作的所有操作歷史信息;
      [0017]所述變化記錄集合記錄希望恢復到的目標時間點和結束時間點之間的所有發(fā)生變化的行首次出現(xiàn)的變化記錄,所述變化記錄至少包括所述數(shù)據(jù)庫某張表某一行的唯一標識、操作類型信息和在操作發(fā)生之前所有的值信息;
      [0018]所述唯一標識用于唯一標識所述變化記錄集合中的一個實例對象,至少包括數(shù)據(jù)庫中某一行所在表的表名和所述行記錄的鍵值;
      [0019]所述操作類型信息包括補充操作和清除操作,所述補充操作是所述數(shù)據(jù)庫操作記錄集合中刪除操作的逆操作,表示將已經(jīng)被刪除的數(shù)據(jù)在測試數(shù)據(jù)庫中還原,或者是所述數(shù)據(jù)庫操作記錄集合中更新操作的逆操作,表示將測試數(shù)據(jù)庫中的對應記錄還原到更新操作以前的狀態(tài);所述清除操作為所述數(shù)據(jù)庫操作記錄集合中插入操作的逆操作,表示刪除測試數(shù)據(jù)庫中已經(jīng)插入的數(shù)據(jù)。
      [0020]本發(fā)明實施例根據(jù)生成的僅記錄希望恢復到的目標時間點和結束時間點之間的所有發(fā)生變化的行首次出現(xiàn)的變化記錄的變化記錄集合,對數(shù)據(jù)庫進行逆操作,即可實現(xiàn)對數(shù)據(jù)庫的恢復,恢復數(shù)據(jù)庫所需要執(zhí)行的操作遠遠少于實際所發(fā)生的操作,與現(xiàn)有技術相比,避免了大量的重復操作,提高了數(shù)據(jù)庫恢復的效率,縮短了數(shù)據(jù)庫恢復的時間。
      【附圖說明】
      [0021]圖1是本發(fā)明實施例提供的數(shù)據(jù)庫恢復方法的運行環(huán)境示意圖;
      [0022]圖2是本發(fā)明實施例提供的數(shù)據(jù)庫恢復方法的實現(xiàn)流程示意圖;
      [0023]圖3是本發(fā)明實施例提供的一種生成變化記錄集合的流程示意圖;
      [0024]圖4是本發(fā)明實施例提供的另一種生成變化記錄集合的流程示意圖;
      [0025]圖5是本發(fā)明實施例提供的生成末次變化記錄集合的流程示意圖;
      [0026]圖6是本發(fā)明實施例提供的生成變化記錄集合的子流程示意圖;
      [0027]圖7是本發(fā)明實施例提供的又一種生成變化記錄集合的流程示意圖;
      [0028]圖8是本發(fā)明實施例提供的對數(shù)據(jù)庫進行逆操作的流程示意圖;
      [0029]圖9是本發(fā)明實施例提供數(shù)據(jù)庫恢復系統(tǒng)的結構示意圖。
      【具體實施方式】
      [0030]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0031]本發(fā)明實施例根據(jù)生成的僅記錄希望恢復到的目標時間點和結束時間點之間的所有發(fā)生變化的行首次出現(xiàn)的變化記錄的變化記錄集合,對數(shù)據(jù)庫進行逆操作,即可實現(xiàn)數(shù)據(jù)庫的恢復,恢復數(shù)據(jù)庫所需要執(zhí)行的操作遠遠小于實際所發(fā)生的操作,與現(xiàn)有技術相比,避免了大量的重復操作,提高了數(shù)據(jù)庫恢復的效率,縮短了數(shù)據(jù)庫恢復的時間。
      [0032]圖1示出了本發(fā)明實施例提供的數(shù)據(jù)庫恢復方法的運行環(huán)境,詳述如下:
      [0033]在本發(fā)明實施例中,生產環(huán)境是指交易系統(tǒng)上線實際運行的環(huán)境,此時客戶端通過向生產數(shù)據(jù)庫服務器發(fā)送操作指令,實現(xiàn)對生產數(shù)據(jù)庫的修改,完成交易;測試環(huán)境是指對生產數(shù)據(jù)庫進行仿真或者恢復的環(huán)境,通過對生產數(shù)據(jù)庫交易的捕獲和回放,仿真生產環(huán)境下數(shù)據(jù)的交易過程。
      [0034]生產數(shù)據(jù)庫是指客戶的交易系統(tǒng)已經(jīng)上線實際運行的數(shù)據(jù)庫,生產數(shù)據(jù)庫中存儲有事務日志。
      [0035]測試數(shù)據(jù)庫用于對生產數(shù)據(jù)庫進行測試或者恢復,需要進行一次初始化,初始化的數(shù)據(jù)來源于原始數(shù)據(jù)集合(InitDbSet),可以通過將原始數(shù)據(jù)集合(InitDbSet)中的數(shù)據(jù)導入到測試數(shù)據(jù)庫中而實現(xiàn)。
      [0036]在本發(fā)明實施例中,原始數(shù)據(jù)集合(InitDbSet)是生產數(shù)據(jù)庫某一時間點的數(shù)據(jù)的鏡像或者備份,用于測試數(shù)據(jù)庫的初始化和作為數(shù)據(jù)庫恢復系統(tǒng)原始數(shù)據(jù)集合(InitDbSet)的來源,可以通過對某一時間點的生產數(shù)據(jù)庫進行備份獲得。
      [0037]在本發(fā)明實施例中,測試數(shù)據(jù)庫有三種狀態(tài),分別為初始狀態(tài)、結束狀態(tài)和希望恢復到的目標狀態(tài)。其中,初始狀態(tài)為測試數(shù)據(jù)庫初始化之后的狀態(tài),對應的時間點為初始時間點;結束狀態(tài)為測試數(shù)據(jù)庫執(zhí)行完數(shù)據(jù)庫操作記錄集合(OperSet)之后而達到的狀態(tài),對應的時間點為結束時間點;希望恢復到的目標狀態(tài)為測試數(shù)據(jù)庫在初始狀態(tài)和結束狀態(tài)之間任何一個時間點的狀態(tài),對應的時間點為希望恢復的目標時間點,在某些情況下,希望恢復到的目標狀態(tài)也可以是初始狀態(tài)。
      [0038]數(shù)據(jù)庫恢復系統(tǒng)根據(jù)原始數(shù)據(jù)集合(InitDbSet)和數(shù)據(jù)庫操作記錄集合(OperSet),對測試數(shù)據(jù)庫進行操作,使測試數(shù)據(jù)庫恢復到希望恢復到的目標狀態(tài)。
      [0039]在本發(fā)明實施例中,數(shù)據(jù)庫操作記錄集合(OperSet)至少記錄針對生產數(shù)據(jù)庫的插入操作、刪除操作及修改操作的所有操作歷史信息,可以通過分析生產數(shù)據(jù)庫中的事務日志獲得,也可以通過分析生產數(shù)據(jù)庫服務器與客戶端之間交換的所有網(wǎng)絡報文獲得。
      [0040]作為本發(fā)明一個實施例,當事務日志為包括前鏡像的事務日志時,通過分析生產數(shù)據(jù)庫中的事務日志獲得的數(shù)據(jù)庫操作記錄集合(OperSet)包括數(shù)據(jù)庫所有操作的前鏡像、表名和操作類型標識,操作類型標識表明操作的類型,包括插入操作、更新操作、刪除操作等。
      [0041]作為本發(fā)明另一個實施例,當事務日志為不包括前鏡像但包括后鏡像的事務日志時,通過分析生產數(shù)據(jù)庫中的事務日志獲得的數(shù)據(jù)庫操作記錄集合(OperSet)包括數(shù)據(jù)庫所有操作的后鏡像、表名和操作類型標識。
      [0042]作為本發(fā)明又一個實施例,當通過分析生產數(shù)據(jù)庫服務器與客戶端之間交換的所有網(wǎng)絡報文獲得數(shù)據(jù)庫操作記錄集合(OperSet)時,當SQL操作語句為插入操作(Insert)語句時,SQL操作語句中包括表名、操作類型標識以及操作字段值等內容,例如,對于如下SQL 操作語句 “ insert into employee values (,1001,,,張偉’,’男,,,25,,,3000,),,,其中,“employee”為表名,操作類型信息為insert,操作字段值為’ 1001’,’張偉,,,25,,,3000,;當SQL操作語句為查詢操作(Select)語句、更新操作(Update)或刪除操作Delete語句時,SQL操作語句中包括表名、操作類型信息,以及取值條件或更新值等內容,例如,對于如下 SQL 操作語句 “update set salary = salary+200from employeewhere salary〈1000”,其中,取值條件為 “salary〈1000”,更新值為 salary = salary+200,對于如下 SQL 語句 “delete from employee where salary>1000”,其中,取值條件為“salary>1000”。
      [0043]在本發(fā)明實施例中,網(wǎng)絡報文可以是通過中間件或數(shù)據(jù)庫記錄的,也可以是通過網(wǎng)絡嗅探器記錄的。
      [0044]圖2示出了本發(fā)明實施例提供的數(shù)據(jù)庫恢復方法的實現(xiàn)流程,詳述如下:
      [0045]在步驟S201中,根據(jù)數(shù)據(jù)庫操作記錄集合(OperSet),生成變化記錄集合(ChangeSet);
      [0046]在本發(fā)明實施例中,變化記錄集合(ChangeSet)記錄測試數(shù)據(jù)庫希望恢復到的目標時間點和結束時間點之間的所有發(fā)生變化的行首次出現(xiàn)的變化記錄。
      [0047]在本發(fā)明實施例中,變化記錄記錄數(shù)據(jù)庫某張表某一行與操作相關的全部或者部分信息,至少包括該行的唯一標識、操作類型信息和在操作發(fā)生之前所有的值信息。
      [0048]在本發(fā)明實施例中,唯一標識用
      當前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1