溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL全量、增量備份與恢復的簡單方法

發(fā)布時間:2020-05-08 14:03:55 來源:億速云 閱讀:542 作者:三月 欄目:系統(tǒng)運維

本文主要給大家介紹MySQL全量、增量備份與恢復的簡單方法,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL全量、增量備份與恢復的簡單方法吧。

數(shù)據(jù)備份的重要性

1、在生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性是至關(guān)重要的,任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴重的后果
2、造成數(shù)據(jù)丟失的原因
程序錯誤
人為錯誤
計算機失敗
磁盤失敗
災難(如地震等)和偷竊

數(shù)據(jù)庫備份的分類

一、從物理與邏輯的角度,備份可分為:

1、物理備份:對數(shù)據(jù)庫操作系統(tǒng)的物理文件(如數(shù)據(jù)文件、日志文件等)的備份
物理備份又可以分為脫機備份(冷備份)和聯(lián)機備份(熱備份):
-冷備份:是在關(guān)閉數(shù)據(jù)庫的時候進行的
-熱備份:數(shù)據(jù)庫處于運行狀態(tài),這種備份方法依賴于數(shù)據(jù)庫的日志文件

2、邏輯備份:對數(shù)據(jù)庫邏輯組件(如表等數(shù)據(jù)庫對象)的備份

二、從數(shù)據(jù)庫的備份策略角度, 備份可分為:

1、完全備份:每次對數(shù)據(jù)進行完整的備份

2、差異備份:備份那些自從上次完全備份之后被修改過的文件

3、增量備份:只有那些在.上次完全備份或者增量備份后被修改的文件才會被備份

注意點:差異備份與增量備份相輔相成

一、MySQL完全備份(全量備份)

1、完全備份是對整個數(shù)據(jù)庫的備份、數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份

2、完全備份保存的是備份完成時刻的數(shù)據(jù)庫

3、完全備份是增量備份的基礎(chǔ)

完全備份的優(yōu)點

備份與恢復操作簡單方便

完全備份的缺點

1.數(shù)據(jù)存在大量的重復
2.占用大量的備份空間
3.備份與恢復時間長

備份方法

一、MySQL數(shù)據(jù)庫的備份可以采用用多種方式

1.直接打包數(shù)據(jù)庫文件夾,如/usr/local/mysql/data
2.使用專用備份工具mysqldump**

二、mysqldump命令

1.MySQL自帶的備份工具,相當方便對MySQL進行備份
2.通過該命令工具可以將指定的庫、表或全部的庫導出為SQL腳本,在需要恢復時可進行數(shù)據(jù)恢復

三、使用mysqldump命令對單個數(shù)據(jù)庫進行完全備份

mysqldump  -u用戶名   -p [密碼] [選項]    [數(shù)據(jù)庫名] > /備份路徑/備份文件名

四、使用mysqldump命令對多個庫進行完全備份

mysqldump -u 用戶名 -p [密碼] [選項] --databases 庫名1 [庫名2]... >/備份路徑/備份文件名

五、使用mysqldump命令對所有庫進行完全備份

mysqldump   -u用戶名    -p [密碼] [選項]   --all-databases > /備份路徑/備份文件名

mysqldump備份表

在實際生產(chǎn)環(huán)境中,存在對某個特定表的維護操作,此時mysqldump同樣發(fā)揮重大作用
1.使用mysqldump備份表的操作

mysqldump   -u  用戶名   -p [密碼] [選項]    數(shù)據(jù)庫名  表名 > /備份路徑/備份文件名

2.使用mysqldump備份表結(jié)構(gòu)的操作

mysqldump   -u  用戶名   -p [密碼] [選項]  -d  數(shù)據(jù)庫名 表名 > /備份路徑/備份文件名

恢復數(shù)據(jù)庫

一、使用mysqldump命令導出的SQL備份腳本,在進行數(shù)據(jù)恢復時可使用以下方法導入

source命令          #數(shù)據(jù)庫模式中運行
mysql命令           #Linux模式中運行

1、使用source恢復數(shù)據(jù)庫的步驟

●登錄到MySQL數(shù)據(jù)庫
●執(zhí)行source備份sq|腳本的路徑(絕對路徑)
MySQL [(none)] > source /backup/all-data.sql
#source命令恢復

2、使用mysql命令恢復數(shù)據(jù)

mysql   -u用戶名   -p [密碼]   <  庫備份腳本的路徑
mysql  -u  root   -p < /backup/all-data.sql
#mysql命令恢復

二、使用mysqldump進行完全備份的存在的問題

●備份數(shù)據(jù)中有重復數(shù)據(jù)
●備份時間與恢復時間長

恢復數(shù)據(jù)表操作

1、恢復表時同樣可以使用source或者mysql命令進行

2、source恢復表的操作與恢復庫的操作相同

3、當備份文件中只包含表的備份,而不包括創(chuàng)建庫的語句時,必須指定庫名,且目標庫必須存在.生產(chǎn)環(huán)境中,可以使用shell腳本自動實現(xiàn)定期備份

mysql -u用戶名-p [密碼] < 表備份腳本的路徑
mysql -u root -p mysql < /backup/mysql-user.sql
#mysql命令恢復表

MySQL備份思路

1、定期實施備份,制定備份計劃或者策略,并嚴格遵守

2、除了進行完全備份,開啟MySQL云服務器的日志功能是很重要的
●完全備份加上日志,可以對MySQL進行最大化還原
MySQL-bin:MySQL數(shù)據(jù)庫的二進制日志,用于記錄用戶對數(shù)據(jù)庫操作的SQL語句((除了數(shù)據(jù)查詢語句)信息。可以使用mysqlbin命令查看二進制日志的內(nèi)容

3、使用統(tǒng)一的和易理解的備份文件名稱
●不要使用backup1、backup2等這樣沒有意義的名字
●推薦使用庫名或者表名加上時間的命名規(guī)則

二、MySQL增量備份

增量備份就是備份自上一次備份之后增加或變化的文件或者內(nèi)容
增量備份的特點

●沒有重復數(shù)據(jù),備份量不大,時間短
●恢復麻煩:需要上次完全備份及完全備份之后所有的增量備份才能恢復,而且要對所有增量備份進行逐個反推恢復

MySQL沒有提供直接的增量備份方法

可以通過MySQL提供的二進制日志(binary logs)間接實現(xiàn)增量備份

MySQL二進制日志對備份的意義

●二進制日志保存了所有更新或者可能更新數(shù)據(jù)庫的操作
●二進制日志在啟動MySQL云服務器后開始記錄,并在文件達到max_ binlog_size所設(shè)置的大小或者接收到flush logs命令后重新創(chuàng)建新的日志文件
●只需定時執(zhí)行flush logs方法重新創(chuàng)建新的日志,生成二進制文件序列,并及時把這些舊的日志保存到安全的地方就完成了一個時間段的增量備份

查看二進制日志文件(解碼)

mysqlbinlog --no-defaults --base64-output=decode-rows -V mysql-bin.000002 > /opt/ bak. txt

MySQL數(shù)據(jù)庫增量恢復概述

一般恢復

MySQL全量、增量備份與恢復的簡單方法

基于位置回復

就是將某個起始時間的二進制日志導入數(shù)據(jù)庫中,從而跳過某個發(fā)生錯誤的時間點實現(xiàn)數(shù)據(jù)的恢復

基于時間點恢復

使用基于時間點的恢復,可能會出現(xiàn)在一個時間點里既同時存在正確的操作又存在錯誤的操作,所以我們需要一種更為精確的恢復方式

增量恢復的方法

1.一般恢復

mysqlbinlog   [--no-defaults]    增量備份文件  |  mysql  -u用戶名  -p

2.基于位置的恢復
恢復數(shù)據(jù)到指定位置

mysqlbinlog  --stop-position=操作'id'   進制日志  |  mysql  -u用戶名  -p 密碼

從指定的位置開始恢復數(shù)據(jù)

mysqlbinlog  --start-position=操作'id'  二進制日志  |  mysql  -u用戶名  -p 密碼

3.基于時間點的恢復
從日志開頭截止到某個時間點的恢復

mysqlbinlog  [--no-defaults]  --stop-datetime='年-月-日 小時:分鐘:秒'  二進制日志  | mysql  -u用戶名  -p 密碼

從某個時間點到日志結(jié)尾的恢復

mysqlbinlog  [--no defaults]  --start-datetime='年-月-日 小時:分鐘:秒'  二進制日志  | mysql  -u用戶名  -p 密碼

從某個時間點到某個時間點的恢復

mysqlbinlog  [--no defaults]  --start-datetime='年-月-日 小時:分鐘:秒'  --stop-datetime='年-月-日 小時:分鐘:秒'  二進制日志  |  mysql  -u用戶名  -p 密碼

看完以上關(guān)于MySQL全量、增量備份與恢復的簡單方法,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

向AI問一下細節(jié)

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

AI