两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)方法及裝置的制造方法

文檔序號(hào):8445458閱讀:277來(lái)源:國(guó)知局
應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)方法及裝置。
【背景技術(shù)】
[0002]在信息時(shí)代中,數(shù)據(jù)對(duì)于人們的重要程度不言自明,隨之應(yīng)運(yùn)而生的是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)技術(shù)是管理信息系統(tǒng)、辦公自動(dòng)化系統(tǒng)、決策支持系統(tǒng)等各類(lèi)信息系統(tǒng)的核心部分,是進(jìn)行科學(xué)研宄和決策管理的重要技術(shù)手段。許多系統(tǒng)應(yīng)用都會(huì)使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)各種信息,系統(tǒng)中的應(yīng)用程序可以通過(guò)數(shù)據(jù)庫(kù)命令將信息寫(xiě)入數(shù)據(jù)庫(kù),也能夠通過(guò)數(shù)據(jù)庫(kù)命令由數(shù)據(jù)庫(kù)讀取所需的信息。因此,數(shù)據(jù)庫(kù)所存儲(chǔ)的數(shù)據(jù)具有極高的重要性,如果當(dāng)用戶在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí)發(fā)生了誤操作,其影響程度是非常大的。
[0003]MySQL數(shù)據(jù)庫(kù)是一種廣泛使用的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),但現(xiàn)有的MySQL數(shù)據(jù)庫(kù)并未提供能夠快速恢復(fù)數(shù)據(jù)的功能,當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行誤操作而需要恢復(fù)數(shù)據(jù)時(shí),通常會(huì)根據(jù)備份數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)工作。然而,備份數(shù)據(jù)的恢復(fù)過(guò)程需要消耗很長(zhǎng)的時(shí)間,因而會(huì)造成數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間無(wú)法正常的運(yùn)作,使得前端服務(wù)被長(zhǎng)時(shí)間中斷,大大降低前端用戶的使用體驗(yàn)。

【發(fā)明內(nèi)容】

[0004]為克服上述技術(shù)問(wèn)題或者至少部分地解決上述技術(shù)問(wèn)題,特提出以下技術(shù)方案:
[0005]本發(fā)明的實(shí)施例提出了一種應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)方法,包括:
[0006]接收數(shù)據(jù)恢復(fù)請(qǐng)求;
[0007]確定與數(shù)據(jù)恢復(fù)請(qǐng)求相應(yīng)的二進(jìn)制日志信息;
[0008]將二進(jìn)制日志信息解析并轉(zhuǎn)換為第一文本信息;
[0009]將第一文本信息逆向解析并轉(zhuǎn)換成第二文本信息;
[0010]基于第二文本信息執(zhí)行數(shù)據(jù)恢復(fù)。
[0011]本發(fā)明的實(shí)施例還提出了一種應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)裝置,包括:
[0012]恢復(fù)請(qǐng)求接收模塊,用于接收數(shù)據(jù)恢復(fù)請(qǐng)求;
[0013]日志確定模塊,用于確定與數(shù)據(jù)恢復(fù)請(qǐng)求相應(yīng)的二進(jìn)制日志信息;
[0014]第一轉(zhuǎn)換模塊,用于將二進(jìn)制日志信息解析并轉(zhuǎn)換為第一文本信息;
[0015]第二轉(zhuǎn)換模塊,用于將第一文本信息逆向解析并轉(zhuǎn)換成第二文本信息;
[0016]數(shù)據(jù)恢復(fù)模塊,用于基于第二文本信息執(zhí)行數(shù)據(jù)恢復(fù)。
[0017]本發(fā)明的實(shí)施例中,采用行存儲(chǔ)模式的二進(jìn)制日志信息可以記錄MySQL數(shù)據(jù)庫(kù)中數(shù)據(jù)變化前后的信息,從而能夠從二進(jìn)制日志信息中確定執(zhí)行數(shù)據(jù)變化的操作指令與操作指令的執(zhí)行順序,通過(guò)將操作指令及操作指令的執(zhí)行順序分別逆向轉(zhuǎn)換為逆向操作指令及逆向操作指令的逆向操作順序,并結(jié)合操作內(nèi)容,可將數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)至所需的狀態(tài);由于本發(fā)明的方案中僅對(duì)待恢復(fù)時(shí)間區(qū)間內(nèi)的二進(jìn)制日志信息進(jìn)行轉(zhuǎn)換處理,大大降低了數(shù)據(jù)處理量,從而有效地降低數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)時(shí)間,當(dāng)發(fā)生對(duì)數(shù)據(jù)的誤操作等情況時(shí),可以縮短前端服務(wù)被中斷的時(shí)長(zhǎng),大大降低對(duì)前端用戶的使用影響。
[0018]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【附圖說(shuō)明】
[0019]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0020]圖1為本發(fā)明中應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)的方法一個(gè)實(shí)施例的流程示意圖;
[0021]圖2為本發(fā)明中應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)的裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類(lèi)似的標(biāo)號(hào)表示相同或類(lèi)似的元件或具有相同或類(lèi)似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
[0023]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書(shū)中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無(wú)線連接或無(wú)線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
[0024]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
[0025]本發(fā)明的方法和裝置適用于所有類(lèi)似MySQL的數(shù)據(jù)庫(kù),其中,所述類(lèi)似MySQL的數(shù)據(jù)庫(kù)即為關(guān)系型數(shù)據(jù)庫(kù),且包括記錄有操作信息的日志信息。
[0026]下文以MySQL數(shù)據(jù)庫(kù)為例進(jìn)行本發(fā)明實(shí)施例的詳述。
[0027]MySQL數(shù)據(jù)庫(kù)的二進(jìn)制日志信息(binlog)用來(lái)記錄所有用戶對(duì)數(shù)據(jù)庫(kù)操作,即記錄用戶對(duì)數(shù)據(jù)庫(kù)操作的SQL語(yǔ)句。通過(guò)讀取該二進(jìn)制日志信息,能夠查看到用戶在該二進(jìn)制日志信息中記錄的一定時(shí)間段內(nèi)用戶所做的操作。
[0028]MySQL數(shù)據(jù)庫(kù)的二進(jìn)制日志信息通常有三種存儲(chǔ)模式,分別是行(row)模式、陳述(statement)模式和混和(mix)模式。其中,行存儲(chǔ)模式的二進(jìn)制日志信息會(huì)記錄MySQL數(shù)據(jù)庫(kù)中每一行數(shù)據(jù)被修改的信息。本發(fā)明的實(shí)施例中以行模式存儲(chǔ)二進(jìn)制日志信息。
[0029]圖1為本發(fā)明中應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)方法一個(gè)實(shí)施例的流程示意圖。
[0030]步驟SllO:接收數(shù)據(jù)恢復(fù)請(qǐng)求;步驟S120:確定與數(shù)據(jù)恢復(fù)請(qǐng)求相應(yīng)的二進(jìn)制日志信息;步驟S130:將二進(jìn)制日志信息解析并轉(zhuǎn)換為第一文本信息;步驟S140:將第一文本信息逆向解析并轉(zhuǎn)換成第二文本信息;步驟S150:基于第二文本信息執(zhí)行數(shù)據(jù)恢復(fù)。
[0031 ] 本發(fā)明的實(shí)施例中,采用行存儲(chǔ)模式的二進(jìn)制日志信息可以記錄MySQL數(shù)據(jù)庫(kù)中數(shù)據(jù)變化前后的信息,從而能夠從二進(jìn)制日志信息中確定執(zhí)行數(shù)據(jù)變化的操作指令與操作指令的執(zhí)行順序,通過(guò)將操作指令及操作指令的執(zhí)行順序分別逆向轉(zhuǎn)換為逆向操作指令及逆向操作指令的逆向操作順序,并結(jié)合操作內(nèi)容,可將數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)至所需的狀態(tài);由于本發(fā)明的方案中僅對(duì)待恢復(fù)時(shí)間區(qū)間內(nèi)的二進(jìn)制日志信息進(jìn)行轉(zhuǎn)換處理,大大降低了數(shù)據(jù)處理量,從而有效地降低數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)時(shí)間,當(dāng)發(fā)生對(duì)數(shù)據(jù)的誤操作等情況時(shí),可以縮短前端服務(wù)被中斷的時(shí)長(zhǎng),大大降低對(duì)前端用戶的使用影響。
[0032]步驟SllO:接收數(shù)據(jù)恢復(fù)請(qǐng)求。
[0033]步驟S120:確定與數(shù)據(jù)恢復(fù)請(qǐng)求相應(yīng)的二進(jìn)制日志信息。
[0034]具體地,數(shù)據(jù)恢復(fù)請(qǐng)求包括待恢復(fù)時(shí)間區(qū)間;根據(jù)待恢復(fù)時(shí)間區(qū)間,確定在待恢復(fù)時(shí)間區(qū)間內(nèi)數(shù)據(jù)庫(kù)的二進(jìn)制日志信息。
[0035]例如,誤操作發(fā)生在2015年4月17日10點(diǎn)至12點(diǎn)的時(shí)間區(qū)間內(nèi),可通過(guò)執(zhí)行數(shù)據(jù)庫(kù)命令:mysqlbinlog—start-date = "2015-04-1710:00:00"—stop-date =〃2015-04-1712:00:00〃,來(lái)定位在該時(shí)間區(qū)間內(nèi)的二進(jìn)制日志信息。
[0036]優(yōu)選地,基于在該時(shí)間區(qū)間內(nèi)的二進(jìn)制日志信息,可確定多個(gè)操作對(duì)應(yīng)二進(jìn)制日志信息的起始位置,如需要恢復(fù)從A位置“50”到B位置的“ 100”的數(shù)據(jù),可進(jìn)一步執(zhí)行命令:mysqlbinlog—start-positon = 〃50〃一stop-post1n = 〃100〃,來(lái)定位從 A 位置開(kāi)始到B位置結(jié)束的二進(jìn)制日志信息。
[0037]步驟S130:將二進(jìn)制日志信息解析并轉(zhuǎn)換為第一文本信息。
[0038]例如,通過(guò)MySQL數(shù)據(jù)庫(kù)自帶的數(shù)據(jù)庫(kù)命令mysqlbinlog,而將二進(jìn)制日志文件解析并轉(zhuǎn)換為相應(yīng)的第一文本信息。
[0039]其中,第一文本信息具體包括在待恢復(fù)時(shí)間區(qū)間內(nèi),用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行全部操作的操作指令、操作內(nèi)容及操作指令的執(zhí)行順序;操作指令包括插入、刪除、更新等。
[0040]步驟S140:將第一文本信息逆向解析并轉(zhuǎn)換成第二文本信息。
[0041]其中,第二文本信息具體包括與第一文本信息中操作指令相應(yīng)的逆向操作指令、操作內(nèi)容及該逆向操作指令的逆向執(zhí)行順序。
[0042]具體地,通過(guò)將第一文本信息中的操作指令逆向解析并轉(zhuǎn)換為逆向操作指令,并將第一文本信息中的操作指令的執(zhí)行順序逆向解析并轉(zhuǎn)換為逆向操作指令的逆向執(zhí)行順序,來(lái)將第一文本信息逆向解析并轉(zhuǎn)換成第二文本信息。
[0043]其中,將操作指令逆向解析并轉(zhuǎn)換為逆向操作指令的方式具體包括:
[0044]將在數(shù)據(jù)庫(kù)中插入數(shù)據(jù)的誤操作指令逆向轉(zhuǎn)換為刪除數(shù)據(jù)的逆向操作指令;例如,將insert指令轉(zhuǎn)換成delete指令;
[0045]將在數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)的誤操作指令逆向轉(zhuǎn)換為插入數(shù)據(jù)的逆向操作指令;例如,將delete指令轉(zhuǎn)換成insert指令;
[0046]將在數(shù)據(jù)庫(kù)中更新數(shù)據(jù)的誤操作指令逆向轉(zhuǎn)換為再次更新數(shù)據(jù)的逆向操作指令;例如,將update指令轉(zhuǎn)換成update指令。
[0047]其中,將第一文本信息中的操作指令的執(zhí)行順序逆向解析并轉(zhuǎn)換為逆向操作指令的逆向執(zhí)行順序,具體為:將第一文本信息中的操作指令的從前到后的執(zhí)行順序,逆向轉(zhuǎn)換為從后至前的逆向執(zhí)行順序。
[0048]例如,第一文本信息為:
[0049]mysql>delete into user (name) values (李四);
[0050]mysql>insert into user (name) values (王五);
[0051]mysql>insert into user (name) values (張三);
[0052]其中,第一文本信息中的操作指令及操作內(nèi)容為:刪除“李四”、插入“王五”、插入“張三”;操作順序?yàn)閯h除“李四”-2插入“王五”_3插入“張三”;
[0053]將第一文本信息逆向解析并轉(zhuǎn)換成第二文本信息為:
[0054]mysql>delete into user (name) values (張三);
[0055]mysql>delete into user (name) values (王五);
[0056]mysql>insert into user (name) values (李四);
[0057]其中,第二文本信息中的逆向操作指令及操作內(nèi)容為:刪除“張三”、刪除“王五”、插入“李四”;逆向操作順序?yàn)閯h除“張三”-2刪除“王五”-3插入“李四”。
[0058]步驟S150:基于第二文本信息執(zhí)行數(shù)據(jù)恢復(fù).
[0059]具體地,將第二文本信息導(dǎo)入數(shù)據(jù)庫(kù)相應(yīng)的實(shí)例中,以恢復(fù)數(shù)據(jù)。
[0060]圖2為本發(fā)明中應(yīng)用于數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù)裝置一個(gè)實(shí)施例的結(jié)構(gòu)示
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
汉寿县| 石狮市| 昆山市| 余庆县| 延长县| 五河县| 内黄县| 建德市| 花莲县| 东莞市| 邯郸县| 彝良县| 余干县| 邹城市| 郁南县| 新晃| 宜宾市| 竹北市| 湄潭县| 繁峙县| 酒泉市| 千阳县| 襄汾县| 宁德市| 宾阳县| 芜湖市| 城口县| 辉南县| 龙口市| 叙永县| 涟源市| 宜丰县| 苗栗县| 文昌市| 宿迁市| 西乡县| 涪陵区| 东山县| 东丽区| 易门县| 鹤庆县|