標籤:細節 bash 檔案 number 需要 round 匯入資料 適用於 sql
系統運行中 增量備份 與整體備份
例:每周日整體備份一次,周一到周六備份當天
如果周五齣了問題 可以使用周日的整體加上 周一周二周三周四來恢複
備份工具
第三方的收費備份工作
目前我們所學的是系統內建的備份功能
1匯出一個庫下面的某些表
mysqldump -u使用者名稱 -p密碼 庫名 表1 表2 表3 >地址/備份檔案名稱
匯出的是 建表語句以及 insert語句
2 匯出一個庫下面的所有表
mysqldump -u使用者名稱 -p密碼 庫名 > 地址/備份檔案名稱
3.如何 以庫 為單位匯出
mysqldump -u使用者名稱 -p密碼 -B 庫1 庫2 庫3 > 地址/備份檔案名稱 (相比於2多了建庫的操作)
4.如何匯出所有庫
mysqldump -u使用者名稱 -p密碼 -A >地址/備份檔案名稱
恢複:
1.登入到mysql命令列
對於庫層級的備份檔案
MYSQL>source 備份檔案地址
對於表層級的備份檔案
Mysql> use 庫名
Mysql> source 備份檔案地址
2.不登入到mysql命令列
庫層級的恢複
mysql -u使用者名稱 -p密碼 < 備份檔案地址
表層級的恢複
mysql -u使用者名稱 -p密碼 庫名 <備份檔案地址
---------------------------------------------------------------------------------------------------------
線上環境
每周日執行一次全量備份,然後每天下午1點執行MySQLdump增量備份.
詳細說明
1.mysqldump 增量備份配置
執行增量備份的前提條件是MYSQL 開啟binlog 日誌功能,在my.cnf 中加入
log-bin=/opt/Data/Mysql-bin (開啟並且記錄binlog日誌的位置) 一般建議放在不同於MYSQL資料目錄的磁碟上
mysqldump > 匯出資料
mysql < 匯入或者恢複資料 (或者使用source 命令匯入資料,匯入前要先切換到對應庫下)
注意一個細節:
若是mysqldump匯出一個庫的資料,匯出檔案為a.sql,然後mysql匯入這個資料到新的空庫下。
如果新庫名和老庫名不一致,那麼需要將a.sql檔案裡的老庫名改為新庫名,
這樣才能順利使用mysql命令匯入資料(如果使用
source
命令匯入就不需要修改a.sql檔案了)。
2.mysqldump 增量備份
假定星期日下午1點執行全量備份,適用於MyISAM 儲存引擎
mysqldump --lock-all-tables --flush-logs --master-data=2 -uroot -p test > backup.sql
INNODB 儲存引擎將 --lock-all-tables 替換為 --single-transaction
--flush-logs 為結束當前日誌,產生新記錄檔
--master-data=2 選項將會在輸出sql中記錄下完全備份後新記錄檔的名稱
用於日後恢複時參考,例如輸出的備份SQL檔案中含有
CHANGE MASTER TO MASTER_LOG_FILE=’MySQL-bin.000002′, MASTER_LOG_POS=106;
3.mysqldump 增量備份其他說明
如果mysqldump加上 --delete-master-logs
mysql 備份與恢複