400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > linux > 【Linux基礎(chǔ)知識(shí)】數(shù)據(jù)丟失了應(yīng)該如何恢復(fù)

【Linux基礎(chǔ)知識(shí)】數(shù)據(jù)丟失了應(yīng)該如何恢復(fù)

  • 來(lái)源:Linux干貨資料
  • 2019-12-20 11:34:05
  • 閱讀()
  • 分享
  • 手機(jī)端入口

通常情況下,數(shù)據(jù)恢復(fù)成功有兩個(gè)必要條件,首先是要有完整可用的數(shù)據(jù)庫(kù)備份,其次要有連續(xù)完整沒(méi)有缺失的二進(jìn)制日志。如果兩個(gè)條件都滿(mǎn)足就可以恢復(fù)故障數(shù)據(jù);如果僅僅滿(mǎn)足第一個(gè)條件,只能做數(shù)據(jù)還原,對(duì)于上例來(lái)說(shuō),只能是數(shù)據(jù)庫(kù)中的數(shù)據(jù)還原到備份時(shí)刻凌晨2:00時(shí)的狀態(tài),將會(huì)丟失凌晨2:00到上午9:37期間的數(shù)據(jù);如果沒(méi)有備份,僅僅有一段日志仍然會(huì)造成數(shù)據(jù)庫(kù)數(shù)據(jù)的丟失,損失不可避免。因此,是否開(kāi)啟二進(jìn)制日志是能否做數(shù)據(jù)庫(kù)恢復(fù)的條件。

二進(jìn)制日志(binlog)主要用途有兩個(gè),其一是做數(shù)據(jù)恢復(fù),其二是進(jìn)行數(shù)據(jù)庫(kù)的復(fù)制。MySQL數(shù)據(jù)庫(kù)默認(rèn)沒(méi)有開(kāi)啟二進(jìn)制日志,如果要開(kāi)啟二進(jìn)制日志需要在/etc/my.cnf中添加和配置server-id和log-bin選項(xiàng),這個(gè)過(guò)程需要重啟mysqld服務(wù),此外還應(yīng)注意的是,開(kāi)啟二進(jìn)制日志會(huì)使數(shù)據(jù)庫(kù)額外損失一定的性能,大約2%左右。如果是寫(xiě)操作頻繁的生產(chǎn)庫(kù),應(yīng)該開(kāi)啟,因?yàn)榭梢栽诔霈F(xiàn)數(shù)據(jù)損毀的極端情況時(shí),通過(guò)二進(jìn)制日志的恢復(fù)挽回丟數(shù)據(jù)的損失;但是如果不在乎部分?jǐn)?shù)據(jù)的丟失或者數(shù)據(jù)庫(kù)的數(shù)據(jù)以讀操作(select)為主,考慮性能損耗的因素,可以不開(kāi)啟二進(jìn)制日志。

開(kāi)啟二進(jìn)制日志步驟:

1. 編輯/etc/my.cnf

2. 在[mysqld]下添加:

a) server-id=非零值

b) log-bin=mysql-bin

3. 重啟mysqld服務(wù)

systemctl restart mysqld

其中,MySQL5.7版本要求server-id的值不能與其他存在復(fù)制關(guān)系的MySQL的server-id重復(fù),其取值范圍為1到2^32-1,不能為0否則二進(jìn)制日志不能開(kāi)啟,通常該值設(shè)置為ip地址的末位段,這樣確保網(wǎng)段內(nèi)的server-id無(wú)重復(fù)值。

log-bin變量對(duì)應(yīng)的mysql-bin為二進(jìn)制日志的前綴名,默認(rèn)二進(jìn)制日志保存在datadir變量對(duì)應(yīng)的數(shù)據(jù)文件路徑中,為了降低二進(jìn)制日志文件與數(shù)據(jù)文件同時(shí)損壞的幾率,通常把二進(jìn)制文件與數(shù)據(jù)文件分開(kāi)存放,最好放在不同的磁盤(pán)中。例如:將二進(jìn)制日志放在/binlogs中,這樣需要提前創(chuàng)建該目錄,并設(shè)置好相應(yīng)的屬主、屬組和權(quán)限,否則mysqld重啟會(huì)失敗。相關(guān)配置如下:

1. root# mkdir /binlogs

2. root# chown mysql:mysql /binlogs

3. root# chmod 750 /binlogs

4. 在/etc/my.cnf中的[mysqld]后面添加:

a) server-id=非零值

b) log-bin=/binlogs/mysql-bin

5. 重啟mysqld服務(wù)

systemctl restart mysqld

至此,二進(jìn)制日志開(kāi)啟成功,可以登入mysql后用show binary logs; 命令查看所有的二進(jìn)制日志。默認(rèn)二進(jìn)制日志的最大可為1G。其切換條件有三個(gè):1. mysqld重啟時(shí)會(huì)切換;2.日志到達(dá)了1G會(huì)自動(dòng)切換;3.鍵入flush logs; 命令會(huì)自動(dòng)切換。在開(kāi)啟了二進(jìn)制日志的情況下,如果備份和日志齊全,當(dāng)數(shù)據(jù)庫(kù)數(shù)據(jù)出現(xiàn)損壞時(shí),就可以對(duì)數(shù)據(jù)進(jìn)行恢復(fù)了。

 

文章“【Linux基礎(chǔ)知識(shí)】數(shù)據(jù)丟失了應(yīng)該如何恢復(fù)”已幫助

>>本文地址:http://nfbqydst.cn/zhuanye/2019/48201.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME