您好,登錄后才能下訂單哦!
本文主要給大家簡單講講數(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ù)
占用大量的備份空間
備份時間長
差異備份:基于上一次完整備份后面多的內(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è)知識分享給大家的。
免責(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)容。