十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
1、首先打開(kāi)mysql數(shù)據(jù)庫(kù)軟件進(jìn)入軟件主界面。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了煙臺(tái)免費(fèi)建站歡迎大家使用!
2、然后再左側(cè)樹(shù)里打開(kāi)自己的的數(shù)據(jù)庫(kù)。
3、然后需要點(diǎn)擊需要備份的數(shù)據(jù)庫(kù)名。
4、如圖所示為打開(kāi)數(shù)據(jù)庫(kù)后界面。
5、然后需要點(diǎn)擊轉(zhuǎn)儲(chǔ)sql文件選項(xiàng)。
6、然后需要打開(kāi)選擇存儲(chǔ)文件路徑并選擇保存。
7、點(diǎn)擊保存即可在路徑備份好格式為sql的數(shù)據(jù)庫(kù)文件。
數(shù)據(jù)庫(kù)最直接的備份方法就是使用自帶的mysqldump命令進(jìn)行備份。
1、 mysqldump命令備份數(shù)據(jù)
在MySQL中提供了命令行導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù)以及文件的一種方便的工具mysqldump,我們可以通過(guò)命令行直接實(shí)現(xiàn)數(shù)據(jù)庫(kù)內(nèi)容的導(dǎo)出dump,首先我們簡(jiǎn)單了解一下mysqldump命令用法:
#MySQLdump常用
mysqldump -u root -p --databases 數(shù)據(jù)庫(kù)1 數(shù)據(jù)庫(kù)2 xxx.sql
2、 mysqldump常用操作實(shí)例
2.1備份全部數(shù)據(jù)庫(kù)的數(shù)據(jù)和結(jié)構(gòu)
mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql
2.2備份全部數(shù)據(jù)庫(kù)的結(jié)構(gòu)(加 -d 參數(shù))
mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql
2.3 備份全部數(shù)據(jù)庫(kù)的數(shù)據(jù)(加 -t 參數(shù))
mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql
2.4 備份單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)和結(jié)構(gòu)(,數(shù)據(jù)庫(kù)名mydb)
mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql
2.5 備份單個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)
mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql
2.6 備份單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)
mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql2
2.7 備份多個(gè)表的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù),結(jié)構(gòu)的單獨(dú)備份方法與上同)
mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql
2.8 一次備份多個(gè)數(shù)據(jù)庫(kù)
mysqldump -uroot -p123456 --databases db1 db2 /data/mysqlDump/mydb.sql
MySQL數(shù)據(jù)庫(kù)備份與還原
備份和恢復(fù)數(shù)據(jù)
生成SQL腳本
在控制臺(tái)使用mysqldump命令可以用來(lái)生成指定數(shù)據(jù)庫(kù)的腳本文本,但要注意,腳本文本中只包含數(shù)據(jù)庫(kù)的內(nèi)容,而不會(huì)存在創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句!所以在恢復(fù)數(shù)據(jù)時(shí),還需要自已手動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)之后再去恢復(fù)數(shù)據(jù)。
mysqldump –u用戶(hù)名 –p密碼 數(shù)據(jù)庫(kù)名生成的腳本文件路徑
現(xiàn)在可以在C盤(pán)下找到mydb1.sql文件了!
注意,mysqldump命令是在Windows控制臺(tái)下執(zhí)行,無(wú)需登錄mysql?。。?/p>
執(zhí)行SQL腳本
執(zhí)行SQL腳本需要登錄mysql,然后進(jìn)入指定數(shù)據(jù)庫(kù),才可以執(zhí)行SQL腳本?。?!
執(zhí)行SQL腳本不只是用來(lái)恢復(fù)數(shù)據(jù)庫(kù),也可以在平時(shí)編寫(xiě)SQL腳本,然后使用執(zhí)行SQL 腳本來(lái)操作數(shù)據(jù)庫(kù)!大家都知道,在黑屏下編寫(xiě)SQL語(yǔ)句時(shí),就算發(fā)現(xiàn)了錯(cuò)誤,可能也不能修改了。所以我建議大家使用腳本文件來(lái)編寫(xiě)SQL代碼,然后執(zhí)行之!
SOURCE C:\mydb1.sql
注意,在執(zhí)行腳本時(shí)需要先行核查當(dāng)前數(shù)據(jù)庫(kù)中的表是否與腳本文件中的語(yǔ)句有沖突!例如在腳本文件中存在create table a的語(yǔ)句,而當(dāng)前數(shù)據(jù)庫(kù)中已經(jīng)存在了a表,那么就會(huì)出錯(cuò)!
還可以通過(guò)下面的方式來(lái)執(zhí)行腳本文件:
mysql -uroot -p123 mydb1c:\mydb1.sql
mysql –u用戶(hù)名 –p密碼 數(shù)據(jù)庫(kù)要執(zhí)行腳本文件路徑
這種方式無(wú)需登錄mysql!
1.1、 mysqldump命令備份數(shù)據(jù)
在MySQL中提供了命令行導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù)以及文件的一種方便的工具mysqldump,我們可以通過(guò)命令行直接實(shí)現(xiàn)數(shù)據(jù)庫(kù)內(nèi)容的導(dǎo)出dump,首先我們簡(jiǎn)單了解一下mysqldump命令用法:
#MySQLdump常用
mysqldump -u root -p --databases 數(shù)據(jù)庫(kù)1 數(shù)據(jù)庫(kù)2 xxx.sql
1.2、 mysqldump常用操作實(shí)例
1.備份全部數(shù)據(jù)庫(kù)的數(shù)據(jù)和結(jié)構(gòu)
mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql
2.備份全部數(shù)據(jù)庫(kù)的結(jié)構(gòu)(加 -d 參數(shù))
mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql
3.備份全部數(shù)據(jù)庫(kù)的數(shù)據(jù)(加 -t 參數(shù))
mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql
4.備份單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)和結(jié)構(gòu)(,數(shù)據(jù)庫(kù)名mydb)
mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql
5.備份單個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)
mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql
6.備份單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)
mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql
7.備份多個(gè)表的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù),結(jié)構(gòu)的單獨(dú)備份方法與上同)
mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql
8.一次備份多個(gè)數(shù)據(jù)庫(kù)
mysqldump -uroot -p123456 --databases db1 db2 /data/mysqlDump/mydb.sql
數(shù)據(jù)備份是數(shù)據(jù)容災(zāi)的最后一道防線(xiàn),即便有著兩地三中心的架構(gòu),備份也依然重要。如果備份出問(wèn)題,備份時(shí)影響了交易業(yè)務(wù),備份數(shù)據(jù)無(wú)法恢復(fù),這些也是企業(yè)難以承受的。所以選擇合適的備份工具尤為重要。
每個(gè)企業(yè)級(jí)數(shù)據(jù)庫(kù)都會(huì)有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業(yè)版中非常重要的工具之一,是為企業(yè)級(jí)客戶(hù)提供的數(shù)據(jù)備份方案。
Xtrabackup一直作為MEB 開(kāi)源版?zhèn)涮ザ嬖冢瑥腗ySQL 8.0開(kāi)始情況可能會(huì)變得有所不同。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復(fù)體驗(yàn)會(huì)更好,目前xtrabackup還不支持這些特性。
MySQL 企業(yè)版還有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理備份,為了保證備份時(shí)InnoDB引擎表與其他引擎數(shù)據(jù)文件、及binlog日志的一致性會(huì)上全局讀鎖,再拷貝非InnoDB文件,這期間MySQL會(huì)變成只讀,數(shù)據(jù)無(wú)法寫(xiě)入。表數(shù)量越多,可能加上時(shí)間越長(zhǎng),如果使用的xtrabackup 不小心沒(méi)加rsync參數(shù),逐個(gè)拷貝frm文件,鎖定時(shí)間會(huì)更長(zhǎng),對(duì)業(yè)務(wù)影響較大。
我曾遇到過(guò)部署在虛擬機(jī)的實(shí)例有12000多張表,當(dāng)時(shí)使用的xtrabackup,備份腳本中沒(méi)加rsync參數(shù),結(jié)果鎖了十幾分鐘,而MEB就沒(méi)有這樣的問(wèn)題。
MySQL 8.0支持輕量級(jí)備份鎖 LOCK INSTANCE FOR BACKUP,數(shù)據(jù)字典也重構(gòu)了由InnoDB存儲(chǔ)。若不創(chuàng)建非InnoDB表,MEB默認(rèn)使用備份鎖獲取binlog日志一致性位置,并阻止DDL操作,但不影響DML操作。
只有InnoDB表,僅上備份鎖
請(qǐng)點(diǎn)擊輸入圖片描述
若有非InnoDB表,上全局鎖
請(qǐng)點(diǎn)擊輸入圖片描述
特性2:Redo Log Archiving
MEB能做到在線(xiàn)熱備,備份時(shí)不影響數(shù)據(jù)庫(kù)讀寫(xiě),這是利用了InnoDB事務(wù)日志,在備份期間持續(xù)監(jiān)視r(shí)edo log的變化,讀取增量變化,寫(xiě)入到ibbackup_logfile,也就不需要上鎖來(lái)保障備份一致性。(對(duì)非InnoDB的文件需要上讀鎖拷貝)
如果備份期間數(shù)據(jù)庫(kù)寫(xiě)入負(fù)載特別大,而寫(xiě)入ibbackup_logfile速度較慢,redo log size也不大,很可能會(huì)出現(xiàn)ibbackup_logfile的寫(xiě)入速度跟不上redo log記錄生成速度,redo log 空間不夠時(shí)需要覆寫(xiě)日志文件,那么來(lái)不及寫(xiě)入ibbackup_logfile的記錄會(huì)丟失,導(dǎo)致備份失敗。
MEB 4.1對(duì)此做了優(yōu)化,將redo log處理線(xiàn)程拆分成多線(xiàn)程分工合作,提高處理redo log的效率,降低了redo log覆寫(xiě)造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫(xiě)入速度懸殊太大,問(wèn)題依然會(huì)發(fā)生。
MySQL 8.0.17支持了redo log archiving 徹底解決了此問(wèn)題,備份前設(shè)置innodb_redo_log_archive_dirs,指定redo log歸檔目錄。MEB備份時(shí)自動(dòng)開(kāi)啟日志歸檔,當(dāng)checkpoint時(shí)會(huì)將舊記錄歸檔到此目錄,后續(xù)從歸檔文件中讀取redo日志記錄,避免了覆寫(xiě)可能導(dǎo)致的redo記錄丟失。
請(qǐng)點(diǎn)擊輸入圖片描述
注意:innodb_redo_log_archive_dirs 不能在數(shù)據(jù)目錄下,目錄權(quán)限要求是700
特性3:Page Tracking
Page Tracking 是為優(yōu)化增量備份效率,減少不必要的數(shù)據(jù)頁(yè)掃描。
增量備份當(dāng)前有3種掃描模式:
page-track:利用LSN精確跟蹤上次備份之后被修改頁(yè)面,僅復(fù)制這些頁(yè)面,效率最快。
optimistic:掃描上次備份之后被修改的InnoDB 數(shù)據(jù)文件中,找出并拷貝修改的頁(yè)面。依賴(lài)系統(tǒng)時(shí)間,使用存在限制。
full-scan:掃描所有InnoDB數(shù)據(jù)文件,找出并拷貝自上次備份之后修改的頁(yè)面,效率最慢
1、利用page-track增量備份,需先安裝備份組件
mysql INSTALL COMPONENT "";
2、在全備前開(kāi)啟page-track
SELECT mysqlbackup_page_track_set(true);
3、全備之后,做增量備份時(shí)指定若滿(mǎn)足page tracking條件,默認(rèn)會(huì)使用page-track模式,否則會(huì)使用full-scan模式,也可以指定--incremental=page-track。
mysqlbackup --incremental-backup-dir=backup_incr --trace=3 --incremental=page-track --incremental-base=history:last_full_backup backup
incremental-base有3種選擇
last_backup:基于前一次備份做增備,前一次備份可能是增備,也可能是全備。這種方式全備之間可能會(huì)有多個(gè)增備,每次增量可能比較小,但恢復(fù)時(shí)需要逐個(gè)合并。
last_full_backup:基于前一次全備做增備。這種方式增備會(huì)越往后體積可能越大,但恢復(fù)時(shí)只需要合并最后一次增量備份。
dir:基于前一次的備份目錄,前一次備份可能是增備,也可能是全備。
測(cè)試對(duì)比f(wàn)ull-scan 和page-track ,在變更頁(yè)小于總體50%的情況下 ,備份效率至少能有1倍的速度提升。
page-track 模式 磁盤(pán)讀寫(xiě)均衡,說(shuō)明讀寫(xiě)的都是修改頁(yè)面。
請(qǐng)點(diǎn)擊輸入圖片描述
full-scan模式 磁盤(pán)讀寫(xiě)差別很大,說(shuō)明讀了很多未修改的頁(yè)面。
請(qǐng)點(diǎn)擊輸入圖片描述