上篇文章中,我們介紹了幾種 MySQL 數據備份方式的原理,本文我們將和大家來共同探討這些數據備份方式如何來使用。關于數據備份的使用攻略,各路大神都有示例文章,本文對此做了簡單的總結和匯總。
是 MySQL 自帶的很好用的備份工具,常用于 MySQL 數據庫的邏輯備份,將 MySQL 服務器中的數據庫以標準的sql 語言的方式導出,并保存到文件中。其語法為: (選項)。
常用的語法有:
--add-drop-table :在每個創建數據庫表語句前添加刪除數據庫表的語句;
--add-locks :備份數據庫表時鎖定數據庫表;
--all- :備份 MySQL 服務器上的所有數據庫;
-- :添加注釋信息;
-- :壓縮模式,產生更少的輸出;
--- :輸出完成的插入語句;
-- :指定要備份的數據庫;
----set :指定默認字符集;
--force :當出現錯誤時仍然繼續備份操作;
--host :指定要備份數據庫的服務器;
--lock- :備份前,鎖定所有數據庫表;
--no--db :禁止生成創建數據庫語句;
--no--info :禁止生成創建數據庫庫表語句;
-- :連接 MySQL 服務器的密碼;
--port : MySQL 服務器的端口號;
--user :連接 MySQL 服務器的用戶名。
數據備份的簡單實例:
導出整個數據庫 :
-u 用戶名 -p 數據庫名 > 導出的文件名
例: -u -p > .sql
導出一個表
-u 用戶名 -p 數據庫名 表名 > 導出的文件名
例: -u -p users > .sql
導出一個數據庫結構
-u -p -d --add-drop-table > .sql
是 MySQL 數據庫備份的一個輕量級第三方開源工具,備份方式為邏輯備份,支持多線程mysql導出數據到文件命令,備份速度遠高于原生態的 。用法為: [...] multi- MySQL
常用的語法:
-B, -- 需要備份的庫
-T, ---list 需要備份的表,用逗號分隔
-o, -- 輸出文件的目錄
-s, ---size 生成插入語句的字節數, 默認
-r, --rows 分裂成很多行塊表
-c, -- 壓縮輸出文件
-e, --build-empty-files 即使表沒有數據,還是產生一個空文件
-x, --regex 正則表達式: 'db.table'
-i, --- 忽略的存儲引擎,用逗號分隔
-m, --no- 不導出表結構
-k, --no-locks 不執行共享讀鎖 警告:這將導致不一致的備份
-l, --long-query-guard 設置長查詢時間,默認60秒mysql導出數據到文件命令,
--kill-long- kill掉長時間執行的查詢
-b, -- 導出
-D, -- 啟用守護進程模式
-I, --- dump快照間隔時間,默認60s,需要在模式下
-L, -- 日志文件
-t, -- 使用的線程數,默認4
-C, --- 在mysql連接上使用壓縮協議
-V, -- Show the and exit
-v, -- 更多輸出, 0 = , 1 = , 2 = , 3 = info, 2
數據備份的簡單示例
1 備份單個庫
# -u 用戶名 -p 密碼 -B 需要備份的庫名 -o /tmp/bak
2 備份所有數據庫:全庫備份期間除了與之外的庫都會被備份
# -u 用戶名 -p 密碼 -o /tmp/bak
-o 輸出文件的目錄(備份輸出指定的目錄)
3 備份單表
# -u 用戶名 -p 密碼 -B 庫名 -T 表名 -o /tmp/bak
-T 需要備份的表,多表用逗號分隔 -o指定輸出備份文件路徑
4 備份多表
# -u 用戶名 -p 密碼 -B 庫名 -T 表1,表2 -o /tmp/bak
5、當前目錄自動生成備份日期時間文件夾,不指定-o參數及值時默認為:-206
-u 用戶名 -p 密碼 -B 數據庫名字 -T 表名
6、不帶表結構備份表
# -u 用戶名 -p 密碼 -B 數據名字 -T 表名 -m
-m 不導出表結構
7、備份特定表
# -u 用戶名 -p 密碼 -B 數據庫名字 --regex=actor* -o /tmp/bak
只備份以actor*開頭的表
前兩種工具都是邏輯備份,而是物理備份,是商業備份工具 的替代品,包含的兩個主要工具分別是和。其中只能備份和兩種引擎的表,而不能備份引擎的表,而是一個封裝了的Perl腳本,可同時備份和,但在對備份時需要加一個全局的讀鎖,且不支持增量備份。
另外,還有兩個相對比較小眾的工具分別是和 ,是加解密用的, 類似于tar,是 自己實現的一種支持并發寫的流文件格式。
常用的參數
1) 參數選項
---file=[MY.CNF] //指定配置文件:只能從給定的文件中讀取默認選項。 且必須作為命令行上的第一個選項;必須是一個真實的文件,它不能是一個符號鏈接。
--=# //指定備份的數據庫和表,格式為:--="db1[.tb1] db2[.tb2]" 多個庫之間以空格隔開,如果此選項不被指定,將會備份所有的數據庫。
-- 傳遞給 --。
---file=FILE //此選項的參數需要是一個文件名,此文件中每行包含一個要備份的表的完整名稱,格式為.。該選項傳遞給 ---file,與--選項不同,只有要備份的表的庫才會被創建。
-- //創建緊湊型備份,忽略所有輔助索引頁,只備份data page;通過--apply-log中重建索引---。
-- //此選項指示壓縮備份的數據文件,會生成 *.qp 文件。
-- //解壓縮qp文件,為了解壓縮,必須安裝 工具。
--no- //指定了這個選項備份將會直接存儲在 -DIR 目錄,不再創建時間戳文件夾。