上篇文章中,我們介紹了幾種 MySQL 數(shù)據(jù)備份方式的原理,本文我們將和大家來共同探討這些數(shù)據(jù)備份方式如何來使用。關(guān)于數(shù)據(jù)備份的使用攻略,各路大神都有示例文章,本文對此做了簡單的總結(jié)和匯總。
創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為嵩明企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站制作,嵩明網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
Mysqldump
Mysqldump 是 MySQL 自帶的很好用的備份工具,常用于 MySQL 數(shù)據(jù)庫的邏輯備份,將 MySQL 服務(wù)器中的數(shù)據(jù)庫以標(biāo)準(zhǔn)的 sql 語言的方式導(dǎo)出,并保存到文件中。其語法為: mysqldump (選項(xiàng))。
常用的語法有:
--add-drop-table :在每個創(chuàng)建數(shù)據(jù)庫表語句前添加刪除數(shù)據(jù)庫表的語句;
--add-locks :備份數(shù)據(jù)庫表時鎖定數(shù)據(jù)庫表;
--all-databases :備份 MySQL 服務(wù)器上的所有數(shù)據(jù)庫;
--comments :添加注釋信息;
--compact :壓縮模式,產(chǎn)生更少的輸出;
--complete-insert :輸出完成的插入語句;
--databases :指定要備份的數(shù)據(jù)庫;
--default-character-set :指定默認(rèn)字符集;
--force :當(dāng)出現(xiàn)錯誤時仍然繼續(xù)備份操作;
--host :指定要備份數(shù)據(jù)庫的服務(wù)器;
--lock-tables :備份前,鎖定所有數(shù)據(jù)庫表;
--no-create-db :禁止生成創(chuàng)建數(shù)據(jù)庫語句;
--no-create-info :禁止生成創(chuàng)建數(shù)據(jù)庫庫表語句;
--password :連接 MySQL 服務(wù)器的密碼;
--port : MySQL 服務(wù)器的端口號;
--user :連接 MySQL 服務(wù)器的用戶名。
數(shù)據(jù)備份的簡單實(shí)例:
mysqldump 導(dǎo)出整個數(shù)據(jù)庫 :
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 導(dǎo)出的文件名
例: mysqldump -u linuxde -p smgp_apps_linuxde > linuxde.sql
mysqldump 導(dǎo)出一個表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名 > 導(dǎo)出的文件名
例: mysqldump -u linuxde -p smgp_apps_linuxde users > linuxde_users.sql
mysqldump 導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -u linuxde -p -d --add-drop-table smgp_apps_linuxde > linuxde_db.sql
Mydumper
mydumper
是
MySQL
數(shù)據(jù)庫備份的一個輕量級第三方開源工具,備份方式為邏輯備份,支持多線程,備份速度遠(yuǎn)高于原生態(tài)的
mysqldump
。用法為:
mydumper [OPTION...] multi-threaded MySQL dumping
常用的語法:
-B, --database 需要備份的庫
-T, --tables-list 需要備份的表,用逗號分隔
-o, --outputdir 輸出文件的目錄
-s, --statement-size 生成插入語句的字節(jié)數(shù), 默認(rèn) 1000000
-r, --rows 分裂成很多行塊表
-c, --compress 壓縮輸出文件
-e, --build-empty-files 即使表沒有數(shù)據(jù),還是產(chǎn)生一個空文件
-x, --regex 正則表達(dá)式: 'db.table'
-i, --ignore-engines 忽略的存儲引擎,用逗號分隔
-m, --no-schemas 不導(dǎo)出表結(jié)構(gòu)
-k, --no-locks 不執(zhí)行共享讀鎖 警告:這將導(dǎo)致不一致的備份
-l, --long-query-guard 設(shè)置長查詢時間,默認(rèn)60秒,
--kill-long-queries kill掉長時間執(zhí)行的查詢
-b, --binlogs 導(dǎo)出binlog
-D, --daemon 啟用守護(hù)進(jìn)程模式
-I, --snapshot-interval dump快照間隔時間,默認(rèn)60s,需要在daemon模式下
-L, --logfile 日志文件
-t, --threads 使用的線程數(shù),默認(rèn)4
-C, --compress-protocol 在mysql連接上使用壓縮協(xié)議
-V, --version Show the program version and exit
-v, --verbose 更多輸出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2
數(shù)據(jù)備份的簡單示例
1 備份單個庫
# mydumper -u 用戶名 -p 密碼 -B 需要備份的庫名 -o /tmp/bak
2 備份所有數(shù)據(jù)庫:全庫備份期間除了information_schema與performance_schema之外的庫都會被備份
# mydumper -u 用戶名 -p 密碼 -o /tmp/bak
-o 輸出文件的目錄(備份輸出指定的目錄)
3 備份單表
# mydumper -u 用戶名 -p 密碼 -B 庫名 -T 表名 -o /tmp/bak
-T 需要備份的表,多表用逗號分隔 -o指定輸出備份文件路徑
4 備份多表
# mydumper -u 用戶名 -p 密碼 -B 庫名 -T 表1,表2 -o /tmp/bak
5、當(dāng)前目錄自動生成備份日期時間文件夾,不指定-o參數(shù)及值時默認(rèn)為:export-20150703-145806
mydumper -u 用戶名 -p 密碼 -B 數(shù)據(jù)庫名字 -T 表名
6、不帶表結(jié)構(gòu)備份表
# mydumper -u 用戶名 -p 密碼 -B 數(shù)據(jù)名字 -T 表名 -m
-m 不導(dǎo)出表結(jié)構(gòu)
7、備份特定表
# mydumper -u 用戶名 -p 密碼 -B 數(shù)據(jù)庫名字 --regex=actor* -o /tmp/bak
只備份以actor*開頭的表
Xtrabackup
前兩種工具都是邏輯備份,而Xtrabackup是物理備份,是商業(yè)備份工具InnoDB Hotbackup的替代品,包含的兩個主要工具分別是xtrabackup和innobackupex。其中xtrabackup只能備份innodb和xtradb兩種引擎的表,而不能備份myisam引擎的表,而innobackupex是一個封裝了xtrabackup的Perl腳本,可同時備份innodb和myisam,但在對myisam備份時需要加一個全局的讀鎖,且myisam不支持增量備份。
另外,還有兩個相對比較小眾的工具分別是xbcrypt和xbstream ,xbcrypt是加解密用的,xbstream 類似于tar,是 Percona 自己實(shí)現(xiàn)的一種支持并發(fā)寫的流文件格式。
常用的參數(shù)
1) innobackupex 參數(shù)選項(xiàng)
--defaults-file=[MY.CNF] //指定配置文件:只能從給定的文件中讀取默認(rèn)選項(xiàng)。 且必須作為命令行上的第一個選項(xiàng);必須是一個真實(shí)的文件,它不能是一個符號鏈接。
--databases=# //指定備份的數(shù)據(jù)庫和表,格式為:--database="db1[.tb1] db2[.tb2]" 多個庫之間以空格隔開,如果此選項(xiàng)不被指定,將會備份所有的數(shù)據(jù)庫。
--include 傳遞給 xtrabackup --tables。
--tables-file=FILE //此選項(xiàng)的參數(shù)需要是一個文件名,此文件中每行包含一個要備份的表的完整名稱,格式為databasename.tablename。該選項(xiàng)傳遞給 xtrabackup --tables-file,與--tables選項(xiàng)不同,只有要備份的表的庫才會被創(chuàng)建。
--compact //創(chuàng)建緊湊型備份,忽略所有輔助索引頁,只備份data page;通過--apply-log中重建索引--rebuild-indexs。
--compress //此選項(xiàng)指示xtrabackup壓縮備份的InnoDB數(shù)據(jù)文件,會生成 *.qp 文件。
--decompress //解壓縮qp文件,為了解壓縮,必須安裝 qpress 工具。
--no-timestamp //指定了這個選項(xiàng)備份將會直接存儲在 BACKUP-DIR 目錄,不再創(chuàng)建時間戳文件夾。
想查看更多的參數(shù),請戳:
https://www.percona.com/doc/perconaxtrabackup/2.4/innobackupex/innobackupex_option_reference.html
2) xtrabackup 參數(shù)選項(xiàng)
--apply-log-only //這個選項(xiàng)使在準(zhǔn)備備份(prepare)時,只執(zhí)行重做(redo)階段,這對于增量備份非常重要。
--backup //進(jìn)行備份并將其放入
--check-privileges //此選項(xiàng)檢查Percona XtraBackup是否具有所有必需的權(quán)限。
--compact //跳過輔助索引頁來創(chuàng)建壓縮備份。
想查看更多的參數(shù),請戳:
https://www.percona.com/doc/percona-xtrabackup/LATEST/xtrabackup_bin/xbk_option_reference.html
數(shù)據(jù)備份的簡單示例
innobackupex完全備份
#備份所有數(shù)據(jù)庫:備份目錄里生成日期命名的文件夾
innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 /home/zhoujy/xtrabackup/
#備份所有數(shù)據(jù)庫:指定備份目錄
innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp /home/zhoujy/xtrabackup/
#備份指定數(shù)據(jù)庫名,多個數(shù)據(jù)庫用空格分開
innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --databases="dba_test xtra_test" /home/zhoujy/xtrabackup/
#備份指定表
備份不同庫下的不同表
1:innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --databases="dba_test.tb1 xtra_test.M" /home/zhoujy/xtrabackup/
備份一個庫下面的表,支持正則,如:--include='^mydatabase[.]mytable'
2:innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --include='xtra_test.I' /home/zhoujy/xtrabackup/
備份指定文件里的表,文件里每行的格式是:dbname.tbname
3:innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --tables-file=/tmp/tbname.txt /home/zhoujy/xtrabackup/
innobackupex 增量備份
#全量備份,這里舉例單個表,也可以是指定幾個庫,甚至所有庫
innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --databases="xtra_test.I" /home/zhoujy/xtrabackup/
#增量備份1
innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --databases="xtra_test.I" --incremental-basedir=/home/zhoujy/xtrabackup/ --incremental /home/zhoujy/increment_data/
#增量備份2
innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --no-timestamp --databases="xtra_test.I" --incremental-basedir=/home/zhoujy/increment_data/ --incremental /home/zhoujy/increment_data1/
Xtrabackup全量備份
1:指定--defaults-file
xtrabackup --defaults-file=/etc/mysql/my.cnf --user=root --password=123 --backup --target-dir=/home/zhoujy/xtrabackup/
2:用--datadir取代--defaults-file
xtrabackup --user=root --password=123 --backup --datadir=/var/lib/mysql/ --target-dir=/home/zhoujy/xtrabackup/
Xtrabackup增量備份
#備份,這里指定幾個庫和表,也可以是所有庫
1:庫全量備份
xtrabackup --user=root --password=123 --datadir=/var/lib/mysql/ --backup --parallel=3 --databases="xtra_test dba_test" --target-dir=/home/zhoujy/xtrabackup/
2:增量備份
xtrabackup --user=root --password=123 --datadir=/var/lib/mysql/ --backup --parallel=3 --databases="xtra_test dba_test" --target-dir=/home/zhoujy/xtrabackup1/ --incremental-basedir=/home/zhoujy/xtrabackup/
注意:要是有多個增量備份,第2個增量需要指定第一個增量的目錄。和innobackupex一樣。
當(dāng)前名稱:MySQL數(shù)據(jù)備份多種參數(shù)介紹及簡單示例
本文鏈接:http://chinadenli.net/article0/gojcio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿(mào)建站、電子商務(wù)、Google、網(wǎng)站內(nèi)鏈、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)