mysql資料庫備份機制 mysql備份機制有哪些

2021-10-17 20:15:16 字數 2104 閱讀 8421

只有innodb表,僅上備份鎖

輸入描述

若有非innodb表,上全域性鎖

輸入描述

特性2:redo log archiving

如果備份期間資料庫寫入負載特別大,而寫入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 "file://component_mysqlbackup";

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模式 磁碟讀寫差別很大,說明讀了很多未修改的頁面。

輸入描述

mysql備份策略 資料庫備份策略之mysql

由於mysql存在多種資料庫備份方式,而且各有利弊,對於我們初學者來說,選擇合適的備份方式確實有些困難。個人覺得,首先要基於專案的需求,考慮能夠容忍丟失多少資料 花多少人力時間成本等,這是我們制定備份方案的依據,同時制定出來的方案要可執行,要執行,不能把方案當作紙上談兵。作為資料安全的乙個重要內容 ...

資料庫mysql軟體安裝 資料庫軟體mysql安裝

2.解壓至欲安裝的目錄下 3.開啟cmd,進入軟體目錄下d qmdownload mysql 5.7.24 winx64 bin,執行mysqld 4.初始化使用者 cmd d qmdownload mysql 5.7.24 winx64 bin,執行mysqld initialize insecu...

MySQL資料庫備份

晏子 在資料庫表丟失或損壞的情況下,備份你的資料庫是很重要的。如果發生系統崩潰,你肯定想能夠將你的表盡可能丟失最少的資料恢復到崩潰發生時的狀態。有時,正是mysql管理員造成破壞。管理員已經知道表以破壞,用諸如vi或emacs等編輯器試圖直接編輯它們,這對錶絕對不是件好事!備份資料庫兩個主要方法是用...