程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 解析Mysql備份與恢復簡單總結與tee命令的使用介紹

解析Mysql備份與恢復簡單總結與tee命令的使用介紹

編輯:關於MYSQL數據庫

備份數據方法:
一:sql語句。
LOCKS TABLES tablename READ;//讀鎖定
嘗試鎖定表之前,LOCK TABLES不是事務安全型的,會隱含地提交所有活性事務,同時,會隱含地開始一項事務(例如,使用START TRANSACTION),
所以,對事務表(如InnoDB)使用LOCK TABLES的正確方法是,設置AUTOCOMMIT=0
FLUSH TABLES,
SELECT * INTO OUTFILE 'data_bck.sql' FIELDS TERMINATED BY ',' FROM tablename;
UNLOCK TABLES;

二:mysqldump工具。
完全備份數據庫中的一個表:
mysqldump -h192.168.4.20 -uusername -puserpswd dbname tablename>data_bck.sql

完全備份某個數據庫:
mysqldump -h192.168.4.20 -uusername -puserpswd dbname tablename>data_bck.sql
完全備份所有數據庫:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --all-databases>data_bck.sql
完全備份所有數據庫後停用以前所有增量日志並生成新日志:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --flush-logs --master-data=2 --all-databases>data_bck.sql
完全備份所有數據庫後刪除以前所有增量日志並生成新日志:
mysqldump -h192.168.4.20 -uusername -puserpswd --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs>data_bck.sql
增量備份:
先執行完全備份,然後執行更新日志:
mysqladmin -h192.168.4.20 -uusername -puserpswd flush-logs

三:直接復制data目錄。
停止mysql服務或者鎖定數據庫表,復制data目錄到備份位置,啟動mysql服務或者解鎖數據庫表。

恢復數據方法:
一:sql語句。
LOAD DATA INFILE 'data_bck.sql' INTO TABLE tablename FIELDS TERMINATED BY ',';

二:mysql工具。
完全恢復:
mysql -h192.168.4.20 -uusername -puserpswd dbname<data_bck.sql
恢復增量日志:
mysqlbinlog log-bin.000001 log-bin.000008 | mysql

另外,有一個很有趣又很實用的小技巧:tee.
它將你操作和輸出的全部可視信息都保存進了一個文件裡面,可以用來生成表格式的文件、報表制作、簡單的備份。
用法是這樣的:
在mysql命令行下,執行下面的命令:
>tee E:/heihei.sql
這樣就創建了記錄文件,接下來,我們的所有操作和所有輸出結果都將被原樣記錄下來,就像照片一樣。
>select * from tablename;
那麼這條命令和查詢結果都將被記錄到這個文件裡面,很好玩的。不過,它很仔細的,就連你的錯誤命令都會記錄下來的。可別被笑話啊。:)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved