本文目錄一覽:
mysql資料庫如何備份?
MySQL資料庫備份與還原
備份和恢複數據
生成SQL腳本
在控制台使用mysqldump命令可以用來生成指定資料庫的腳本文本,但要注意,腳本文本中只包含資料庫的內容,而不會存在創建資料庫的語句!所以在恢複數據時,還需要自已手動創建一個資料庫之後再去恢複數據。
mysqldump –u用戶名 –p密碼 資料庫名生成的腳本文件路徑
現在可以在C盤下找到mydb1.sql文件了!
注意,mysqldump命令是在Windows控制台下執行,無需登錄mysql!!!
執行SQL腳本
執行SQL腳本需要登錄mysql,然後進入指定資料庫,才可以執行SQL腳本!!!
執行SQL腳本不只是用來恢復資料庫,也可以在平時編寫SQL腳本,然後使用執行SQL 腳本來操作資料庫!大家都知道,在黑屏下編寫SQL語句時,就算髮現了錯誤,可能也不能修改了。所以我建議大家使用腳本文件來編寫SQL代碼,然後執行之!
SOURCE C:\mydb1.sql
注意,在執行腳本時需要先行核查當前資料庫中的表是否與腳本文件中的語句有衝突!例如在腳本文件中存在create table a的語句,而當前資料庫中已經存在了a表,那麼就會出錯!
還可以通過下面的方式來執行腳本文件:
mysql -uroot -p123 mydb1c:\mydb1.sql
mysql –u用戶名 –p密碼 資料庫要執行腳本文件路徑
這種方式無需登錄mysql!
mysql怎麼自動備份資料庫備份
打開navicat客戶端,連上mysql後,雙擊左邊你想要備份的資料庫。點擊「計劃」,再點擊「新建批處理作業」。
雙擊上面的可用任務,它就會到下面的列表裡去,代表你選擇了這個任務。
點擊保存,彈出個命名對話框,給這個任務取個名字,點擊「確定」。
點擊「設置」計劃任務。
彈出的對話框,選擇「計劃」,再點擊「新建」。
這裡設置為從2014年1月24號起每天早上九點備份該資料庫。如果你想提高備份頻率、或者設置備份截止日期,請點擊「高級」。
高級選項可以把備份設置的更精細,比如這裡設置的是在24小時內每隔2小時就備份一次。加上前面的基本設置,任務計劃就是:從2014年1月24號開始,每天九點,每隔2小時備份一次,每天的備份都持續24小時。
最後,輸入電腦密碼就大功告成。
怎樣備份mysql數據的一個表 而不是整個資料庫
複製希望你能幫助學習搜索你的問題,我只是幫著完整的谷歌搜索下
命令備份
MySQLl提供了一個mysqldump命令,我們可以使用它數據備份。
提示輸入密碼,這TM資料庫的表結構和mysqldump的-U根-P TM tm_050519.sql數據備份到tm_050519.sql,因為備份的數據量,大會佔用太多的空間,那麼你可以利用gzip壓縮數據,命令如下:
#mysqldump的U盤根-P TM | GZIP tm_050519.sql.gz BR /系統崩潰,重建系統,您就可以恢複數據:
#mysqldump的-U根P TM tm_050519.sql
直接從壓縮文件中恢復:
BR /#gzip壓縮tm_050519.sql.gz mysqldump的 – U盤根-P TM
當然,也有很多MySQL工具提供更直觀的備份和恢復功能,如phpMyAdmin是非常方便的。但我認為,mysqldump是最基本,最普遍的。
使用crontab每天定時備份mysql資料庫
系統crontab來執行備份文件,並保存備份結果按日期備份的目的。
1,創建一個保存的備份文件的路徑的/ var /備份/ mysqlbak的
目錄#mkdir-P /無功/備份/ mysqlbak
2,創建/ USR /的sbin / bakmysql的的文件
#VI的/ usr / sbin目錄/ bakmysql.sh的
! /斌/慶典
#MySQL備份腳本
CD的/ var /備份/ mysqlbak /
dateDIR =`日期+「%Y-%M-%e」’
MKDIR P $ dateDIR /數據
我的/ usr /本地/網路/ MySQL的/ bin中/ MySQL的uroot plin31415926-E「顯示資料庫」|
grep的-V「資料庫」| grep的-V 「INFORMATION_SCHEMA」`
的/ usr /本地/網路/ MySQL的/ bin中/ mysqldump的 – uroot-plin31415926我
gzip壓縮的/ var /備份/ mysqlbak / $ dateDIR / $ { I} _ $ {dateDIR}。廣州
做
3,文件屬性,使可執行文件
搭配chmod + x / usr / sbin目錄/ bakmysql
4,/ etc / crontab文件 BR /
的crontab-E
添加
01 3 ***根目錄的/ usr / sbin目錄/ bakmysql的
#3點鐘,每天進行備份
所以每天都可以在/ var /備份/備份SQL文件mysqlbak的看到!
mysql到底如何備份
數據備份是數據容災的最後一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業務,備份數據無法恢復,這些也是企業難以承受的。所以選擇合適的備份工具尤為重要。
每個企業級資料庫都會有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業版中非常重要的工具之一,是為企業級客戶提供的數據備份方案。
Xtrabackup一直作為MEB 開源版備胎而存在,從MySQL 8.0開始情況可能會變得有所不同。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復體驗會更好,目前xtrabackup還不支持這些特性。
MySQL 企業版還有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理備份,為了保證備份時InnoDB引擎表與其他引擎數據文件、及binlog日誌的一致性會上全局讀鎖,再拷貝非InnoDB文件,這期間MySQL會變成只讀,數據無法寫入。表數量越多,可能加上時間越長,如果使用的xtrabackup 不小心沒加rsync參數,逐個拷貝frm文件,鎖定時間會更長,對業務影響較大。
我曾遇到過部署在虛擬機的實例有12000多張表,當時使用的xtrabackup,備份腳本中沒加rsync參數,結果鎖了十幾分鐘,而MEB就沒有這樣的問題。
MySQL 8.0支持輕量級備份鎖 LOCK INSTANCE FOR BACKUP,數據字典也重構了由InnoDB存儲。若不創建非InnoDB表,MEB默認使用備份鎖獲取binlog日誌一致性位置,並阻止DDL操作,但不影響DML操作。
只有InnoDB表,僅上備份鎖
請點擊輸入圖片描述
若有非InnoDB表,上全局鎖
請點擊輸入圖片描述
特性2:Redo Log Archiving
MEB能做到在線熱備,備份時不影響資料庫讀寫,這是利用了InnoDB事務日誌,在備份期間持續監視redo log的變化,讀取增量變化,寫入到ibbackup_logfile,也就不需要上鎖來保障備份一致性。(對非InnoDB的文件需要上讀鎖拷貝)
如果備份期間資料庫寫入負載特別大,而寫入ibbackup_logfile速度較慢,redo log size也不大,很可能會出現ibbackup_logfile的寫入速度跟不上redo log記錄生成速度,redo log 空間不夠時需要覆寫日誌文件,那麼來不及寫入ibbackup_logfile的記錄會丟失,導致備份失敗。
MEB 4.1對此做了優化,將redo log處理線程拆分成多線程分工合作,提高處理redo log的效率,降低了redo log覆寫造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫入速度懸殊太大,問題依然會發生。
MySQL 8.0.17支持了redo log archiving 徹底解決了此問題,備份前設置innodb_redo_log_archive_dirs,指定redo log歸檔目錄。MEB備份時自動開啟日誌歸檔,當checkpoint時會將舊記錄歸檔到此目錄,後續從歸檔文件中讀取redo日誌記錄,避免了覆寫可能導致的redo記錄丟失。
請點擊輸入圖片描述
注意:innodb_redo_log_archive_dirs 不能在數據目錄下,目錄許可權要求是700
特性3:Page Tracking
Page Tracking 是為優化增量備份效率,減少不必要的數據頁掃描。
增量備份當前有3種掃描模式:
page-track:利用LSN精確跟蹤上次備份之後被修改頁面,僅複製這些頁面,效率最快。
optimistic:掃描上次備份之後被修改的InnoDB 數據文件中,找出並拷貝修改的頁面。依賴系統時間,使用存在限制。
full-scan:掃描所有InnoDB數據文件,找出並拷貝自上次備份之後修改的頁面,效率最慢
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模式 磁碟讀寫差別很大,說明讀了很多未修改的頁面。
請點擊輸入圖片描述
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248423.html