專(zhuān)利名稱(chēng):企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)庫(kù)備份系統(tǒng),尤其涉及一種企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)及其方法。
背景技術(shù):
數(shù)據(jù)丟失對(duì)大小企業(yè)來(lái)說(shuō)都是個(gè)惡夢(mèng),業(yè)務(wù)數(shù)據(jù)與企業(yè)日常業(yè)務(wù)運(yùn)作唇齒相依, 損失這些數(shù)據(jù),即使是暫時(shí)性,亦會(huì)威脅到企業(yè)辛苦賺來(lái)的競(jìng)爭(zhēng)優(yōu)勢(shì),更可能摧毀你公司的 聲譽(yù),或可能引致昂貴的訴訟和索償費(fèi)用。在震驚世界的美國(guó)“9 · 11”恐怖事件發(fā)生后,許多人將目光投向金融界巨頭摩根 士丹利公司。這家金融機(jī)構(gòu)在世貿(mào)大廈租有25層,慘劇發(fā)生時(shí)有2000多名員工正在樓內(nèi) 辦公,公司受到重創(chuàng)??墒钦?dāng)大家扼腕痛惜時(shí),該公司宣布,全球營(yíng)業(yè)部第二天可以照常 工作。其主要原因是它在新澤西州建立了災(zāi)備中心,并保留著數(shù)據(jù)備份,從而保障公司全球 業(yè)務(wù)的不間斷運(yùn)行。災(zāi)備的重要性和巨大價(jià)值由此可見(jiàn)一斑。所謂數(shù)據(jù)災(zāi)備,就是指建立一個(gè)異地的數(shù)據(jù)系統(tǒng),該系統(tǒng)是本地關(guān)鍵應(yīng)用數(shù)據(jù)的 一個(gè)可用復(fù)制。在本地?cái)?shù)據(jù)及整個(gè)應(yīng)用系統(tǒng)出現(xiàn)災(zāi)難時(shí),系統(tǒng)至少在本地或者異地保存有 一份可用的關(guān)鍵業(yè)務(wù)的數(shù)據(jù)。該數(shù)據(jù)可以是與本地生產(chǎn)數(shù)據(jù)的完全實(shí)時(shí)復(fù)制,也可以比本 地?cái)?shù)據(jù)略微落后,但一定是可用的。采用的主要技術(shù)是數(shù)據(jù)復(fù)制,數(shù)據(jù)傳輸以及數(shù)據(jù)存儲(chǔ)等 技術(shù)。傳統(tǒng)的災(zāi)備體系(數(shù)據(jù)備份系統(tǒng)),其體系龐大,結(jié)構(gòu)復(fù)雜,且對(duì)設(shè)備的要求較為 嚴(yán)苛,因而費(fèi)用昂貴。同時(shí),這些傳統(tǒng)的災(zāi)備體系均根據(jù)各自的數(shù)據(jù)庫(kù)設(shè)置方式設(shè)有專(zhuān)門(mén)的 控制系統(tǒng),且難以與其他現(xiàn)有系統(tǒng)兼容。隨著越來(lái)越多的傳統(tǒng)企業(yè)開(kāi)始考慮使用開(kāi)源產(chǎn)品降低成本,數(shù)據(jù)庫(kù)方面尤其以 MySQL突出,而利用MySQL在企業(yè)級(jí)的數(shù)據(jù)庫(kù)災(zāi)備體系中的應(yīng)用還未能得到充分開(kāi)發(fā)。提到備份,眾所周知的利用MySQL所提供的一些工具能夠完成簡(jiǎn)單的備份,但在 涉及到企業(yè)級(jí)的數(shù)據(jù)庫(kù)的災(zāi)備體系的建設(shè)的問(wèn)題,卻沒(méi)有任何現(xiàn)有的較為成功的實(shí)踐先 例。因此,對(duì)于利用MySQL的基礎(chǔ),建設(shè)企業(yè)級(jí)數(shù)據(jù)庫(kù)備份體系,存在了如下的需求■當(dāng)你只有幾臺(tái)數(shù)據(jù)庫(kù)的時(shí)候你只需要一個(gè)備份命令或者一個(gè)備份工具就可以 完成,■當(dāng)你有百臺(tái)左右的數(shù)據(jù)庫(kù)時(shí)候,你會(huì)不得不寫(xiě)腳本來(lái)自動(dòng)幫你完成,■當(dāng)你有更多數(shù)據(jù)庫(kù),你會(huì)發(fā)現(xiàn)每天維護(hù)這個(gè)備份列表,開(kāi)啟和關(guān)閉,調(diào)整某些備 份將會(huì)成為一個(gè)瓶頸,此時(shí)你需要一個(gè)web系統(tǒng)能更簡(jiǎn)易的系統(tǒng)完成這些日常維護(hù)工作,■當(dāng)業(yè)務(wù)體系越來(lái)越復(fù)雜的時(shí)候,不同存儲(chǔ)引擎,不同的邏輯,不同的備份保留間 隔等各式各樣的需求都會(huì)使得我們不斷在備份系統(tǒng)上擴(kuò)充功能■當(dāng)同時(shí)維護(hù)MySQL和Oracle的備份工作時(shí),此時(shí)你需要一個(gè)平臺(tái)能容納不同的 數(shù)據(jù)庫(kù)備份需求,■當(dāng)這些底層的備份細(xì)節(jié)都實(shí)現(xiàn)后,如何保障本地,本市的災(zāi)難發(fā)生后依然有備
4份的數(shù)據(jù)可恢復(fù),這就涉及到如何把本地備份的數(shù)據(jù)保留倒同城異地,異城,甚至是銀行保
存,一整套策略■最后解決災(zāi)難的最終依據(jù)是災(zāi)難后的數(shù)據(jù)恢復(fù),所以如何制定數(shù)據(jù)恢復(fù),災(zāi)難 演習(xí)的策略,并記錄經(jīng)驗(yàn),上述這些都是普通數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)人員在實(shí)踐過(guò)程中所能夠普遍遇到的問(wèn)題, 而將這些普遍的需求進(jìn)行整合,并有針對(duì)性地加以解決,一步步升華,這樣從簡(jiǎn)單的命令行 備份到最終得到一套完整的災(zāi)備體系。以上這些從最底層的備份實(shí)現(xiàn)細(xì)節(jié),到滿(mǎn)足各種備 份需求的功能,到容災(zāi)恢復(fù)策略,一起就構(gòu)成了災(zāi)備體系。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種安全、高效的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)和方法,其主要 利用現(xiàn)有的MySQL數(shù)據(jù)庫(kù)管理系統(tǒng),并且兼容于Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)中。本發(fā)明所提供的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)所采取的技術(shù)方案如下提供了一種企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其中,包括同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù) 庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13),離線(xiàn)磁帶機(jī)(20),財(cái)務(wù)/銀行保管系統(tǒng)(30),本地電信機(jī)房
(41),本地網(wǎng)通機(jī)房(42);所述的本地電信機(jī)房(41)以及本地網(wǎng)通機(jī)房(42)與同城數(shù)據(jù)庫(kù)(11)連接,備份 本地?cái)?shù)據(jù);所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13)依次連接, 互相備份異地?cái)?shù)據(jù);所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13)均與離線(xiàn)磁 帶機(jī)(20)連接,定期備份離線(xiàn)數(shù)據(jù)。上述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其中,所述離線(xiàn)數(shù)據(jù)存儲(chǔ)于離線(xiàn)磁帶機(jī)(20)的離 線(xiàn)磁帶中,所述離線(xiàn)磁帶存放于所述財(cái)務(wù)/銀行保管系統(tǒng)中。上述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其中,所述的本地電信機(jī)房(41)與本地網(wǎng)通機(jī)房
(42)均與同城數(shù)據(jù)庫(kù)(11)分別設(shè)立在不同地點(diǎn)。上述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其中,所述的同城數(shù)據(jù)庫(kù)(11)通過(guò)網(wǎng)絡(luò)將備份數(shù) 據(jù)傳輸至第一異城數(shù)據(jù)庫(kù)(12);第一異城數(shù)據(jù)庫(kù)(12)通過(guò)網(wǎng)絡(luò)將備份數(shù)據(jù)傳輸至第一異 城數(shù)據(jù)庫(kù)(13);第二異城數(shù)據(jù)庫(kù)(13)通過(guò)網(wǎng)絡(luò)將備份數(shù)據(jù)傳輸至同城數(shù)據(jù)庫(kù)(11),形成循 環(huán)異地?cái)?shù)據(jù)備份體系。本發(fā)明還提供了應(yīng)用于上述企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)的備份方法,其中,所述本地 電信機(jī)房(41)及本地網(wǎng)通機(jī)房(42),與所述同城數(shù)據(jù)庫(kù)(11)進(jìn)行本地備份,且備份采用交 叉?zhèn)浞莶呗?,控制連續(xù)的兩次備份分別備份在不同的本地機(jī)房上。上述備份方法,其中,本地備份的周期為每小時(shí)進(jìn)行一次增量備份,每隔一天進(jìn)行
一次全量備份。上述備份方法,其中,所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù) 據(jù)庫(kù)(13)進(jìn)行異地備份;異地備份周期為每周備份一次。上述備份方法,其中,所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù) 據(jù)庫(kù)(13)均與離線(xiàn)磁帶機(jī)(20)進(jìn)行離線(xiàn)備份;所述離線(xiàn)備份的周期為每月備份一次。
5.
上述備份方法,其中,包括如下步驟
步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟
00,備份流程開(kāi)始;
01,初始參數(shù)設(shè)定,包括MySQL備份參數(shù)及Oracle備份參數(shù);
02,備份控制文件生成備份進(jìn)程;
03,生成備份控制文件共有參數(shù);
04,查詢(xún)備份控制文件的共有參數(shù)是否存在;
05,查詢(xún)MySQL及Oracle備份命令是否存在;
06,去除備份文件中的空格;
07,讀取一行控制文件記錄;
08,生成備份參數(shù);
09,獲取遠(yuǎn)程主機(jī)名;
10,獲取該遠(yuǎn)程主機(jī)機(jī)器的當(dāng)前ROLE
20,執(zhí)行 ROLE ;
21,MySQL進(jìn)程第一步,獲取MySQL備份參數(shù);
22,導(dǎo)入MySQL備份腳本;
23,執(zhí)行MySQL備份腳本;
31,Oracle進(jìn)程第一步,獲取Oracle備份參數(shù);
32,導(dǎo)入Oracle備份腳本;
33,執(zhí)行Oracle備份腳本;
-備份地址不一致,則將此次備份
-備份地址一致,則將此次備份地
40,MySQL和Oracle進(jìn)程都完成后,讀取下一行配置信息; 50,判斷是否為最后一行; L60,備份流程結(jié)束。 上述備份方法,其中,還包括如下步驟 判斷第二備份地址是否設(shè)定; 當(dāng)?shù)诙浞莸刂芬言O(shè)定,且上次備份地址與第-地址仍設(shè)為第一備份地址;當(dāng)?shù)诙浞莸刂芬言O(shè)定,且上次備份地址與第-址設(shè)為第二備份地址;當(dāng)?shù)诙浞莸刂肺丛O(shè)定,則將備份地址設(shè)為第-生成此次備份信息。本發(fā)明的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)及方法能夠提供一種宏觀的數(shù)據(jù)災(zāi)備體系的架 設(shè)方法,且其具有較強(qiáng)的適應(yīng)性能,可以廣泛應(yīng)用于各種數(shù)據(jù)庫(kù)備份系統(tǒng)中,并且通過(guò)其多 層分級(jí)的備份系統(tǒng)的建立,能夠有效的提高整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的容災(zāi)強(qiáng)度,即使在發(fā)生各種 災(zāi)害事件的情況下,也能保障數(shù)據(jù)庫(kù)可以恢復(fù)到一定時(shí)間之前的狀態(tài),保障了數(shù)據(jù)的安全 性和穩(wěn)定性。
-備份地址;
圖1為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的結(jié)構(gòu)模塊圖;圖2為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的主要流程圖3為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的MySQL備份流程圖;圖4為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的Oracle備份流程圖。
具體實(shí)施例方式如圖1所示,為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的一種優(yōu)選的網(wǎng)絡(luò)架構(gòu)模塊圖。本發(fā)明 的數(shù)據(jù)庫(kù)備份系統(tǒng)包括同城數(shù)據(jù)庫(kù)11,異城數(shù)據(jù)庫(kù)12,異城數(shù)據(jù)庫(kù)13,離線(xiàn)磁帶機(jī)20,財(cái)務(wù) /銀行保管系統(tǒng)30,本地機(jī)房41 (本地電信機(jī)房),本地機(jī)房42 (本地網(wǎng)通機(jī)房)。其中,同 城數(shù)據(jù)庫(kù)11與本地備份機(jī)房41和本地備份機(jī)房42相互網(wǎng)絡(luò)連接,將數(shù)據(jù)庫(kù)上的備份數(shù)據(jù) 傳輸至本地備份機(jī)房,即完成本地備份流程。本地備份可以定制備份周期間隔,例如設(shè)定每 隔半小時(shí)、1小時(shí)或2小時(shí)等進(jìn)行增量備份,每天或者每隔一天進(jìn)行全量備份,將備份數(shù)據(jù) 儲(chǔ)存在本地機(jī)房上。所述備份采用交叉?zhèn)浞莶呗?,即例如,第一次?shù)據(jù)備份在本地備份機(jī)房 41上,則第二次數(shù)據(jù)備份在另一個(gè)本地備份機(jī)房42上,第三次再備份至本地備份機(jī)房41 上,如此循環(huán)交叉,以最大限度地利用備份機(jī)房的存儲(chǔ)能力。由于本地服務(wù)器的數(shù)據(jù)交換頻繁,其需存儲(chǔ)的數(shù)據(jù)量隨著時(shí)間推移會(huì)不斷增長(zhǎng), 因此需要采取上述的本地備份流程,將同城本地?cái)?shù)據(jù)庫(kù)機(jī)房11上的備份數(shù)據(jù)傳輸至一個(gè) 同城的本地備份機(jī)房41或42,優(yōu)選的該數(shù)據(jù)庫(kù)機(jī)房11與本地備份機(jī)房41、42架設(shè)在不同 的地方,即所謂的“同城異地”,主要是為了便于放置數(shù)據(jù)庫(kù)機(jī)房與本地備份機(jī)房不受同樣 的外在條件影響,如網(wǎng)絡(luò)故障、供電故障、通訊電纜損壞等各種天災(zāi)人禍,從而提高了備份 機(jī)房的容災(zāi)強(qiáng)度,不會(huì)因?yàn)楸镜財(cái)?shù)據(jù)庫(kù)機(jī)房的故障而導(dǎo)致所有備份機(jī)房的數(shù)據(jù)受到損害而 失去了備份的價(jià)值。此外,在異城異地的數(shù)據(jù)庫(kù)機(jī)房之間,也需要進(jìn)行異地備份,例如將同城數(shù)據(jù)庫(kù) 機(jī)房11的備份數(shù)據(jù),設(shè)定一定周期,傳輸至異城異地?cái)?shù)據(jù)庫(kù)機(jī)房12。同樣,異城異地?cái)?shù)據(jù)庫(kù) 機(jī)房12也能夠在其所在的城市實(shí)現(xiàn)本地備份,傳輸備份數(shù)據(jù)值數(shù)據(jù)庫(kù)機(jī)房12所在城市的 本地備份機(jī)房(圖中未示出),其結(jié)構(gòu)運(yùn)行模式與同城數(shù)據(jù)庫(kù)機(jī)房11和本地服務(wù)器41,42 之間相類(lèi)似。所述的備份周期,應(yīng)大于本地全量備份的周期,如每周1次或2次實(shí)施異地備 份。同時(shí),異城異地?cái)?shù)據(jù)庫(kù)機(jī)房12也可設(shè)置按照一定周期向另一個(gè)異城異地?cái)?shù)據(jù)庫(kù)機(jī)房13 進(jìn)行備份數(shù)據(jù)傳輸,從而動(dòng)態(tài)地形成了數(shù)據(jù)異地備份。同理,已成異地?cái)?shù)據(jù)庫(kù)機(jī)房13也可 將其備份數(shù)據(jù)再傳送至同城異地?cái)?shù)據(jù)庫(kù)機(jī)房11,構(gòu)成一個(gè)循環(huán)。同時(shí),各個(gè)數(shù)據(jù)庫(kù)機(jī)房11,12,13,按照一定的周期,將其備份數(shù)據(jù)集中傳輸給離線(xiàn) 磁帶機(jī)20進(jìn)行離線(xiàn)備份。該周期需大于異地備份周期,可設(shè)定為每2周或每隔1個(gè)月進(jìn)行 一次離線(xiàn)備份。離線(xiàn)備份后的數(shù)據(jù)存儲(chǔ)于離線(xiàn)磁帶上,所述離線(xiàn)磁帶可托付財(cái)務(wù)/銀行保 管系統(tǒng)存放。在上述的架構(gòu)中,各數(shù)據(jù)庫(kù)機(jī)房的數(shù)量并不限定于三個(gè),可根據(jù)實(shí)際情況架設(shè)在 多個(gè)城市的數(shù)據(jù)庫(kù)機(jī)房之間,如五個(gè)或者更多。且本地服務(wù)器在圖1中僅根據(jù)現(xiàn)有的兩種 主要的網(wǎng)絡(luò)供應(yīng)商分為本地電信機(jī)房41和本地網(wǎng)通機(jī)房42,但在實(shí)際應(yīng)用中還可以針對(duì) 每個(gè)供應(yīng)商提供更多的本地機(jī)房,并且在提供網(wǎng)絡(luò)資源共享的企業(yè)級(jí)的數(shù)據(jù)庫(kù)中,每個(gè)機(jī) 房所提供的主機(jī)的數(shù)量較多,常常達(dá)到幾十臺(tái)甚至上百臺(tái),并且根據(jù)實(shí)際情況與各種網(wǎng)絡(luò) 供應(yīng)商均設(shè)置有特定的服務(wù)器以供其使用。如圖2所示,為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)所采用的備份步驟的詳細(xì)流程圖,包括如下各個(gè)步驟步驟100,備份流程開(kāi)始。步驟101,初始參數(shù)設(shè)定,包括MySQL備份參數(shù)及Oracle備份參數(shù)。步驟102,備份控制文件生成備份進(jìn)程。步驟103,生成備份控制文件共有參數(shù)。步驟104,查詢(xún)備份控制文件的共有參數(shù)是否存在。如不存在,即共有參數(shù)生成失 敗,則進(jìn)入步驟160,備份流程結(jié)束;如存在,則進(jìn)入下一步驟105。步驟105,查詢(xún)MySQL及Oracle備份命令是否存在。若不存在,即所述參數(shù)初始化 失敗或有其他故障,則進(jìn)入步驟160 ;若存在,則執(zhí)行備份命令,并進(jìn)入下一步驟106。步驟106,去除備份文件中的空格。步驟107,讀取一行控制文件記錄。步驟108,生成備份參數(shù)。步驟109,獲取遠(yuǎn)程主機(jī)名。如未能成功獲取,則進(jìn)入步驟160 ;獲取成功后進(jìn)入步 驟 110。步驟110,獲取該遠(yuǎn)程主機(jī)機(jī)器的當(dāng)前ROLE (任務(wù))。步驟120,執(zhí)行ROLE (任務(wù))。隨后分別進(jìn)入MySQL進(jìn)程和Oracle進(jìn)程。步驟121,MySQL進(jìn)程第一步,獲取MySQL備份參數(shù)。步驟122,導(dǎo)入MySQL備份腳本。步驟123,執(zhí)行MySQL備份腳本。步驟131,Oracle進(jìn)程第一步,獲取Oracle備份參數(shù)。步驟132,導(dǎo)入Oracle備份腳本。步驟133,執(zhí)行Oracle備份腳本。步驟140,當(dāng)MySQL和Oracle進(jìn)程都完成后,讀取下一行配置信息。步驟150,判斷是否為最后一行。如為最后一行,則進(jìn)入步驟160 ;如不是最后一 行,則回到步驟107并繼續(xù)執(zhí)行后續(xù)操作。步驟160,備份流程結(jié)束。如圖3所示,為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的MySQL備份流程圖,其具體包括如下步 驟步驟200,MySQL備份流程開(kāi)始。步驟201,初始參數(shù)設(shè)定。步驟202,遍歷服務(wù)器上的實(shí)例。步驟203,根據(jù)SOCK(端口)到監(jiān)控機(jī)取得備份信息,可包括相應(yīng)的第一備份地址 和第二備份地址。步驟204,判斷第二備份地址是否設(shè)定。假如已設(shè)定,則進(jìn)入步驟205 ;否則,進(jìn)入 步驟208。步驟205,由于第二備份地址已設(shè)定,對(duì)比上次備份地址與第一備份地址是否一 致。如不一致,則進(jìn)入步驟206 ;如一致,則進(jìn)入步驟207。步驟206,經(jīng)判斷上次備份地址與第一備份地址不一致,則將此次備份地址仍設(shè)為 第一備份地址,然后進(jìn)入步驟209。
8
步驟207,經(jīng)判斷上次備份地址與第一備份地址一致,則將此次備份地址設(shè)為第二 備份地址,然后進(jìn)入步驟209。步驟208,經(jīng)判斷第二備份地址未設(shè)定,則將備份地址設(shè)為第一備份地址。步驟209,生成此次備份信息。步驟210,備份目錄是否存在。若備份目錄不存在,則進(jìn)入步驟211 ;若備份目錄存 在,則進(jìn)入步驟213。步驟211,創(chuàng)建備份目錄。若備份目錄創(chuàng)建失敗,進(jìn)入步驟212 ;否則,進(jìn)入步驟 213。步驟212,備份目錄創(chuàng)建失敗,輸出錯(cuò)誤信息,停止此次備份,進(jìn)入步驟240。步驟213,判斷執(zhí)行MySQL備份管理命令,如MySQL,MySQLadmin以及MySQLdump 等工具。如無(wú)法執(zhí)行則進(jìn)入步驟214 ;否則,進(jìn)入步驟215。步驟214,由于判斷MySQL備份管理命令無(wú)法執(zhí)行,輸出錯(cuò)誤信息停止此次備份, 并進(jìn)入步驟240。步驟215,當(dāng)MySQL管理命令執(zhí)行后,選擇備份方式、備份數(shù)據(jù)庫(kù)、目的地址、放置 目錄等信息,可由備份管理系統(tǒng)直接指定默認(rèn)信息或者通過(guò)外部輸入信息確定。步驟216,判斷是否備份所有數(shù)據(jù)庫(kù)。根據(jù)實(shí)際輸入情況,判斷進(jìn)入何種備份模式, 當(dāng)輸入一databases命令時(shí),進(jìn)入步驟217 ;當(dāng)輸入-A命令時(shí),進(jìn)入步驟218。步驟217,根據(jù)選定的數(shù)據(jù)庫(kù),進(jìn)行各個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)備份。隨后進(jìn)入步驟220。步驟218,對(duì)所有數(shù)據(jù)庫(kù)進(jìn)行備份,之后進(jìn)入步驟220。步驟220,選擇具體備份方式。同時(shí)列出各分支供選擇,包括步驟221-226供6中 具體備份方式可平等選擇。步驟221,S_INN0DB_DUMP 模式,為采用 INNODB 工具及 MySQL SlaveInnoDB DUMP 策略的備份流程。完成備份后進(jìn)入步驟230。步驟222,M_INN0DB_DUMP 模式,為采用 INNODB 工具及 MySQL MasterInnoDB DUMP 策略,完成備份后進(jìn)入步驟230。步驟223,T_STRUCTURE_DUMP 模式,為采用 MySQL STRUCTUREDUMP 策略的備份流 程。完成備份后進(jìn)入步驟230。步驟224,S_MYISAM_TAR 模式,為采用 MYISAM 工具及 MySQL SlaveMyISAM TAR 策 略的備份流程。完成備份后進(jìn)入步驟230。步驟225,S_MYISAM_DUMP 模式,為采用 MYISAM 工具及 MySQL SlaveMyISAM DUMP 策略的備份流程。完成備份后進(jìn)入步驟230。步驟226,M_ARCHIVE_TAR 模式,為采用 MySQL Master ARCHIVE TAR 策略的備份流 程。完成備份后進(jìn)入步驟230。步驟230,判斷是否存在未遍歷的S0CK,若存在,則返回步驟203繼續(xù)操作;若不存 在,則進(jìn)入步驟240。步驟240,流程結(jié)束。如圖4所示,為本發(fā)明的數(shù)據(jù)庫(kù)備份系統(tǒng)的Oracle備份流程圖,具體包括如下步
馬聚ο步驟300,Oracle備份流程開(kāi)始。對(duì)應(yīng)于Oracle備份命令。
步驟301,獲取環(huán)境變量。步驟302,判斷第二備份地址是否存在。若存在,則進(jìn)入步驟303 ;若不存在,進(jìn)入 步驟307。步驟303,當(dāng)判斷第二備份地址存在,則將上次備份地址與第一備份地址進(jìn)行比 較。當(dāng)上次備份地址等于第一備份地址時(shí),進(jìn)入步驟304 ;當(dāng)上次備份地址不等于第一備份 地址時(shí),進(jìn)入步驟305。步驟304,由于上次備份地址與第一備份地址相等且第二備份地址存在,根據(jù)交叉 備份的原則,將備份存至第二備份地址。隨后進(jìn)入步驟306。步驟305,由于上次備份地址與第一次備份地址不同,則將備份存入第一備份地 址。隨后進(jìn)入步驟306。步驟306,將此次備份地址存為“上次備份地址”,供后續(xù)循環(huán)比較之用。進(jìn)入步驟 307。步驟307,當(dāng)?shù)诙浞莸刂凡淮嬖诨蛘咭迅鶕?jù)第二備份地址完成備份之后,即執(zhí)行
獲取變量步驟。步驟308,判斷遠(yuǎn)程備份目錄是否存在。若不存在,則進(jìn)入步驟309 ;若存在,則進(jìn) 入步驟312。步驟309,由于遠(yuǎn)程備份目錄不存在,則創(chuàng)建所述遠(yuǎn)程備份目錄。進(jìn)入步驟310。步驟310,判斷目錄創(chuàng)建是否正常。若異常,則進(jìn)入步驟311 ;若正常,則進(jìn)入步驟 312。步驟311,當(dāng)判斷目錄創(chuàng)建異常,則輸出錯(cuò)誤信息,并進(jìn)入步驟330。步驟312,輸入?yún)?shù),包括備份方式、備份數(shù)據(jù)庫(kù)、目的地址,放置目錄等,并檢查參 數(shù)有效性。若輸入?yún)?shù)無(wú)效,則進(jìn)入步驟313。若輸入?yún)?shù)有效,則進(jìn)入步驟314。步驟313,由于輸入?yún)?shù)檢查無(wú)效,故輸出錯(cuò)誤信息后,進(jìn)入步驟330。步驟314,輸入?yún)?shù)有效,則根據(jù)輸入?yún)?shù)開(kāi)始進(jìn)行備份,生成備份文件。步驟315,傳輸所述的備份文件。步驟316,傳輸情況判斷。若傳輸情況發(fā)生異常,則進(jìn)入步驟317 ;若傳輸情況正 常,則繼續(xù)進(jìn)入步驟318。步驟317,當(dāng)判斷傳輸情況異常,產(chǎn)生錯(cuò)誤報(bào)告信息,并輸出該錯(cuò)誤信息。隨后進(jìn)入 步驟330。步驟318,檢查備份文件是否存在。若備份文件不存在,則進(jìn)入步驟319 ;若備份文 件存在,繼續(xù)進(jìn)入步驟320。步驟319,備份文件不存在,則生成相應(yīng)錯(cuò)誤報(bào)告信息,并傳輸該錯(cuò)誤信息。隨后進(jìn) 入步驟330。步驟320,計(jì)算備份大小。步驟321,顯示計(jì)算出的備份大小,并選擇采用何種方式進(jìn)行備份。若選擇“自動(dòng)” 備份,則進(jìn)入步驟322 ;若選擇“手動(dòng)”備份,則進(jìn)入步驟323。步驟322,執(zhí)行自動(dòng)備份操作,更新自動(dòng)備份信息。進(jìn)入步驟324。步驟323,進(jìn)入手動(dòng)備份操作等待過(guò)程,根據(jù)相應(yīng)的后續(xù)命令執(zhí)行操作。更新自動(dòng) 備份信息。進(jìn)入步驟324。
步驟324,完成備份,清楚備份文件。步驟325,備份過(guò)程結(jié)束。上述,僅為本發(fā)明的優(yōu)選的實(shí)施方式,并不用于限定本發(fā)明的保護(hù)范圍,根據(jù)本領(lǐng) 域的技術(shù)常識(shí),結(jié)合本領(lǐng)域現(xiàn)有的技術(shù),對(duì)上述內(nèi)容所做的顯而易見(jiàn)的修改和變化,其也應(yīng) 當(dāng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其特征在于,包括同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13),離線(xiàn)磁帶機(jī)(20),財(cái)務(wù)/銀行保管系統(tǒng)(30),本地電信機(jī)房(41),本地網(wǎng)通機(jī)房(42);所述的本地電信機(jī)房(41)以及本地網(wǎng)通機(jī)房(42)與同城數(shù)據(jù)庫(kù)(11)連接,備份本地?cái)?shù)據(jù);所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13)依次連接,互相備份異地?cái)?shù)據(jù);所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù)庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13)均與離線(xiàn)磁帶機(jī)(20)連接,定期備份離線(xiàn)數(shù)據(jù)。
2.如權(quán)利要求1所述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其特征在于,所述離線(xiàn)數(shù)據(jù)存儲(chǔ)于離 線(xiàn)磁帶機(jī)(20)的離線(xiàn)磁帶中,所述離線(xiàn)磁帶存放于所述財(cái)務(wù)/銀行保管系統(tǒng)中。
3.如權(quán)利要求1所述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其特征在于,所述的本地電信機(jī)房 (41)與本地網(wǎng)通機(jī)房(42)均與同城數(shù)據(jù)庫(kù)(11)分別設(shè)立在不同地點(diǎn)。
4.如權(quán)利要求1所述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng),其特征在于,所述的同城數(shù)據(jù)庫(kù)(11) 通過(guò)網(wǎng)絡(luò)將備份數(shù)據(jù)傳輸至第一異城數(shù)據(jù)庫(kù)(12);第一異城數(shù)據(jù)庫(kù)(12)通過(guò)網(wǎng)絡(luò)將備份 數(shù)據(jù)傳輸至第一異城數(shù)據(jù)庫(kù)(13);第二異城數(shù)據(jù)庫(kù)(13)通過(guò)網(wǎng)絡(luò)將備份數(shù)據(jù)傳輸至同城 數(shù)據(jù)庫(kù)(11),形成循環(huán)異地?cái)?shù)據(jù)備份體系。
5.如權(quán)利要求1-4中任意一項(xiàng)所述的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)的備份方法,其特征在 于,所述本地電信機(jī)房(41)及本地網(wǎng)通機(jī)房(42),與所述同城數(shù)據(jù)庫(kù)(11)進(jìn)行本地備份, 且備份采用交叉?zhèn)浞莶呗?,控制連續(xù)的兩次備份分別備份在不同的本地機(jī)房上。
6.如權(quán)利要求5所述的備份方法,其特征在于,本地備份的周期為每小時(shí)進(jìn)行一次增 量備份,每隔一天進(jìn)行一次全量備份。
7.如權(quán)利要求5所述的備份方法,其特征在于,所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù) 庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13)進(jìn)行異地備份;異地備份周期為每周備份一次。
8.如權(quán)利要求5所述的備份方法,其特征在于,所述的同城數(shù)據(jù)庫(kù)(11),第一異城數(shù)據(jù) 庫(kù)(12),第二異城數(shù)據(jù)庫(kù)(13)均與離線(xiàn)磁帶機(jī)(20)進(jìn)行離線(xiàn)備份;所述離線(xiàn)備份的周期 為每月備份一次。
9.如權(quán)利要求5所述的備份方法,其特征在于,包括如下步驟 步驟100,備份流程開(kāi)始;步驟101,初始參數(shù)設(shè)定,包括MySQL備份參數(shù)及Oracle備份參數(shù); 步驟102,備份控制文件生成備份進(jìn)程; 步驟103,生成備份控制文件共有參數(shù); 步驟104,查詢(xún)備份控制文件的共有參數(shù)是否存在; 步驟105,查詢(xún)MySQL及Oracle備份命令是否存在; 步驟106,去除備份文件中的空格; 步驟107,讀取一行控制文件記錄; 步驟108,生成備份參數(shù); 步驟109,獲取遠(yuǎn)程主機(jī)名; 步驟110,獲取該遠(yuǎn)程主機(jī)機(jī)器的當(dāng)前ROLE ;步驟120,執(zhí)行ROLE ;步驟121,MySQL進(jìn)程第一步,獲取MySQL備份參數(shù);步驟122,導(dǎo)入MySQL備份腳本;步驟123,執(zhí)行MySQL備份腳本;步驟131,Oracle進(jìn)程第一步,獲取Oracle備份參數(shù);步驟132,導(dǎo)入Oracle備份腳本;步驟133,執(zhí)行Oracle備份腳本;步驟140,MySQL和Oracle進(jìn)程都完成后,讀取下一行配置信息; 步驟150,判斷是否為最后一行; 步驟160,備份流程結(jié)束。
10.如權(quán)利要求9所述的備份方法,其特征在于,還包括如下步驟判斷第二備份地址 是否設(shè)定;當(dāng)?shù)诙浞莸刂芬言O(shè)定,且上次備份地址與第一備份地址不一致,則將此次備份地址 仍設(shè)為第一備份地址;當(dāng)?shù)诙浞莸刂芬言O(shè)定,且上次備份地址與第一備份地址一致,則將此次備份地址設(shè) 為第二備份地址;當(dāng)?shù)诙浞莸刂肺丛O(shè)定,則將備份地址設(shè)為第一備份地址; 生成此次備份信息。
全文摘要
本發(fā)明提供了一種企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)及其方法,其包括同城數(shù)據(jù)庫(kù),第一異城數(shù)據(jù)庫(kù),第二異城數(shù)據(jù)庫(kù),離線(xiàn)磁帶機(jī),財(cái)務(wù)/銀行保管系統(tǒng),本地電信機(jī)房,本地網(wǎng)通機(jī)房。分別實(shí)現(xiàn)本地備份、異地備份、離線(xiàn)備份。本發(fā)明的企業(yè)級(jí)數(shù)據(jù)庫(kù)備份系統(tǒng)及方法能夠提供一種宏觀的數(shù)據(jù)災(zāi)備體系的架設(shè)方法,且其具有較強(qiáng)的適應(yīng)性能,可以廣泛應(yīng)用于各種數(shù)據(jù)庫(kù)備份系統(tǒng)中,并且通過(guò)其多層分級(jí)的備份系統(tǒng)的建立,能夠有效的提高整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的容災(zāi)強(qiáng)度,即使在發(fā)生各種災(zāi)害事件的情況下,也能保障數(shù)據(jù)庫(kù)可以恢復(fù)到一定時(shí)間之前的狀態(tài),保障了數(shù)據(jù)的安全性和穩(wěn)定性。
文檔編號(hào)G06F17/30GK101923497SQ20091005293
公開(kāi)日2010年12月22日 申請(qǐng)日期2009年6月11日 優(yōu)先權(quán)日2009年6月11日
發(fā)明者周楓, 姚艷慶, 徐景春, 譚俊青 申請(qǐng)人:升東網(wǎng)絡(luò)科技發(fā)展(上海)有限公司