步驟如下:
專業(yè)從事網(wǎng)站設計、網(wǎng)站建設,高端網(wǎng)站制作設計,小程序制作,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術團隊竭力真誠服務,采用HTML5+CSS3前端渲染技術,響應式網(wǎng)站建設,讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
1、首先打開navicat,找到需要備份的數(shù)據(jù)庫,并且打開,如圖所示。
2、點擊【備份】按鈕-點擊【新建備份】按鈕,如圖所示。在彈出的窗口中點擊【開始】,開始執(zhí)行備份,當看到successfully字樣的時候說明備份成功。備份的文件可位置在文件屬性中查看,其擴展名為psc。
3、還原數(shù)據(jù)庫,請點擊【還原備份】按鈕,如圖所示。在彈出的窗口中選擇之前備份好的psc文件,點擊開始還原即可。同樣,看到successfully字樣,說明還原成功。如圖所示。
數(shù)據(jù)備份是數(shù)據(jù)容災的最后一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業(yè)務,備份數(shù)據(jù)無法恢復,這些也是企業(yè)難以承受的。所以選擇合適的備份工具尤為重要。
每個企業(yè)級數(shù)據(jù)庫都會有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業(yè)版中非常重要的工具之一,是為企業(yè)級客戶提供的數(shù)據(jù)備份方案。
Xtrabackup一直作為MEB 開源版?zhèn)涮ザ嬖?,從MySQL 8.0開始情況可能會變得有所不同。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復體驗會更好,目前xtrabackup還不支持這些特性。
MySQL 企業(yè)版還有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理備份,為了保證備份時InnoDB引擎表與其他引擎數(shù)據(jù)文件、及binlog日志的一致性會上全局讀鎖,再拷貝非InnoDB文件,這期間MySQL會變成只讀,數(shù)據(jù)無法寫入。表數(shù)量越多,可能加上時間越長,如果使用的xtrabackup 不小心沒加rsync參數(shù),逐個拷貝frm文件,鎖定時間會更長,對業(yè)務影響較大。
我曾遇到過部署在虛擬機的實例有12000多張表,當時使用的xtrabackup,備份腳本中沒加rsync參數(shù),結(jié)果鎖了十幾分鐘,而MEB就沒有這樣的問題。
MySQL 8.0支持輕量級備份鎖 LOCK INSTANCE FOR BACKUP,數(shù)據(jù)字典也重構了由InnoDB存儲。若不創(chuàng)建非InnoDB表,MEB默認使用備份鎖獲取binlog日志一致性位置,并阻止DDL操作,但不影響DML操作。
只有InnoDB表,僅上備份鎖
請點擊輸入圖片描述
若有非InnoDB表,上全局鎖
請點擊輸入圖片描述
特性2:Redo Log Archiving
MEB能做到在線熱備,備份時不影響數(shù)據(jù)庫讀寫,這是利用了InnoDB事務日志,在備份期間持續(xù)監(jiān)視redo log的變化,讀取增量變化,寫入到ibbackup_logfile,也就不需要上鎖來保障備份一致性。(對非InnoDB的文件需要上讀鎖拷貝)
如果備份期間數(shù)據(jù)庫寫入負載特別大,而寫入ibbackup_logfile速度較慢,redo log size也不大,很可能會出現(xiàn)ibbackup_logfile的寫入速度跟不上redo log記錄生成速度,redo log 空間不夠時需要覆寫日志文件,那么來不及寫入ibbackup_logfile的記錄會丟失,導致備份失敗。
MEB 4.1對此做了優(yōu)化,將redo log處理線程拆分成多線程分工合作,提高處理redo log的效率,降低了redo log覆寫造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫入速度懸殊太大,問題依然會發(fā)生。
MySQL 8.0.17支持了redo log archiving 徹底解決了此問題,備份前設置innodb_redo_log_archive_dirs,指定redo log歸檔目錄。MEB備份時自動開啟日志歸檔,當checkpoint時會將舊記錄歸檔到此目錄,后續(xù)從歸檔文件中讀取redo日志記錄,避免了覆寫可能導致的redo記錄丟失。
請點擊輸入圖片描述
注意:innodb_redo_log_archive_dirs 不能在數(shù)據(jù)目錄下,目錄權限要求是700
特性3:Page Tracking
Page Tracking 是為優(yōu)化增量備份效率,減少不必要的數(shù)據(jù)頁掃描。
增量備份當前有3種掃描模式:
page-track:利用LSN精確跟蹤上次備份之后被修改頁面,僅復制這些頁面,效率最快。
optimistic:掃描上次備份之后被修改的InnoDB 數(shù)據(jù)文件中,找出并拷貝修改的頁面。依賴系統(tǒng)時間,使用存在限制。
full-scan:掃描所有InnoDB數(shù)據(jù)文件,找出并拷貝自上次備份之后修改的頁面,效率最慢
1、利用page-track增量備份,需先安裝備份組件
mysql INSTALL COMPONENT "";
2、在全備前開啟page-track
SELECT mysqlbackup_page_track_set(true);
3、全備之后,做增量備份時指定若滿足page tracking條件,默認會使用page-track模式,否則會使用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:基于前一次備份做增備,前一次備份可能是增備,也可能是全備。這種方式全備之間可能會有多個增備,每次增量可能比較小,但恢復時需要逐個合并。
last_full_backup:基于前一次全備做增備。這種方式增備會越往后體積可能越大,但恢復時只需要合并最后一次增量備份。
dir:基于前一次的備份目錄,前一次備份可能是增備,也可能是全備。
測試對比full-scan 和page-track ,在變更頁小于總體50%的情況下 ,備份效率至少能有1倍的速度提升。
page-track 模式 磁盤讀寫均衡,說明讀寫的都是修改頁面。
請點擊輸入圖片描述
full-scan模式 磁盤讀寫差別很大,說明讀了很多未修改的頁面。
請點擊輸入圖片描述
1、首先打開phpstudy數(shù)據(jù)庫安裝目錄,點擊客戶端中其他選項菜單中MySQL工具,點擊打開數(shù)據(jù)庫目錄。
2、在bin文件目錄下按shift鍵+右鍵點擊在此處打開命令提示窗口。
3、語法輸入mysqldump.exe -u? 用戶名 -p 數(shù)據(jù)庫名稱? 導出路徑。在桌面建立1.sql文件,將文件直接拖入命令提示框中導出路徑中確認,輸入密碼root。
4、然后查看1.sql文件即導出成功。
5、然后進入數(shù)據(jù)庫命令行模式,將剛才導出的test數(shù)據(jù)庫進行刪除掉。
6、先建立一個test名稱數(shù)據(jù)庫或者直接選擇其他數(shù)據(jù)庫,選擇test數(shù)據(jù)庫之后然后在進行導入,查看數(shù)據(jù)表被導入。
備份方案一: 通過 mysqldump命令,直接生成一個完整的 .sql 文件
Step 1: 創(chuàng)建一個批處理
(說明:root 是mysql默認用戶名, aaaaaa 是mysql密碼, bugtracker 是數(shù)據(jù)庫名)
------------mySql_backup.bat--------------------------------------------------------------------------------------
d:
cd D:/AppServ/MySQL/bin
mysqldump -uroot -paaaaaa bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker_back.sql
exit
Step 2: 創(chuàng)建一個計劃任務
"Start" -- "Control Panel" -- "Administrative Tools" -- "Task Scheduler"
"Create A Basic Task" -- --- "Daily" (注意設置后面的 時 分 秒) -- ---- "Start a Program" -- "Browser" (定位選擇到你剛才創(chuàng)建的批處理mySql_backup.bat) -- --- "Finish"
對應的還原方法
創(chuàng)建一個處理:
----------mySql_restore.bat-------
d:
cd D:/AppServ/MySQL/bin
mysql -uroot -paaaaaa bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker_back.sql
exit
雙擊它即可自動執(zhí)行還原
備份方案二: 通過 xcopy 命令,直接把Mysql 的 data 目錄下的對應的數(shù)據(jù)庫全部的文件全部 copy 出來
創(chuàng)建批處理:
xcopy D:/AppServ/MySQL/data/bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker/ /e /h /d /y /r /v /f /k
exit
對應的還原方法
把 E:/DataBase/Mysql_bugtracker_backup 目錄下的 bugtracker文件夾 直接 copy 到 D:/AppServ/MySQL/data 目錄下,把這個目錄的bugtracker文件夾 全部履蓋掉
備份方案三:安裝Navicat For MySql 工具,通過它的 Schedule 功能設置自動備份
Schedule -- New Batch Job
在新彈出的頁面中 選擇你的 DB (eg: bugtracker ),然后在右邊面板(Available Jobs)中你會看到“Backup bugtracker”,雙擊它,它會出現(xiàn)在下邊面板---
對應的還原方法:
找到上述目錄下對應的最新的 .psc 文件,然后通過Navicat For Mysql 工具還原