qldump 备份所有表_MySQL中的备份和恢复是怎样执行的?
MySQL中的邏輯備份是將數(shù)據(jù)庫中的數(shù)據(jù)備份為一個文本文件,備份的文件可以被查看和編輯。在MySQL中,使用mysaldump工具來完成備份。有以下3種來調(diào)用mysqldump:
1. 備份指定的數(shù)據(jù)庫,或者此數(shù)據(jù)庫中某些表
shell>mysqldump [option] db_name [tables]2. 備份指定的一個或多個數(shù)據(jù)庫
shell>mysqldump [option] --database DB1 [DB2 DB3...]3. 備份所有數(shù)據(jù)庫
shell>mysqldump [option] --all-database如果沒有指定數(shù)據(jù)庫中的任何表,默認導出所有數(shù)據(jù)庫中所有表。以下給出一些使用mysqldump工具進行備份的例子:
1. 備份所有數(shù)據(jù)庫
[cqh@localhost ~]$ mysqldump -uroot -p --all-database > all.sql2. 備份數(shù)據(jù)庫test
[cqh@localhost ~]$ mysqldump -uroot -p test > test.sql3. 備份數(shù)據(jù)庫test下的表emp
[cqh@localhost ~]$ mysqldump -uroot -p test emp > emp.sql4. 備份數(shù)據(jù)庫test下的表emp和dept
[cqh@localhost ~]$ mysqldump -uroot -p test emp dept > emp_dept.sql5. 備份數(shù)據(jù)庫test下的所有表為逗號分割的文本,備份到/tmp:
[cqh@localhost ~]$ mysqldump -uroot -p -T /tmp test emp --fields-terminated-by ','MySQL恢復MySQL中的恢復可分為三種,分別是:完全恢復、基于時間點恢復和基于位置恢復。
1. 完全恢復
mysqldump的恢復也很簡單,將備份作為輸入執(zhí)行即可,具體語法如下:
mysql -uroot -p dbname < bakfile注意,將備份恢復后數(shù)據(jù)并不完整,還需要將備份后執(zhí)行的日志進行重做,語法如下:
mysqlbinlog binlog-file | mysql -uroot -p2. 基于時間點恢復
由于誤操作,比如誤刪除了一些表,這時使用完全恢復是沒有用的,因為日志里還存在誤操作的語句,我們需要的是恢復到誤操作之前的狀態(tài),然后跳過誤操作語句,再恢復后面執(zhí)行的語句,完成我們的恢復。這種恢復叫不完全恢復,在MySQL中,不完全恢復分別為基于時間點的恢復和基于位置的恢復。
以下是基于時間點恢復的操作步驟:
如果上午10點發(fā)生了誤操作,可以用以下語句用備份和BINLOG數(shù)據(jù)恢復到故障前:
跳過故障時的時間點,繼續(xù)執(zhí)行后面的BINLOG,完成恢復。
3. 基于位置恢復
和基于時間點的恢復類似,但是更精確,因為同一個時間點可能有很多條SQL語句同時執(zhí)行。恢復的操作步驟如下:
在shell下執(zhí)行如下命令:
shell>mysqlbinlog --start-date="20150929 9:55:00" --stop-date="20150929 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql該命令將在/tmp目錄創(chuàng)建小的文本文件,編輯此文件,找到出錯語句前后的位置號,例如前后位置號分別是565512和565515
恢復了以前的備份文件后,應從命令行輸入下面內(nèi)容:
shell>mysqlbinlog--stop-position="551212"/var/log/mysql/bin.123456 | mysql -uroot -pmypwdshell>mysqlbinlog--start-position="551215"/var/log/mysql/bin.123456 | mysql -uroot -pmypwd上面的第一行將恢復到停止位置為止的所有事務。下一行將恢復從給定的起始位置直到二進制日志結(jié)束的所有事務。因為mysqlbinlog的輸出包括每個SQL語句記錄之前的SET TIMESTAMP語句,因此恢復的數(shù)據(jù)和相關MySQL日志將反應事務執(zhí)行的原時間。?
End.
作者:雪山飛豬
來源:博客園
零基礎入職數(shù)據(jù)分析就業(yè)班
課程的形式主要是“直播+錄播”
報名專享:課程項目作業(yè)+1v1班主任監(jiān)督學習+愛數(shù)據(jù)學院學員專屬網(wǎng)站+班級答疑群
課程結(jié)束后能熟練掌握SQL、Python、Excel、PPT等工具
疫情期間在家學習不添亂
總結(jié)
以上是生活随笔為你收集整理的qldump 备份所有表_MySQL中的备份和恢复是怎样执行的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构基础:图结构的学习笔记
- 下一篇: linux打印mysql堆栈_第25问: