文章來源地址http://www.zghlxwxcb.cn/news/detail-710036.html
1.?在線備份
2.?離線備份
2.1.?關(guān)閉MySQL做備份是最簡單、最安全的
2.2.?所有獲取一致性副本的方法中最好的
2.3.?損壞或不一致的風(fēng)險最小
2.4.?根本不用關(guān)心InnoDB緩沖池中的臟頁或其他緩存
2.5.?不需要擔(dān)心數(shù)據(jù)在嘗試備份的過程中被修改
2.5.1.?服務(wù)器不對應(yīng)用提供訪問
3.?備份時間
3.1.?將備份復(fù)制到目的地需要多久
4.?備份負(fù)載
4.1.?在將備份復(fù)制到目的地時對服務(wù)器性能的影響有多大
4.2.?在備份服務(wù)器上壓縮而不是在MySQL服務(wù)器上
4.3.?Percona XtraBackup和MySQL Enterprise Backup這樣的工具都有限流選項(xiàng),可在使用p v時加--rate-limit選項(xiàng)來限制備份腳本的吞吐量
5.?犧牲其一以增強(qiáng)另外一個
6.?恢復(fù)時間
6.1.?把備份鏡像從存儲位置復(fù)制到MySQL服務(wù)器、重放二進(jìn)制日志等,需要多久
7.?邏輯備份
7.1.?導(dǎo)出
7.2.?以一種MySQL能夠解析的格式來包含數(shù)據(jù)
7.2.1.?SQL語句
7.2.2.?以某個符號分隔的文本
7.3.?優(yōu)點(diǎn)
7.3.1.?邏輯備份備份的文件是可以用編輯器或像grep和sed之類的命令查看和操作的普通文件
7.3.2.?恢復(fù)非常簡單
7.3.3.?可以通過網(wǎng)絡(luò)來備份和恢復(fù),也就是說,可以在與MySQL主機(jī)不同的另外一臺機(jī)器上操作
7.3.4.?可以在類似云數(shù)據(jù)庫這樣不能訪問底層文件系統(tǒng)的系統(tǒng)中使用
7.3.5.?靈活
7.3.6.?與存儲引擎無關(guān)
7.3.6.1.?消除了底層數(shù)據(jù)存儲引擎的差異
7.3.7.?有助于避免數(shù)據(jù)損壞
7.3.7.1.?如果MySQL在內(nèi)存中的數(shù)據(jù)還沒有損壞,當(dāng)不能得到一個正常的裸文件備份時,或許可以得到一個可以信賴的邏輯備份
7.4.?缺點(diǎn)
7.4.1.?必須由數(shù)據(jù)庫服務(wù)器完成生成邏輯備份的工作,因此要占用更多的CPU周期
7.4.1.1.?某些場景下比數(shù)據(jù)庫文件本身更大
7.4.2.?無法保證導(dǎo)出后再還原出來的一定是同樣的數(shù)據(jù)
7.4.2.1.?浮點(diǎn)表示的問題、軟件Bug等都會導(dǎo)致問題
7.4.3.?從邏輯備份中還原需要MySQL加載和解釋語句,將它們轉(zhuǎn)化為存儲格式,并重建索引,所有這一切會很慢
7.4.3.1.?MySQL中導(dǎo)出數(shù)據(jù)和通過SQL語句將其加載回去的龐大開銷
7.4.3.2.?如果使用邏輯備份,測試恢復(fù)需要的時間將非常重要
7.4.3.3.?邏輯備份最可怕的地方就是不確定的還原時間
8.?裸文件備份
8.1.?原始文件是指存放于硬盤上的文件
8.2.?直接復(fù)制原始文件
8.3.?優(yōu)點(diǎn)
8.3.1.?基于文件的物理備份,它只需將需要的文件復(fù)制到其他地方即可完成備份,不需要其他額外的工作來生成原始文件
8.3.2.?非常容易跨平臺、操作系統(tǒng)和MySQL版本工作
8.3.3.?從裸文件備份中恢復(fù)會更快
8.3.3.1.?MySQL服務(wù)器不需要執(zhí)行任何SQL語句或構(gòu)建索引
8.3.3.2.?如果有很大的InnoDB表,無法完全緩存到內(nèi)存中,則裸文件備份的恢復(fù)要快得多
8.3.3.2.1.?至少要快一個數(shù)量級
8.4.?缺點(diǎn)
8.4.1.?InnoDB的原始文件通常比相應(yīng)的邏輯備份要大得多
8.4.1.1.?表空間往往包含很多未使用的空間
8.4.2.?不總是可以跨平臺、操作系統(tǒng)及MySQL版本的
8.4.2.1.?文件名大小寫敏感和浮點(diǎn)格式是可能會遇到麻煩的
8.4.2.2.?對于需要長期保留或者是用于滿足法律合規(guī)要求的備份,盡量不要完全依賴裸文件備份
8.4.2.3.?每隔一段時間需要做一次邏輯備份
8.4.3.?除非經(jīng)過測試,不要假定備份(特別是裸文件備份)是正常的
8.4.3.1.?CHECK TABLES
8.4.3.2.?不建議僅對文件運(yùn)行innochecksum
9.?混合使用
9.1.?使用裸文件備份
9.2.?用得到的數(shù)據(jù)啟動MySQL服務(wù)器實(shí)例并運(yùn)行mysqlcheck
9.3.?周期性地使用mysqldump執(zhí)行邏輯備份
9.4.?優(yōu)點(diǎn)是不會使生產(chǎn)服務(wù)器在導(dǎo)出時有過度負(fù)擔(dān)
9.5.?如果能夠方便地利用文件系統(tǒng)的快照,也可以生成一個快照,將該快照復(fù)制到另外一臺服務(wù)器上并釋放,然后測試原始文件,再執(zhí)行邏輯備份
10.?備份什么
10.1.?恢復(fù)的需求決定需要備份什么
10.2.?最簡單的策略是只備份數(shù)據(jù)和表定義,但這是一個最低的要求
10.3.?非顯著數(shù)據(jù)
10.3.1.?二進(jìn)制日志和InnoDB事務(wù)日志
10.3.2.?在理想情況下,應(yīng)該把整個數(shù)據(jù)目錄和MySQL一起備份起來
10.4.?代碼
10.4.1.?現(xiàn)代的MySQL服務(wù)器可以存儲許多代碼,例如,觸發(fā)器和存儲過程
10.4.2.?實(shí)際是存放在mysql數(shù)據(jù)庫中的
10.5.?服務(wù)器配置
10.5.1.?對于服務(wù)器配置來說,備份中對生產(chǎn)服務(wù)器至關(guān)重要的任何外部配置,都十分重要
10.6.?選定的操作系統(tǒng)文件
10.6.1.?在UNIX服務(wù)器上,這可能包括cron任務(wù)、用戶和組的配置、管理腳本,以及sudo規(guī)則
11.?部分備份
11.1.?一般不包含完整的數(shù)據(jù)集
11.1.1.?因?yàn)槟承?shù)據(jù)沒有改變
11.1.2.?對減少服務(wù)器開銷、備份時間及備份空間而言都很適合
11.2.?Percona XtraBackup和MySQL Enterprise Backup,仍然會掃描服務(wù)器上的所有數(shù)據(jù)塊,因而并不會節(jié)約太多的開銷
11.2.1.?確實(shí)會減少一定量的備份時間和大量用于壓縮的CPU時間
11.2.2.?會減少磁盤空間的使用
11.3.?差異備份
11.3.1.?自上次全備份后所有改變的部分而做的備份
11.4.?增量備份
11.4.1.?對自任意類型的上次備份后的所有修改做的備份
11.4.2.?缺點(diǎn)
11.4.2.1.?會增加恢復(fù)的復(fù)雜性
11.4.2.2.?額外的風(fēng)險
11.4.2.3.?更長的恢復(fù)時間
12.?建議
12.1.?使用Percona XtraBackup和MySQL Enterprise Backup中的增量備份特性
12.2.?備份二進(jìn)制日志
12.2.1.?在每次備份后使用FLUSH LOGS來開始記錄一個新的二進(jìn)制日志,這樣就只需要備份新的二進(jìn)制日志
12.3.?如果有一些“引用”表,例如,包含不同語種、各個月的名稱列表,或者州或區(qū)域的簡寫等,可以考慮將它們單獨(dú)放在一個數(shù)據(jù)庫中,這樣就不需要每次都備份這些表
12.3.1.?一個更好的選擇可能是把這些數(shù)據(jù)放到程序代碼中,而不是保存在數(shù)據(jù)庫中
12.4.?某些數(shù)據(jù)根本不需要備份
12.4.1.?相對于從全備份中可能獲得的快速恢復(fù)時間,避免備份可以節(jié)約更多時間開銷
12.4.2.?臨時數(shù)據(jù)也不用備份
12.5.?備份所有的數(shù)據(jù),然后發(fā)送到一個有去重特性的地方
12.6.?如果可以做全備份,考慮到簡便性,建議盡量做全備份
12.6.1.?建議至少一周一次
13.?復(fù)制
13.1.?從副本中備份最大的好處是可以不干擾源庫,避免在源庫上增加額外的負(fù)載
13.1.1.?這是一個建立副本服務(wù)器的好理由,即使不需要用它做負(fù)載均衡或提供高可用性
13.2.?用GTID是非常明智的
13.2.1.?避免了必須保存有關(guān)復(fù)制過程的所有信息
13.3.?故意將一個副本延遲復(fù)制一段時間對于某些災(zāi)難場景非常有用
13.4.?源庫與副本數(shù)據(jù)不匹配是很常見的,并且MySQL沒有方法檢測這個問題
13.4.1.?唯一方法是使用Percona Toolkit中的pt-table-checksum之類的工具
13.4.2.?防止這種情況的最好方法是使用super_read_only來確保只有復(fù)制可以寫入副本
13.5.?復(fù)制不是備份
文章來源:http://www.zghlxwxcb.cn/news/detail-710036.html
到了這里,關(guān)于讀高性能MySQL(第4版)筆記14_備份與恢復(fù)(中)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!