欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)庫聯(lián)機(jī)備份方法及系統(tǒng)的制作方法_3

文檔序號(hào):9910882閱讀:來源:國知局
還包括:
[0075]步驟25:解析備份主進(jìn)程讀取到的用戶干預(yù)。
[0076]例如,如附圖10所示,當(dāng)步驟22中預(yù)設(shè)第一等待時(shí)段內(nèi)讀取到備份子進(jìn)程發(fā)送的執(zhí)行操作完成信息,且備份主進(jìn)程沒有讀取到上述步驟24中的錯(cuò)誤報(bào)告,此時(shí)獲取到用戶干預(yù),則需要解析備份主進(jìn)程讀取到的用戶干預(yù)。
[0077]步驟26:若用戶干預(yù)取消或用戶干預(yù)會(huì)話中斷,則清空已備份數(shù)據(jù)并結(jié)束備份子進(jìn)程。
[0078]優(yōu)選的,步驟25之后,還包括步驟27:若用戶干預(yù)未取消且所述用戶干預(yù)會(huì)話未中斷,且備份主進(jìn)程讀取到備份子進(jìn)程返回的執(zhí)行信息,則備份主進(jìn)程向備份子進(jìn)程發(fā)送繼續(xù)命令。
[0079]如上例,如附圖10所示,當(dāng)步驟25中解析備份主進(jìn)程讀取到的用戶干預(yù)后,檢測(cè)用戶干預(yù)是否取消,如果是,則備份主進(jìn)程向備份子進(jìn)程發(fā)送備份中止命令CMD_ST0P,返回子進(jìn)程故障信息給用戶;清空備份子進(jìn)程已備份的數(shù)據(jù);銷毀備份子進(jìn)程。如果否,則檢測(cè)用戶干預(yù)會(huì)話是否中斷,如果中斷,則備份主進(jìn)程向備份子進(jìn)程發(fā)送備份中止命令CMD_STOP,返回子進(jìn)程故障信息給用戶;清空備份子進(jìn)程已備份的數(shù)據(jù);銷毀備份子進(jìn)程。如果不中斷,則測(cè)試讀取備份子進(jìn)程當(dāng)前的空閑狀態(tài),若返回空閑信息,則認(rèn)為上一備份階段任務(wù)已經(jīng)完成,返回的空閑信息作為返回的執(zhí)行操作完成信息,備份主進(jìn)程發(fā)送下一備份階段任務(wù)給備份子進(jìn)程,若返回忙碌信息,則認(rèn)為備份子進(jìn)程正執(zhí)行當(dāng)前的備份階段操作,忙碌信息作為執(zhí)行信息,備份主進(jìn)程向備份子進(jìn)程發(fā)送繼續(xù)命令。
[0080]根據(jù)上述實(shí)例,如附圖9所示,本發(fā)明的一種數(shù)據(jù)庫聯(lián)機(jī)備份方法常規(guī)備份階段操作(未接受到用戶干預(yù),且備份主程序正常運(yùn)行的情況)實(shí)現(xiàn)如下:
[0081 ] I)解析備份命令,從備份命令中獲取備份參數(shù);
[0082]2)創(chuàng)建備份子進(jìn)程,調(diào)用管道(PIPE)和備份子進(jìn)程創(chuàng)建實(shí)現(xiàn);
[0083]3)發(fā)送CMD_CHECK,通過管道向子進(jìn)程發(fā)送CMD_CHECK命令;同時(shí)調(diào)用backup_wait_and_check(),若返回成功,則繼續(xù)下一個(gè)階段命令,否則跳到CMD_C0MPLETE,結(jié)束備份過程;
[0084]5)發(fā)送CMD_INIT,通過管道向子進(jìn)程發(fā)送CMD_INIT命令;同時(shí)調(diào)用backup_wait_and_check(),若返回成功,則繼續(xù)下一個(gè)階段命令,否則跳到CMD_C0MPLETE,結(jié)束備份過程;
[0085]6)發(fā)送CMD_DBF,通過管道向子進(jìn)程發(fā)送CMD_DBF命令;同時(shí)調(diào)用backup_wait_and_check(),若返回成功,則繼續(xù)下一個(gè)階段命令,否則跳到CMD_C0MPLETE,結(jié)束備份過程;
[0086]7)發(fā)送CMD_L0G,通關(guān)管道向子進(jìn)程發(fā)送CMD_L0G命令;同時(shí)調(diào)用backup_wait_and_check(),若返回成功,則繼續(xù)下一個(gè)階段命令,否則跳到CMD_C0MPLETE,結(jié)束備份過程;
[0087]8)發(fā)送CMD_META,通過管道向子進(jìn)程發(fā)送CMD_META命令;同時(shí)調(diào)用backup_wait_and_check(),若返回成功,則繼續(xù)下一個(gè)階段命令,否則跳到CMD_C0MPLETE,結(jié)束備份過程;
[0088]9)發(fā)送CMD_C0MPLETE,通過管道向向子進(jìn)程發(fā)送CMD_C0MPLETE命令,并等待返回后,繼續(xù)下一個(gè)階段;
[0089]10)銷毀子進(jìn)程,備份操作結(jié)束。
[0090]綜上,本實(shí)施例在備份執(zhí)行過程中,用戶輸入中斷備份的命令或者退出用戶會(huì)話等用戶干擾,備份過程可停止且已經(jīng)生成的備份文件或中間數(shù)據(jù)等信息能被清除,避免因具體執(zhí)行過程異常,導(dǎo)致數(shù)據(jù)庫系統(tǒng)異常。
[0091]圖5示出根據(jù)本發(fā)明提供的一種數(shù)據(jù)庫聯(lián)機(jī)備份方法第三個(gè)實(shí)施例的方法流程圖。本實(shí)施例的方法與一種數(shù)據(jù)庫聯(lián)機(jī)備份方法第一個(gè)實(shí)施例和一種數(shù)據(jù)庫聯(lián)機(jī)備份方法第二個(gè)實(shí)施例的不同在于,在步驟21之后加入了備份子進(jìn)程的檢測(cè)判決步驟34,本實(shí)施例中,包括下述步驟:
[0092]步驟31:備份主進(jìn)程發(fā)送備份階段命令給備份子進(jìn)程,備份階段命令用于命令備份子進(jìn)程執(zhí)行數(shù)據(jù)庫聯(lián)機(jī)備份中匹配的備份階段操作。該步驟的執(zhí)行過程與一種數(shù)據(jù)庫聯(lián)機(jī)備份方法第二個(gè)實(shí)施例步驟21相同,在此不再贅述。
[0093]步驟32:周期性判斷備份主進(jìn)程是否讀取用戶干預(yù)和備份子進(jìn)程返回的執(zhí)行操作完成信息。該步驟的執(zhí)行過程與一種數(shù)據(jù)庫聯(lián)機(jī)備份方法第二個(gè)實(shí)施例步驟22相同,在此不再贅述。
[0094]步驟33:若是,確定備份主進(jìn)程讀取到備份子進(jìn)程發(fā)送的執(zhí)行操作完成信息時(shí)為在預(yù)設(shè)第一等待時(shí)段內(nèi),確定數(shù)據(jù)庫聯(lián)機(jī)備份沒有結(jié)束,則所述備份主進(jìn)程順序發(fā)送下一備份階段命令給備份子進(jìn)程;若否,確定備份主進(jìn)程在預(yù)設(shè)第一等待時(shí)段內(nèi)未讀取到備份子進(jìn)程發(fā)送的執(zhí)行操作完成信息,則清空已備份數(shù)據(jù)并結(jié)束所述備份子進(jìn)程。該步驟的執(zhí)行過程與一種數(shù)據(jù)庫聯(lián)機(jī)備份方法第二個(gè)實(shí)施例步驟23相同,在此不再贅述。
[0095]步驟34:確定備份子進(jìn)程在預(yù)設(shè)第一等待時(shí)段內(nèi)未讀取到備份階段命令,則清空已備份數(shù)據(jù)并銷毀備份子進(jìn)程。
[0096]其中,步驟34在步驟31之后,步驟34和步驟32、步驟33之間均沒有先后順序,步驟34可以通過備份子進(jìn)程或備份主進(jìn)程來實(shí)現(xiàn),并不做限定。若通過備份子進(jìn)程來實(shí)現(xiàn)則具體通過備份子進(jìn)程周期性測(cè)試讀取備份主進(jìn)程發(fā)送的備份階段命令,若備份子進(jìn)程在預(yù)設(shè)第一等待時(shí)段內(nèi)未讀取到備份階段命令,則認(rèn)定此時(shí)備份主進(jìn)程出現(xiàn)故障,清空已備份數(shù)據(jù)并銷毀備份子進(jìn)程,可以防止主進(jìn)程卡死或者真正故障時(shí),執(zhí)行無效的備份。
[0097]圖6示出根據(jù)本發(fā)明提供的一種數(shù)據(jù)庫聯(lián)機(jī)備份系統(tǒng)第一個(gè)實(shí)施例的結(jié)構(gòu)框圖。本實(shí)施例的一種數(shù)據(jù)庫聯(lián)機(jī)備份系統(tǒng)主要由數(shù)據(jù)庫管理系統(tǒng)來實(shí)現(xiàn),包括發(fā)送命令單元41、第一判斷單元42和等待單元43。
[0098]發(fā)送命令單元41,用于判斷備份主進(jìn)程是否讀取備份子進(jìn)程返回的執(zhí)行操作完成
?目息O
[0099]備份主進(jìn)程發(fā)送備份階段命令給備份子進(jìn)程,備份階段命令用于命令備份子進(jìn)程執(zhí)行數(shù)據(jù)庫聯(lián)機(jī)備份中匹配的備份階段操作。
[0100]具體的,備份主進(jìn)程發(fā)送備份階段命令給備份子進(jìn)程,子進(jìn)程執(zhí)行數(shù)據(jù)庫聯(lián)機(jī)備份中匹配的備份階段操作。其中,將數(shù)據(jù)庫聯(lián)機(jī)備份中各備份階段操作都分別對(duì)應(yīng)一個(gè)備份階段命令。可以將數(shù)據(jù)庫進(jìn)程作為備份主進(jìn)程負(fù)責(zé)各階段命令的發(fā)出;備份階段命令用于命令備份子進(jìn)程執(zhí)行數(shù)據(jù)庫聯(lián)機(jī)備份中匹配的備份階段操作。
[0101]其中,備份主進(jìn)程和備份子進(jìn)程之間通過進(jìn)程通信方式數(shù)據(jù)交互,可以為命名管道(PIPE)等。
[0102]例如,一般情況下,一個(gè)完整的數(shù)據(jù)庫備份過程一般包括以下幾個(gè)備份階段操作:
[0103]I)備份命令解析,解析備份命令中攜帶的參數(shù)信息,如備份目標(biāo)輸出路徑、備份是否加密壓縮、是否為增量備份等;
[0104]2)備份環(huán)境校驗(yàn),當(dāng)前環(huán)境是否滿足備份命令中要求,如備份目標(biāo)輸出是否重復(fù)、增量備份是否存在基備份等;
[0105]3)備份環(huán)境初始化,記錄備份相關(guān)信息,準(zhǔn)備開始備份;
[0106]4)備份數(shù)據(jù)文件,指定目標(biāo)備份的數(shù)據(jù)文件,從目標(biāo)數(shù)據(jù)文件中收集有效數(shù)據(jù),經(jīng)過加密或者壓縮處理后,寫入到目標(biāo)備份文件中;
[0107]5)備份日志文件,從指定的日志文件中收集有效日志數(shù)據(jù),經(jīng)過加密或者壓縮處理后,寫入到目標(biāo)備份文件中;
[0108]6)生成元信息文件,將備份的元數(shù)據(jù)信息,如備份目標(biāo)數(shù)據(jù)文件、是否備份了日志、是否執(zhí)行了加密壓縮等信息寫入到單獨(dú)的元信息文件;
[0109]7)備份結(jié)束,將結(jié)果返回給用戶。
[0110]備份主進(jìn)程與備份子進(jìn)程之間采用命名管道(NAMED_PIPE)實(shí)現(xiàn),可事先約定一個(gè)有意義的命名規(guī)則,設(shè)管道的名字為pipe_name。
[0111]由備份主進(jìn)程確定當(dāng)前所處備份階段,給出對(duì)應(yīng)備份階段命令。備份環(huán)境校驗(yàn)階段,備份階段命令為CMD_CHECK;備份環(huán)境初始化階段,備份階段命令為CMD_INIT;備份數(shù)據(jù)文件階段,備份階段命令為CMD_DBF;備份日志文件階段,備份階段命令為CMD_L0G;生成元信息文件階段,備份階段命令為CMD_META;備份結(jié)束,備份階段命令為CMD_C0MPLETE。
[0112]而備份子進(jìn)程的實(shí)現(xiàn)可以采用兩個(gè)線程:MAIN主線程和TASK子線程。MAIN主線程是備份子進(jìn)程創(chuàng)建時(shí)直接生成的線程;TASK子線程是在MAIN主線程中創(chuàng)建的用于處理具體任務(wù)的子線程。
[0113]可以在備份子進(jìn)程內(nèi)部定義一個(gè)任務(wù)系統(tǒng),包含一個(gè)空閑任務(wù)鏈表(free_lst)和一個(gè)等待處理任務(wù)鏈表(wait_lst)。初始時(shí),free_lst中包含兩個(gè)節(jié)點(diǎn),wait_lst為空鏈表。工作開始后,MAIN主線程從free_lst取出一個(gè)空閑任務(wù)節(jié)點(diǎn)(free_node),從PIPE中讀取備份階段命令,轉(zhuǎn)換為相應(yīng)的備份階段命令操作后,填充空閑任務(wù)節(jié)點(diǎn)(free_node),然后將其加入到wait_lst中;TASK子線程從wait_lst中取出待處理任務(wù)節(jié)點(diǎn),進(jìn)行處理,處理結(jié)束后,將節(jié)點(diǎn)重新加入到free_lst中。
[0114]各備份階段命令與備份階段操作的對(duì)應(yīng)如下:CMD_CHECK對(duì)應(yīng)TSK_CHECK;CMD_INIT 對(duì)應(yīng) TSK_INIT; CMD_DBF 對(duì)應(yīng) TSK_DBF ; CMD_L0G 對(duì)應(yīng) TSK_L0G ; CMD_
當(dāng)前第3頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
浪卡子县| 平陆县| 二连浩特市| 云梦县| 吕梁市| 龙井市| 澄迈县| 泾源县| 屯门区| 昆明市| 宜都市| 镇远县| 响水县| 璧山县| 高邑县| 慈溪市| 年辖:市辖区| 石屏县| 桐乡市| 千阳县| 手机| 札达县| 民和| 新郑市| 新兴县| 长顺县| 温州市| 新竹市| 虎林市| 皮山县| 长丰县| 商洛市| 买车| 正安县| 铜川市| 永川市| 迁安市| 青龙| 常德市| 河间市| 札达县|