備份數(shù)據(jù)方法:
一:sql語句。
LOCKS TABLES tablename READ;//讀鎖定
嘗試鎖定表之前,LOCK TABLES不是事務(wù)安全型的,會(huì)隱含地提交所有活性事務(wù),同時(shí),會(huì)隱含地開始一項(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ù)庫中的一個(gè)表:
mysqldump -h192.168.4.20 -uusername -puserpswd dbname tablename>data_bck.sql
完全備份某個(gè)數(shù)據(jù)庫:
mysqldump -h192.168.4.20 -uusername -puserpswd dbname tablename>data_bck.sql
完全備份所有數(shù)據(jù)庫:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --all-databases>data_bck.sql
完全備份所有數(shù)據(jù)庫后停用以前所有增量日志并生成新日志:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --flush-logs --master-data=2 --all-databases>data_bck.sql
完全備份所有數(shù)據(jù)庫后刪除以前所有增量日志并生成新日志:
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ù)庫表,復(fù)制data目錄到備份位置,啟動(dòng)mysql服務(wù)或者解鎖數(shù)據(jù)庫表。
恢復(fù)數(shù)據(jù)方法:
一:sql語句。
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è)文件里面,可以用來生成表格式的文件、報(bào)表制作、簡單的備份。
用法是這樣的:
在mysql命令行下,執(zhí)行下面的命令:
>tee E:/heihei.sql
這樣就創(chuàng)建了記錄文件,接下來,我們的所有操作和所有輸出結(jié)果都將被原樣記錄下來,就像照片一樣。
>select * from tablename;
那么這條命令和查詢結(jié)果都將被記錄到這個(gè)文件里面,很好玩的。不過,它很仔細(xì)的,就連你的錯(cuò)誤命令都會(huì)記錄下來的。可別被笑話啊。:)
新聞熱點(diǎn)
疑難解答
圖片精選