您好,登錄后才能下訂單哦!
1.全量備份
簡單的說就是將所有數據庫或一個庫全部備份。
2.增量備份
從上一次全量備份之后到下一次全量備份之前都叫做增量備份。
對于mysql,binlong日志就是mysql數據,對binlong的備份就是對mysql的備份。
備份的時候要鎖表,影響用戶體驗,所以備份的頻率各有優缺點。
mysql的mysqldump備份什么時候派上用場?
遷移或者升級數據庫時,
增加從庫的時候
人為的DDLDML語句,主庫沒有辦法了,所有庫都會執行,恢復備份
跨機房災備,需要備份到異地。
mysql數據恢復的必要條件
1.開啟binlog,存在一份全備之后的時候到出問題時刻的所有增量的binlog文件備份。
全部備份的命令:
[root@localhost ~]# mysqldump -uroot -p123456 -F --single-transaction -A -B | gzip > test.sql.gz
備份數據和恢復數據的時候,一定要將表鎖住。
模擬一下:
先對一個庫進行全量備份:
#mysqldump -uroot -p123456 -B --master-data=1 -F xpg | gzip > xpg_$(date +%F).sql.gz
2.然后使用insert給xpg這個庫插入兩條數據
3.使用drop database dbname;刪除這個庫,等等
4.就是溝通誰進行的什么操作并結合binlog日志
5.下來就是重點:恢復,首先將表鎖住,或者停止web服務禁止向mysql里面寫數據。
6.先將全量備份的數據進行恢復,由于使用選項-F指定過,所以接下來的操作會寫入到新的binlog日志文件中,將下來的文件中的sql語句提取出來,當然不要drop命令,然后執行一下sql命令就好了。
*需要注意的是,如果不是drop,而是update破壞數據,解決起來就復雜,為了防止update的錯誤操作:在登陸mysql的時候使用選項
-U:作用就是在執行update的時候如果不使用where條件判斷就會報錯。可以將mysql -U添加到別名里面;
另一種方法指定開赴位置和結束位置
選項:--start-position --stop-position
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。