溫馨提示×

溫馨提示×

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

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

數(shù)據(jù)庫備份 mysqldump講析

發(fā)布時間:2020-04-30 10:50:59 來源:億速云 閱讀:262 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家簡單講講數(shù)據(jù)庫備份 mysqldump講析,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補充一下,這里就不涉獵了,我們就直奔數(shù)據(jù)庫備份 mysqldump講析主題,希望可以給大家?guī)硪恍嶋H幫助。

======從物理,邏輯角度========

物理備份:對數(shù)據(jù)庫操作系統(tǒng)的物理文件的備份(數(shù)據(jù)文件、日志文件)

方法:

冷備份:在關(guān)閉數(shù)據(jù)庫的時候進行

熱備份:數(shù)據(jù)庫處于運行狀態(tài),這種備份方法依賴于數(shù)據(jù)庫的日志文件


邏輯備份:對數(shù)據(jù)庫邏輯組件的備份

======從數(shù)據(jù)庫的策略角度======

完整備份:

優(yōu)點:簡單方便

缺點:數(shù)據(jù)存在大量的重復(fù)

占用大量的備份空間

備份時間長

數(shù)據(jù)庫備份 mysqldump講析

差異備份基于上一次完整備份后面多的內(nèi)容進行備份


物理備份:

yum install xz -y

tar Jcvf /opt/mysql-$(date+%F).tar.xz /usr/local/mysql/data/

#備份當(dāng)時的mysql數(shù)據(jù)文件形成壓縮文件到opt下面的壓縮包

mysqldump 命令對單個庫進行完全備份【但是不會有create創(chuàng)建的語句】

保存表結(jié)構(gòu)的話要加-d

mysqldump -u用戶 -p密碼 數(shù)據(jù)庫名 > 保存的文件路徑,文件類型為sql

舉例:#備份名為school的數(shù)據(jù)庫到/opt/取名為school.sql

mysqldump -uroot -pabc123 school > /opt/school.sql   #mysqldump –uroot用戶 -p密碼 數(shù)據(jù)庫名school > /opt/school.sql


=======恢復(fù)數(shù)據(jù),導(dǎo)回數(shù)據(jù)========

方法一:

需要提前創(chuàng)建數(shù)據(jù)庫school

mysql -uroot -pabc123 school < school.sql

方法二:

mysqldump -uroot -pabc123 --databases school > school.sql

無需提前創(chuàng)建數(shù)據(jù)庫school

mysql -uroot -pabc123 < school.sql

方法三

首先進入數(shù)據(jù)庫,備份一份數(shù)據(jù),

drop刪除的表

source 之前備份數(shù)據(jù)的文件路徑,結(jié)尾不用加;


多個數(shù)據(jù)庫備份:

mysqldump -uroot -p --databases數(shù)據(jù)庫名稱1 數(shù)據(jù)庫名稱2 > /opt/文件名.sql

完整性數(shù)據(jù)庫備份

備份所有的數(shù)據(jù)庫結(jié)構(gòu):

mysqldump -u用戶名 -p --all-databases > 保存文件路徑 文件類型sql

備份一份完整的數(shù)據(jù)庫文件:

mysqldump -u用戶名 -p --databases 數(shù)據(jù)庫名 > 保存文件路徑 文件類型sql

保存數(shù)據(jù)庫中的表的內(nèi)容備份:

mysqldump -u用戶名 -p 數(shù)據(jù)庫名表名 > 保存文件路徑 文件類型sql

增加 增量備份的刷新語句【前提是一定已經(jīng)提前完成完整性備份,再刷新語句,輸入刷新語句后,前面的增量操作會導(dǎo)入上一個二進制日志節(jié)點中】

[root@client~]# mysqladmin -uroot -pabc123 flush-logs


[root@client~]# mysqlbinlog --no-defaults –base64-output=decode-rows -v /opt/bak_sql/mysql-bin.000001   #查看二進制日志文件,使用64位解碼才能查看到命令語句。



恢復(fù)改正有誤操作的增量備份數(shù)據(jù)時:兩種方法基于時間的和 基于位置點

1.基于時間點恢復(fù)數(shù)據(jù):

場景舉例:首先產(chǎn)生了誤操作之后進行了增量備份,刪除這個誤操作的數(shù)據(jù)表后,恢復(fù)數(shù)據(jù)時。

首先恢復(fù)之前備份的完整性備份,然后查看增量備份的二進制文件,


查找到錯誤的操作命令上面的時間點復(fù)制粘貼,然后輸入命令 :

mysqlbinlog --no-defaults --stop-datetime='2018-09-03 15:31:56' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -pabc123

查找到下一條正確的操作命令上面的時間點復(fù)制粘貼,然后輸入命令:

mysqlbinlog --no-defaults --start-datetime='2018-09-03 15:32:16' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -pabc123


2.基于位置點:誤操作的位置點是:at  887

場景舉例:首先產(chǎn)生了誤操作之后進行了增量備份,刪除這個誤操作的數(shù)據(jù)表后,恢復(fù)數(shù)據(jù)時。

首先恢復(fù)之前備份的完整性備份,然后查看增量備份的二進制文件,


查找到錯誤操作的上一次可以操作執(zhí)行的位置點: at 833 ,輸入命令:

mysqlbinlog --no-defaults --stop-position='833' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -pabc123

查找到錯誤操作的下一次可以操作執(zhí)行的位置點: at 930 ,輸入命令:

mysqlbinlog --no-defaults --start-position='930' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -pabc123


========退出mysql,操作mysql=====


導(dǎo)回之前備份的路徑,執(zhí)行命令(可以不進入數(shù)據(jù)庫的進行命令操作)

mysql -uroot -p 數(shù)據(jù)庫 < 之前備份的文件路徑


不用進入數(shù)據(jù)庫就可以進行的操作:需要加-e

舉例語法:mysql -u用戶  -p密碼 -e ‘use 數(shù)據(jù)庫;show databases;’


增量備份,恢復(fù)數(shù)據(jù)庫的時候需要先恢復(fù)原先的完整性備份,然后再輸入命令

[root@client~]# mysqlbinlog --no-defaults mysql-bin.000002 | mysql -uroot -p

PS:當(dāng)你想要恢復(fù)增量備份的時候,只有先恢復(fù)之前的完整性備份后,輸入增量備份的刷新語句之后,再恢復(fù)000002節(jié)點的增量備份

數(shù)據(jù)庫備份 mysqldump講析就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

向AI問一下細節(jié)

免責(zé)聲明:本站發(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