MySQLdump是mysql用于轉(zhuǎn)存儲(chǔ)數(shù)據(jù)庫(kù)的實(shí)用程序。它主要產(chǎn)生一個(gè)SQL腳本,其中包含從頭重新創(chuàng)建數(shù)據(jù)庫(kù)所必需的命令CREATE TABLE INSERT等

創(chuàng)新互聯(lián)是專業(yè)的德宏州網(wǎng)站建設(shè)公司,德宏州接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行德宏州網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
mysqldump 語(yǔ)法 :
默認(rèn)配置讀取路徑: /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
常用參數(shù) : -u, --user=name 指定用戶 -h, --host=name 指定主機(jī) -p, --password[=name] 指定密碼 -A, --all-databases 指定所有庫(kù),-A與--all-databases不同時(shí)使用 -B, --databases 只指定--databases表示備份單個(gè)數(shù)據(jù)庫(kù);多數(shù)據(jù)庫(kù)之間使用空格隔開; 如果不指定--databases表示備份整個(gè)數(shù)據(jù)庫(kù);只指定dbname表示備份單張表;多表之間使用空格隔開 --master-data[=#] 0 表示關(guān)閉,默認(rèn)值為 0 1 表示開頭打印CHANGE MASTER命令信息,在復(fù)制場(chǎng)景中有用 2 表示添加注釋信息,記錄當(dāng)前所處二進(jìn)制日志及所處位置 --single-transaction 如果全部為 InnoDB引擎表,則不需要使用 --lock-all-tables; 基于此選項(xiàng)能實(shí)現(xiàn)熱備InnoDB表;會(huì)啟動(dòng)單個(gè)大事務(wù),對(duì)全局服務(wù)影響可能是持久的 --lock-all-tables 執(zhí)行備份前請(qǐng)求鎖定表,一般只鎖定當(dāng)前要備份的數(shù)據(jù)庫(kù)及表 --add-drop-database 在恢復(fù)之前先刪除已經(jīng)存在的對(duì)應(yīng)數(shù)據(jù)庫(kù) --add-drop-table 在恢復(fù)之前先刪除已經(jīng)存在的對(duì)應(yīng)表 -C, --compress 將數(shù)據(jù)先壓縮后通過網(wǎng)絡(luò)傳輸 -E, --events 備份數(shù)據(jù)同時(shí),備份事件調(diào)度器代碼 -R, --routines 備份數(shù)據(jù)同時(shí),備份存儲(chǔ)過程和存儲(chǔ)函數(shù) -d, --no-data 表示只備份表結(jié)構(gòu)不備份數(shù)據(jù),復(fù)制表結(jié)構(gòu)、空庫(kù)至其它服務(wù)器時(shí)有用.其它任何時(shí)候不可用 --opt 同時(shí)啟動(dòng)各種高級(jí)選項(xiàng)
備份方式 :
全量+增量+二進(jìn)制日志
前提需要在配置中添加參數(shù) :
default-storage-engine = InnoDB 設(shè)置默認(rèn)存儲(chǔ)引擎為InnoDB
innodb_file_per_table=1 設(shè)置每表單個(gè)表空間
log-bin=mysql-bin 啟用二進(jìn)制功能
備份過程 :
全量備份 :
使用InnoDB引擎,備份使用--single-transaction選項(xiàng)不需要鎖定表即實(shí)現(xiàn)熱備;使用非InnoDB引擎,備份需要使用--lock-all-tables選項(xiàng)進(jìn)行請(qǐng)求鎖定所有表后開始備份
mysqldump -uroot -pmypass --single-transaction --all-databases --master-data=2 > /backup/mysql_fullbak.sql
增量備份 :
mysql>SHOW MASTER STATUS; 查看當(dāng)前處于哪個(gè)日志文件及位置
less /backup/mysql_fullbak.sql 查看從哪個(gè)位置開始
mysqlbinlog --start-position=4579 --stop-position=4868 mysql-bin.000015 > /backup/increment.sql 指定開始及結(jié)束位置導(dǎo)出成增量備份
二進(jìn)制日志備份:
mysql>INSERT INTO test (Name,Age) VALUES ('tom',18); 增量備份后,插入一條數(shù)據(jù)
mysql>DROP DATABASE hello; 此時(shí)刪除數(shù)據(jù)庫(kù)
mysql>SHOW MASTER STATUS; 查看當(dāng)前處于哪個(gè)日志文件及位置
mysqlbinlog --start-position=4868 mysql-bin.000015 查看數(shù)據(jù)庫(kù)崩潰前二進(jìn)制日志開始位置,結(jié)束位置必須是數(shù)據(jù)庫(kù)刪除之前位置
mysqlbinlog --start-position=4868 --stop-position=5062 mysql-bin.000015 > /tmp/hello.sql 將二進(jìn)制日志啟動(dòng)時(shí)位置至崩潰前位置數(shù)據(jù)導(dǎo)出恢復(fù)過程 : 前提 : 清空數(shù)據(jù)目錄下所有文件,重新初始化數(shù)據(jù)庫(kù) mysql>SET GLOBAL sql_log_bin=0; 恢復(fù)時(shí)需要臨時(shí)關(guān)閉二進(jìn)制日志,如不關(guān)閉,恢復(fù)數(shù)據(jù)將記錄進(jìn)二進(jìn)制日志增加日志管理難度 mysql>FLUSH LOGS; 手動(dòng)對(duì)二進(jìn)制日志進(jìn)行一次滾動(dòng) mysql < /backup/mysql_fullbak.sql 恢復(fù)全量備份 mysql < /backup/increment.sql 恢復(fù)增量備份 mysql < /tmp/hello.sql 恢復(fù)崩潰前導(dǎo)出二進(jìn)制數(shù)據(jù) mysql>SET GLOBAL sql_log_bin=1; 恢復(fù)完成開啟二進(jìn)制日志
恢復(fù)后需要使用 mysqlcheck -uroot -pmypass -c -all-databases 檢查所有表是否存在問題,所有恢復(fù)完成后請(qǐng)記得對(duì)數(shù)據(jù)庫(kù)做一次全量備份
至此,使用mysqldump備份恢復(fù)完成,如有錯(cuò)誤請(qǐng)大家指教!
網(wǎng)站欄目:mysql備份、恢復(fù)之mysqldump
地址分享:http://www.chinadenli.net/article32/iiissc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)公司、軟件開發(fā)、網(wǎng)站改版、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)