第五篇:Mysql的数据备份与恢复---------
一 ,數(shù)據(jù)備份與恢復(fù)
步驟一:使用mysqldump進(jìn)行邏輯備份
1)備份MySQL服務(wù)器上的所有庫
將所有的庫備份為mysql-all.sql文件:
查看備份文件alldb.sql的部分內(nèi)容:
# grep -vE '^/|^-|^$' /root/alldb.sql ?| head -20
2)只備份指定的某一個庫
將userdb庫備份為userdb.sql文件:
查看備份文件userdb.sql的部分內(nèi)容:
3)同時備份指定的多個庫
同時備份mysql、userdb庫,保存為mysql+userdb.sql文件:
查看備份文件userdb.sql的部分內(nèi)容:
?
?
步驟二:使用mysql命令從備份中恢復(fù)數(shù)據(jù)庫、表
以恢復(fù)userdb庫為例,可參考下列操作。通常不建議直接覆蓋舊庫,而是采用建立新庫并導(dǎo)入邏輯備份的方式執(zhí)行恢復(fù),待新庫正常后即可廢棄或刪除舊庫。
1)創(chuàng)建名為userdb2的新庫
mysql> create database userdb2;
?
2)導(dǎo)入備份文件,在新庫中重建表及數(shù)據(jù)
eg:
# mysql -uroot -p jingcaiwang < /root/jingcaiwang-v2.sql? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //使用備份數(shù)據(jù)導(dǎo)入
3)確認(rèn)新庫正常,啟用新庫
4)廢棄或刪除舊庫
-----------------------------------------------------------------------------------------------------------
二 ,使用binlog日志
步驟一:啟用binlog日志
1)調(diào)整/etc/my.cnf配置,并重啟服務(wù)
2)確認(rèn)binlog日志文件
新啟用binlog后,每次啟動MySQl服務(wù)都會新生成一份日志文件:
?
步驟二:利用binlog日志重做數(shù)據(jù)庫操作
1)執(zhí)行數(shù)據(jù)庫表添加操作
創(chuàng)建db1·庫tb1表,表結(jié)構(gòu)自定義:
步驟三:通過binlog日志恢復(fù)表記錄
binlog會記錄所有的數(shù)據(jù)庫、表更改操作,所以可在必要的時候重新執(zhí)行以前做過的一部分?jǐn)?shù)據(jù)操作,但對于啟用binlog之前已經(jīng)存在的庫、表數(shù)據(jù)將不適用。
根據(jù)上述“恢復(fù)被刪除的3條表記錄”的需求,應(yīng)通過mysqlbinlog工具查看相關(guān)日志文件,找到刪除這些表記錄的時間點,只要恢復(fù)此前的SQL操作(主要是插入那3條記錄的操作)即可。
1)查看mysql-bin.000002日志內(nèi)容
2) 執(zhí)行指定Pos節(jié)點范圍內(nèi)的sql命令恢復(fù)數(shù)據(jù)
根據(jù)上述日志分析,只要恢復(fù)從2014.01.12 20:12:14到2014.01.12 20:13:50之間的操作即可。可通過mysqlbinlog指定時間范圍輸出,結(jié)合管道交給msyql命令執(zhí)行導(dǎo)入重做:
?
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的第五篇:Mysql的数据备份与恢复---------的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql数据库中修改库名的的方法
- 下一篇: Tomcat修改端口、添加域名访问