溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

發(fā)布時(shí)間:2021-07-29 17:07:58 來(lái)源:億速云 閱讀:402 作者:Leah 欄目:數(shù)據(jù)庫(kù)

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

1.添加數(shù)據(jù)庫(kù)、表、錄入信息

在進(jìn)行備份前,先根據(jù)需求創(chuàng)建用戶信息數(shù)據(jù)庫(kù)client、用戶資費(fèi)數(shù)據(jù)表user_info,并且根據(jù)需求描述中的表格插入前三條用戶的數(shù)據(jù)。 如下圖:

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

2.先進(jìn)行一次完全備份

為了方便驗(yàn)證二進(jìn)制日志的增量恢復(fù)功能,我們?cè)诓迦肴龡l用戶數(shù)據(jù)后先對(duì)client數(shù)據(jù)庫(kù)的user_info數(shù)據(jù)表進(jìn)行一次完全備份,然后在linux系統(tǒng)命令行下執(zhí)行"mysqladmin  -u root -p flush-logs"命令或在"mysql>"命令提示符下執(zhí)行"flush  logs;"生成新的二進(jìn)制日志。如下圖:

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

3.繼續(xù)錄入新的數(shù)據(jù)并進(jìn)行增量備份

繼續(xù)錄入兩個(gè)用戶的數(shù)據(jù),并執(zhí)行"mysqladmin -u root -p flush-logs"命令刷新二進(jìn)制日志,進(jìn)行增量備份。這樣,二進(jìn)制日志文件mysql-bin.000003中僅保留插入兩個(gè)用戶數(shù)據(jù)的操作。如下圖:

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

4.模擬誤操作刪除user_info表

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

5.恢復(fù)操作

執(zhí)行恢復(fù)操作時(shí),需要先恢復(fù)完全備份,然后恢復(fù)增量備份。

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

二、基于位置恢復(fù)

1.由于上面已經(jīng)做過(guò)恢復(fù)操作了,所以我們***步還是模擬誤操作刪除user_info表,然后恢復(fù)完全備份。操作同上,這里就略過(guò)了。

2.想要實(shí)現(xiàn)基于位置或時(shí)間點(diǎn)恢復(fù)數(shù)據(jù),必須先通過(guò)查看二進(jìn)制日志文件確定恢復(fù)的位置或時(shí)間點(diǎn)。使用"mysqlbinlog --no-defaults 二進(jìn)制日志文件"可以查看日志文件的具體內(nèi)容。如下圖:

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

通過(guò)查看日志文件的具體內(nèi)容可以發(fā)現(xiàn),在每進(jìn)行一個(gè)操作之前都會(huì)有一個(gè)獨(dú)特的編號(hào),如"#  at  458"。此編號(hào)隨著操作數(shù)增多而變大,我們稱之為操作ID。在操作ID下面緊跟著的是時(shí)間標(biāo)記,要實(shí)現(xiàn)基于位置或時(shí)間點(diǎn)恢復(fù)數(shù)據(jù),需要分別依賴二進(jìn)制日志文件中的操作ID或者時(shí)間標(biāo)記。例如,通過(guò)二進(jìn)制日志文件可以得知,在操作ID為"458"的時(shí)候,user_info表中插入了"王麻子"的用戶數(shù)據(jù)。因此執(zhí)行以下命令可以實(shí)現(xiàn)僅恢復(fù)到操作ID為"458"之前的數(shù)據(jù),即不恢復(fù)"王麻子"的信息。這時(shí)所恢復(fù)的數(shù)據(jù)是從二進(jìn)制日志文件的開始位置直到指定位置。如下圖:

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

上述操作命令中,"--stop-position"指定的是停止的位置,如果僅恢復(fù)"王麻子"的信息,跳過(guò)"趙六"的信息,可以使用"--start-position"選項(xiàng)指定開始恢復(fù)數(shù)據(jù)的位置。這時(shí)所恢復(fù)的數(shù)據(jù)是從指定位置開始直到二進(jìn)制日志文件的***。如下圖:

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

三、基于時(shí)間點(diǎn)恢復(fù)

基于時(shí)間點(diǎn)恢復(fù)數(shù)據(jù)所使用的選項(xiàng)是"--stop-datetime",指定的時(shí)間同樣也是查詢二進(jìn)制日志文件所得。

如下圖:執(zhí)行以下操作可以實(shí)現(xiàn)恢復(fù)到"2:38:32"之前的數(shù)據(jù),即不恢復(fù)"王麻子"的信息。

MySQL數(shù)據(jù)庫(kù)中怎么實(shí)現(xiàn)備份

基于時(shí)間點(diǎn)恢復(fù)同樣也可以使用"--start-datetime"選項(xiàng)指定開始恢復(fù)數(shù)據(jù)的時(shí)間,命令格式與基于位置恢復(fù)的格式一樣,這里就不再給圖了。

四、制定企業(yè)備份策略的思路

在企業(yè)中備份策略并不是千篇一律的,而是根據(jù)每個(gè)企業(yè)的實(shí)際生產(chǎn)環(huán)境與業(yè)務(wù)需求指定合適的備份策略。無(wú)論是選擇完全備份,還是選擇增量備份,都需要考慮它們的優(yōu)缺點(diǎn),是否適合當(dāng)前的環(huán)境。同時(shí),為了保證恢復(fù)的完整性,建議開啟二進(jìn)制日志功能,二進(jìn)制日志文件給恢復(fù)工作也帶來(lái)了很大的靈活性,可以基于時(shí)間點(diǎn)或位置進(jìn)行恢復(fù)??紤]到數(shù)據(jù)庫(kù)性能,我們可以將二進(jìn)制日志文件保存到其他安全的硬盤中。

在進(jìn)行熱備份時(shí),備份操作和應(yīng)用服務(wù)在同時(shí)運(yùn)行,這樣就十分消耗系統(tǒng)資源了,導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)性能下降,這就要求我們選擇合適的時(shí)間,如,在應(yīng)用負(fù)擔(dān)很小的時(shí)候在進(jìn)行備份操作。

需要注意的是,不是備份完就萬(wàn)事大吉了,***確認(rèn)備份是否可用,所以,備份之后的恢復(fù)測(cè)試是很有必要的,同時(shí)備份時(shí)間也要有靈活調(diào)整。如:

  • 數(shù)據(jù)更新頻繁,則應(yīng)該頻繁的備份

  • 數(shù)據(jù)的重要性,在有適當(dāng)更新時(shí)進(jìn)行備份

  • 在數(shù)據(jù)庫(kù)壓力小的時(shí)間段進(jìn)行備份,如一周一次完全備份,每天進(jìn)行增量備份。

  • 中小公司,完全備份一般一天一次即可

  • 大公司可每周進(jìn)行一次完全備份,每天進(jìn)行增量備份

  • 盡量為企業(yè)實(shí)現(xiàn)主從復(fù)制架構(gòu),以增加數(shù)據(jù)的高可用性

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI