數(shù)據(jù)庫備份是個(gè)老生常談的話題,看似很簡單,但在實(shí)際操作過程中,運(yùn)維人員往往會遇到這樣或那樣的坑。
那么,如今的數(shù)據(jù)庫備份有哪些挑戰(zhàn)?如何構(gòu)建有效備份系統(tǒng)?有什么解決辦法?日前,小編就這些問題采訪了阿里巴巴數(shù)據(jù)庫事業(yè)部備份專家衡鐵剛(佩恩)。
1、先問個(gè)小白問題:數(shù)據(jù)庫為什么要備份?
衡鐵剛:時(shí)至今日,我認(rèn)為這個(gè)問題已經(jīng)不再是問題了,我換個(gè)問題來回答,數(shù)據(jù)庫備份能規(guī)避哪些風(fēng)險(xiǎn)?其實(shí)從數(shù)據(jù)誕生時(shí)起就伴隨著丟失風(fēng)險(xiǎn),比如,自然災(zāi)難、電力故障、網(wǎng)絡(luò)故障、硬件故障、軟件故障、人為故障等。
上面列舉了一大串風(fēng)險(xiǎn),其現(xiàn)實(shí)意義是,你今天躲過了硬件bug,明天避開了雷劈,后天繞開了斷電,大后天還是可能會“手滑”碰到誤刪除。
2、數(shù)據(jù)庫備份有哪些挑戰(zhàn)?
衡鐵剛:首先,數(shù)據(jù)庫資產(chǎn)盤點(diǎn),對于個(gè)人用戶,所有數(shù)據(jù)庫資產(chǎn)可能就是一個(gè)實(shí)例,不用盤點(diǎn)也非常清楚。對于企業(yè)用戶,特別是有一定規(guī)模的企業(yè),由于業(yè)務(wù)多樣性,數(shù)據(jù)庫可能不止一個(gè)實(shí)例,甚至不止一種數(shù)據(jù)庫類型。運(yùn)維人員需要搞清楚有哪些數(shù)據(jù)庫,分布在哪些環(huán)境,哪些是測試數(shù)據(jù)庫,哪些是生產(chǎn)數(shù)據(jù)庫,哪些是核心數(shù)據(jù)庫,跑著什么業(yè)務(wù),務(wù)必做到心中有數(shù)。
接下來,備份系統(tǒng)評估,經(jīng)常有人問,備份如此基礎(chǔ)、常規(guī)的工作,為什么總給人關(guān)鍵時(shí)刻掉鏈子的感覺呢?究其原因,備份作為基礎(chǔ)工作,不會對業(yè)務(wù)發(fā)展起到推動(dòng)作用,不出問題就無人問津。反過來,一旦出問題,又立刻成為眾矢之的。對備份不重視、投入不足是導(dǎo)致其掉鏈子的主要原因。很多企業(yè)“備份重于一切”守則常掛嘴邊,然則口號震天響,風(fēng)過了無痕。
建議大家立刻問下技術(shù)團(tuán)隊(duì):備份真的有效嗎?
3、什么是有效的備份系統(tǒng)?
衡鐵剛:因?yàn)閿?shù)據(jù)庫用途不同,備份系統(tǒng)有效性也有所不同,從數(shù)據(jù)庫用途上,大體分為測試數(shù)據(jù)庫、生產(chǎn)數(shù)據(jù)庫和核心數(shù)據(jù)庫。
對于測試數(shù)據(jù)庫,首先要識別數(shù)據(jù)庫重要性,如果是個(gè)人測試用途,數(shù)據(jù)經(jīng)常導(dǎo)入和清空,多數(shù)情況是不用備份的,如果是研發(fā)用途,建議開啟備份,不要輕視測試數(shù)據(jù)庫的備份,企業(yè)中所有開發(fā)、測試人員都在測試數(shù)據(jù)庫上工作,一旦數(shù)據(jù)出現(xiàn)問題,壓力撲面而來,同時(shí)我們也看到,測試數(shù)據(jù)庫出問題幾率往往高于生產(chǎn)數(shù)據(jù)庫。
對于生產(chǎn)數(shù)據(jù)庫,首先要確保備份開啟,其次評估備份周期是否滿足要求,比如每天一個(gè)全量備份,一旦出現(xiàn)故障時(shí),數(shù)據(jù)最多丟失一天,最后備份數(shù)據(jù)有沒有恢復(fù)過,確保備份數(shù)據(jù)是有效的。
對于核心數(shù)據(jù)庫,其重要性高于測試數(shù)據(jù)庫和生產(chǎn)數(shù)據(jù)庫,除了以上手段外,還要有額外手段。首先實(shí)時(shí)備份已經(jīng)成為企業(yè)選擇數(shù)據(jù)庫備份方案的必選項(xiàng),將故障發(fā)生時(shí)丟失數(shù)據(jù)量降到最小,其次快速恢復(fù)對核心數(shù)據(jù)庫價(jià)值越來越明顯,根據(jù)故障風(fēng)險(xiǎn),選擇最佳的恢復(fù)方案,最后整個(gè)備份恢復(fù)系統(tǒng)要定期演練,可以抽樣備份數(shù)據(jù)進(jìn)行恢復(fù),最好可以制定策略,定期自動(dòng)完成整個(gè)恢復(fù)過程,并產(chǎn)出演練報(bào)告。
特別提醒:
· 比不備份數(shù)據(jù)更糟糕的事情,就是不驗(yàn)證備份數(shù)據(jù)的有效性。設(shè)想一下,在災(zāi)難降臨時(shí),您的所有業(yè)務(wù)數(shù)據(jù)都被徹底摧毀,但在你想恢復(fù)數(shù)據(jù)時(shí),卻發(fā)現(xiàn)備份已損壞,備份錯(cuò)了文件,或者發(fā)生了其他可怕的情況,那時(shí)候該怎么辦呢?沒有經(jīng)過驗(yàn)證的數(shù)據(jù)備份方案,本身就是一場災(zāi)難。
測試備份內(nèi)容可確保數(shù)據(jù)得到了妥善備份且可用于恢復(fù)。千萬別等事到臨頭才悔不當(dāng)初。
· 不要迷信大而全方案,多樣需求就要由多樣方案滿足,特別對于核心數(shù)據(jù)庫,既要有整個(gè)實(shí)例定期備份,以防實(shí)例損壞、硬件故障,同時(shí)也要有單表實(shí)時(shí)備份,往往在關(guān)鍵時(shí)刻,能省去90%數(shù)據(jù)恢復(fù)時(shí)間。
· 恢復(fù)數(shù)據(jù)校驗(yàn),無論是手工恢復(fù),還是自動(dòng)恢復(fù),主要是為了解決備份數(shù)據(jù)有效性問題,其實(shí)對于恢復(fù)數(shù)據(jù),如何校驗(yàn)數(shù)據(jù)完整性非常具有挑戰(zhàn),目前多數(shù)情況是根據(jù)業(yè)務(wù)特征,將恢復(fù)數(shù)據(jù)與生產(chǎn)數(shù)據(jù)進(jìn)行抽樣比對,也可以通過將恢復(fù)數(shù)據(jù)庫作為備庫,與主庫同步來校驗(yàn)數(shù)據(jù)完整性。
4、有什么解決辦法?
衡鐵剛:還是那句話“不要等到數(shù)據(jù)丟失時(shí),才問怎么辦”。趁現(xiàn)在給數(shù)據(jù)庫加一份保障,接下來介紹基于阿里云產(chǎn)品的幾個(gè)解決方案:
•你的數(shù)據(jù)庫在阿里云ECS上,使用數(shù)據(jù)庫備份DBS將數(shù)據(jù)備份到OSS上,從購買、配置到運(yùn)行,僅需5分鐘
•你的數(shù)據(jù)庫在本地機(jī)房上,如果數(shù)據(jù)庫已開通公網(wǎng)可以使用數(shù)據(jù)庫備份DBS直接備份,或者通過開通阿里云專線,也可以使用數(shù)據(jù)庫備份DBS將數(shù)據(jù)備份到OSS上,根據(jù)DBS地域選擇,還可以做到異地備份
•你的數(shù)據(jù)庫在非阿里云的云環(huán)境上,如果數(shù)據(jù)庫已開通公網(wǎng)可以使用數(shù)據(jù)庫備份DBS直接備份,或者通過部署代理、開通阿里云專線,都可以使用數(shù)據(jù)庫備份DBS將數(shù)據(jù)備份到OSS上,在阿里云上做跨云備份。
5、請簡單介紹下你的工作?
我目前在負(fù)責(zé)一款阿里云產(chǎn)品,就是上面提到的數(shù)據(jù)庫備份DBS,你聽過嗎?DBS已經(jīng)商用,作為數(shù)據(jù)庫備份通道,與對象存儲OSS一起構(gòu)建無門檻的云數(shù)據(jù)庫備份解決方案,整個(gè)配置過程只需5分鐘,就可以實(shí)現(xiàn)秒級RPO(Recovery Point Objective恢復(fù)點(diǎn)目標(biāo),通俗理解是當(dāng)數(shù)據(jù)庫故障時(shí),允許丟失多長時(shí)間數(shù)據(jù),RPO越小越好)的實(shí)時(shí)備份。
除了為數(shù)據(jù)庫提供連續(xù)數(shù)據(jù)保護(hù)、低成本的備份服務(wù)外,DBS還可在多種環(huán)境下提供強(qiáng)有力的數(shù)據(jù)保護(hù),包括公共云、企業(yè)自建數(shù)據(jù)中心及其他云廠商。DBS具備低成本、高性能、零風(fēng)險(xiǎn)等優(yōu)勢,為用戶提供理想的云數(shù)據(jù)庫備份解決方案。
目前,數(shù)據(jù)庫備份DBS提供的備份系統(tǒng)時(shí)刻被海量用戶驗(yàn)證,產(chǎn)品不僅擁有實(shí)時(shí)備份、秒級RPO的能力,同時(shí)還具備單表恢復(fù)能力,幫助用戶只恢復(fù)有價(jià)值的數(shù)據(jù),RTO可降到分鐘級。
關(guān)于作者
衡鐵剛,花名佩恩,2011年加入阿里巴巴,曾經(jīng)擔(dān)任過阿里巴巴集團(tuán)MySQL DBA,現(xiàn)擔(dān)任數(shù)據(jù)庫產(chǎn)品經(jīng)理,目前負(fù)責(zé)數(shù)據(jù)庫備份產(chǎn)品設(shè)計(jì)。