解析Mysql備份與恢復(fù)簡(jiǎn)單總結(jié)與tee命令的使用介紹
備份數(shù)據(jù)方法:
一:sql語(yǔ)句。
LOCKS TABLES tablename READ;//讀鎖定
嘗試鎖定表之前,LOCK TABLES不是事務(wù)安全型的,會(huì)隱含地提交所有活性事務(wù),同時(shí),會(huì)隱含地開(kāi)始一項(xiàng)事務(wù)(例如,使用START TRANSACTION),
所以,對(duì)事務(wù)表(如InnoDB)使用LOCK TABLES的正確方法是,設(shè)置AUTOCOMMIT=0
FLUSH TABLES,
SELECT * INTO OUTFILE 'data_bck.sql' FIELDS TERMINATED BY ',' FROM tablename;
UNLOCK TABLES;
二:mysqldump工具。
完全備份數(shù)據(jù)庫(kù)中的一個(gè)表:
mysqldump -h192.168.4.20 -uusername -puserpswd dbname tablename>data_bck.sql
完全備份某個(gè)數(shù)據(jù)庫(kù):
mysqldump -h192.168.4.20 -uusername -puserpswd dbname tablename>data_bck.sql
完全備份所有數(shù)據(jù)庫(kù):
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --all-databases>data_bck.sql
完全備份所有數(shù)據(jù)庫(kù)后停用以前所有增量日志并生成新日志:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --flush-logs --master-data=2 --all-databases>data_bck.sql
完全備份所有數(shù)據(jù)庫(kù)后刪除以前所有增量日志并生成新日志:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs>data_bck.sql
增量備份:
先執(zhí)行完全備份,然后執(zhí)行更新日志:
mysqladmin -h192.168.4.20 -uusername -puserpswd flush-logs
三:直接復(fù)制data目錄。
停止mysql服務(wù)或者鎖定數(shù)據(jù)庫(kù)表,復(fù)制data目錄到備份位置,啟動(dòng)mysql服務(wù)或者解鎖數(shù)據(jù)庫(kù)表。
恢復(fù)數(shù)據(jù)方法:
一:sql語(yǔ)句。
LOAD DATA INFILE 'data_bck.sql' INTO TABLE tablename FIELDS TERMINATED BY ',';
二:mysql工具。
完全恢復(fù):
mysql -h192.168.4.20 -uusername -puserpswd dbname<data_bck.sql
恢復(fù)增量日志:
mysqlbinlog log-bin.000001 log-bin.000008 | mysql
另外,有一個(gè)很有趣又很實(shí)用的小技巧:tee.
它將你操作和輸出的全部可視信息都保存進(jìn)了一個(gè)文件里面,可以用來(lái)生成表格式的文件、報(bào)表制作、簡(jiǎn)單的備份。
用法是這樣的:
在mysql命令行下,執(zhí)行下面的命令:
>tee E:/heihei.sql
這樣就創(chuàng)建了記錄文件,接下來(lái),我們的所有操作和所有輸出結(jié)果都將被原樣記錄下來(lái),就像照片一樣。
>select * from tablename;
那么這條命令和查詢結(jié)果都將被記錄到這個(gè)文件里面,很好玩的。不過(guò),它很仔細(xì)的,就連你的錯(cuò)誤命令都會(huì)記錄下來(lái)的。可別被笑話啊。:)
相關(guān)文章
MySQL使用正則表達(dá)式來(lái)更好地控制數(shù)據(jù)過(guò)濾
MySQL中的正則表達(dá)式是一種強(qiáng)大的數(shù)據(jù)過(guò)濾工具,它允許用戶以靈活的方式匹配和搜索文本數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于MySQL使用正則表達(dá)式來(lái)更好地控制數(shù)據(jù)過(guò)濾的相關(guān)資料,需要的朋友可以參考下2024-08-08
mysql之動(dòng)態(tài)增添字段實(shí)現(xiàn)方式
這篇文章主要介紹了mysql之動(dòng)態(tài)增添字段實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Canal實(shí)現(xiàn)MYSQL實(shí)時(shí)數(shù)據(jù)同步的示例代碼
本文詳細(xì)介紹了Canal部署的全過(guò)程,包括Canal-Admin、Canal-Server和Canal-Adapter的安裝和配置,涵蓋創(chuàng)建目錄、修改配置文件、容器部署等步驟,適用于MYSQL8.0+環(huán)境,旨在幫助用戶實(shí)現(xiàn)MYSQL實(shí)時(shí)數(shù)據(jù)同步2024-11-11
MySQL中的binlog相關(guān)命令和恢復(fù)技巧
這篇文章主要介紹了MySQL中的binlog相關(guān)命令和恢復(fù)技巧,需要的朋友可以參考下2014-05-05
MySQL百萬(wàn)級(jí)數(shù)據(jù)分頁(yè)查詢優(yōu)化方案
在mysql中l(wèi)imit可以實(shí)現(xiàn)快速分頁(yè),但是如果數(shù)據(jù)到了幾百萬(wàn)時(shí)我們的limit必須優(yōu)化才能有效的合理的實(shí)現(xiàn)分頁(yè)了,否則可能卡死你的服務(wù)器哦。2017-11-11

