[發(fā)明專利]日志備份方法及裝置有效
| 申請?zhí)枺?/td> | 201410018623.1 | 申請日: | 2014-01-15 |
| 公開(公告)號: | CN103761165B | 公開(公告)日: | 2017-10-24 |
| 發(fā)明(設(shè)計)人: | 黃智凱;楊挺 | 申請(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F17/30 |
| 代理公司: | 北京國昊天誠知識產(chǎn)權(quán)代理有限公司11315 | 代理人: | 許志勇 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 日志 備份 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,具體涉及一種日志備份方法及裝置。
背景技術(shù)
MySQL關(guān)系數(shù)據(jù)庫的二進制日志文件用來記錄所有用戶對數(shù)據(jù)庫的操作,因此,當(dāng)數(shù)據(jù)庫發(fā)生意外時,可以通過二進制日志文件查看到用戶在此文件記錄的時間段內(nèi)用戶所做的操作,再和數(shù)據(jù)庫備份配合使用,即可再現(xiàn)用戶操作,使數(shù)據(jù)庫恢復(fù)。
然而,現(xiàn)有技術(shù)中并沒有實現(xiàn)對二進制日志進行實時備份的方案,如果主服務(wù)器宕機,二進制日志很有可能丟失,也就無法完成數(shù)據(jù)恢復(fù)。并且,由于所有對數(shù)據(jù)庫操作的記錄均會被記錄到二進制文件,當(dāng)二進制文件長時間開啟之后,日志文件就會變得很大,占用磁盤空間,現(xiàn)有技術(shù)中一般通過設(shè)置日志保留時長,只保留一段時間的日志,例如,MySQL使用expire_logs_days參數(shù)設(shè)置日志的過期天數(shù),過了指定天數(shù)后,日志將被自動刪除。從而導(dǎo)致以前的日志丟失,不會保存完整的二進制日志;或者,定期從Master(主庫所在服務(wù)器)使用數(shù)據(jù)鏡像備份傳送命令(rsync)或者文件復(fù)制命令(scp)等類似命令拉取至中心節(jié)點保存。現(xiàn)有技術(shù)存在如下缺點:
(1)查找日志需要查找主庫所在服務(wù)器并登錄才能取得日志,沒有實現(xiàn)日志的中心化管理。
(2)沒有實現(xiàn)日志的實時備份,如果主庫所在服務(wù)器(Master)宕機,二進制日志很有可能丟失。
(3)二進制日志記錄了對數(shù)據(jù)庫執(zhí)行更改的所有操作以及執(zhí)行數(shù)據(jù)庫操作的時間和執(zhí)行時間等信息,因此,一旦需要恢復(fù)某一時間點(Point-in-time)的數(shù)據(jù),如果沒有完整的二進制日志,即使有數(shù)據(jù)庫的冷備份,也無法完成數(shù)據(jù)的恢復(fù)。由于冷備份發(fā)生在數(shù)據(jù)庫已經(jīng)正常關(guān)閉的情況下,當(dāng)正常關(guān)閉時會提供一個完整的數(shù)據(jù)庫,因而,當(dāng)數(shù)據(jù)庫處于打開狀態(tài)時執(zhí)行數(shù)據(jù)庫文件系統(tǒng)備份是無效的,并且,單獨使用冷備份只能提供到某一時間點上的恢復(fù),未備份到的時間點上的數(shù)據(jù)無法恢復(fù)。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服現(xiàn)有技術(shù)缺陷,解決上述問題或者至少部分地解決上述問題的備份日志的裝置和相應(yīng)的備份日志的方法。
依據(jù)本發(fā)明的一個方面,提供了一種日志備份方法,包括:啟動備份一個或多個實例對應(yīng)的日志文件的一個或多個備份進程;每隔預(yù)定周期掃描由所述一個或多個備份進程中的每一個備份進程切分過的日志文件,存儲每一個備份進程切分出的日志文件。
其中,所述一個或多個實例對應(yīng)的日志文件的元數(shù)據(jù)被記錄在元數(shù)據(jù)表中,所述元數(shù)據(jù)包括:日志文件的主庫信息和備份進程最后讀取的日志文件的標(biāo)識和時間戳;其中,所述主庫信息至少包括:主庫地址、端口。
進一步地,還包括:每隔預(yù)定時間檢測所述一個或多個備份進程的狀態(tài),并更新所述元數(shù)據(jù)表;其中,如果檢測到正常運行的備份進程,則更新所述元數(shù)據(jù)表中所述正常運行的備份進程最后讀取的日志文件的標(biāo)識和時間戳;或者,如果檢測到中斷的備份進程,則重新啟動所述中斷的備份進程。
進一步地,還包括:如果重新啟動所述中斷的備份進程成功,則更新所述元數(shù)據(jù)表中所述中斷的備份進程最后讀取的日志文件的標(biāo)識和時間戳;或者,如果重新啟動所述中斷的備份進程失敗,則檢測所述中斷的備份進程對應(yīng)的實例是否進行過主庫切換;其中,如果是,則更新所述元數(shù)據(jù)表中所述實例對應(yīng)的日志文件的元數(shù)據(jù),并再次重新啟動所述備份進程。
進一步地,還包括:檢測是否存在新增的實例,將新增的實例對應(yīng)的日志文件的元數(shù)據(jù)寫入所述元數(shù)據(jù)表,并啟動備份所述新增的實例對應(yīng)的日志文件的備份進程。
進一步地,還包括:獲取存儲的每一個備份進程切分出的日志文件的時間戳,并將所述切分出的日志文件的元數(shù)據(jù)寫入數(shù)據(jù)庫。
根據(jù)本發(fā)明的另一方面,提供了一種日志備份裝置,包括:備份模塊,用于啟動備份一個或多個的實例對應(yīng)的日志文件的一個或多個備份進程;存儲模塊,用于每隔預(yù)定周期掃描由所述一個或多個備份進程中的每一個備份進程切分過的日志文件,存儲每一個備份進程切分出的日志文件。
其中,所述一個或多個的實例對應(yīng)的日志文件的元數(shù)據(jù)被記錄在元數(shù)據(jù)表中,所述元數(shù)據(jù)包括:日志文件的主庫信息和備份進程最后讀取的日志文件的標(biāo)識和時間戳;其中,所述主庫信息至少包括:主庫地址、端口。
進一步地,還包括:更新模塊,用于每隔預(yù)定時間檢測所述一個或多個備份進程的狀態(tài),并更新所述元數(shù)據(jù)表;進一步用于:如果檢測到正常運行的備份進程,則更新所述元數(shù)據(jù)表中所述正常運行的備份進程最后讀取的日志文件的標(biāo)識和時間戳;或者,如果檢測到中斷的備份進程,則重新啟動所述中斷的備份進程。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410018623.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





