欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析MySQL 備份與恢復

 更新時間:2020年08月19日 09:32:57   作者:霍思通  
這篇文章主要介紹了MySQL 備份與恢復的相關資料,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下

1、簡介

數(shù)據無價,MySQL作為一個數(shù)據庫系統(tǒng),其備份自然也是非常重要且有必要去做。備份的理由千千萬,預防故障,安全需求,回滾,審計,刪了又改的需求等等,備份的重要性不言而喻。除了備份本身, 如何使用備份來恢復 服務也是一項重點內容,不能用來恢復的備份沒有意義。本文主要會針對備份和恢復這兩方面做一些簡單的介紹。

本文為《高性能MySQL》備份相關章節(jié)的讀書筆記。

2、備份和恢復的簡單定義

正如簡介所說,備份人盡皆知,也很容易引起人的重視。根據需求寫定期腳本,或者使用其他方式都是比較常見的。但是恢復就沒有那么引人注目了。比如說,也許會每周/每天定期進行自動備份。但是多久會進行一次備份的恢復測試?備份的內容是否完成?是否可用于恢復?如果出現(xiàn)故障,恢復的流程是否易操作?

備份只是數(shù)據源, 如何使用數(shù)據源 , 徹底恢復系統(tǒng) 這個過程。也非常重要。備份與恢復,都是MySQL運維中需要掌握的內容。

備份的意義在于恢復。如果不能恢復,那就不叫備份(比如RAID陣列不是備份,如果DROP DATABASE,RAID陣列不能恢復)

[還原] 和 [恢復] 的區(qū)別:

  • 還原:僅指將備份文件中的內容提取出來并加載。
  • 恢復:包括還原備份文件在內的一系列措施,目的是讓服務恢復正常運行,比如重啟MySQL,修改配置等其他操作 。

也就是說,恢復是要恢復到異常出前,采取的所有操作(比如修改參數(shù),重啟服務等)。不僅僅只是還原備份。

3、恢復計劃需要考慮的幾個因素

恢復計劃在設計的時候,需要考慮一些因素,從而根據不同的需求進行更好的規(guī)劃??梢愿鶕PO(恢復點目標)和RTO(恢復時間目標)這兩個需求來協(xié)助制定合適的恢復策略。

  • RPO(恢復點目標):可以容忍丟失多少數(shù)據?(需要恢復所有數(shù)據,還是能容忍上一次備份以來的數(shù)據丟失?)
  • RTO(恢復時間目標):需要等待多久將數(shù)據恢復?(用戶能接受到什么程度)

也許還需考慮:需要恢復什么?(整個服務器,單個庫,單個表,還是事務)

其次,恢復計劃需要定期進行測試,抽出數(shù)據測試備份確實有效、實際進行一次完整的備份恢復,熟悉整個恢復流程,確保真正發(fā)生問題時,可以有條不紊的完成恢復。

4、備份

4.1、備份內容包括什么?

最簡單的策略就是 只備份數(shù)據和表定義 。但是恢復數(shù)據庫需要更多內容,如果能備份的越充足,那么恢復起來也就更容易。(主要還是 根據需求 )

比如可以根據實際情況,考慮備份如下內容:

1、Binlog和InnoDB事務日志。

2、主/從庫配置文件。

3、數(shù)據庫操作系統(tǒng)配置(cron、腳本、內核參數(shù))

或者說,根據需要進行備份內容的擴展。如果對于數(shù)據庫恢復、甚至重建有很高需求(比如要求更快恢復),那么備份更多的內容也必不可少。如果需要有從0恢復數(shù)據庫的能力,那需要做更多工作。

4.2、物理備份與邏輯備份

備份種類 邏輯備份 物理備份
簡介 利用mysqldump等命令實現(xiàn)備份 直接復制數(shù)據庫文件
優(yōu)點 可以文本編輯,恢復簡單,使用mysqldump備份靈活。 足夠直觀,備份和恢復過程,本質上就是文件的移動?;謴退俣雀?。MySQL服務器幾乎不需要執(zhí)行操作。
缺點 備份和恢復都需要MySQL服務參與、且占用CPU資源。有可能很慢 InnoDB的原始文件通常比邏輯備份大得多。

物理備份和邏輯備份的一點抉擇:

  • 對于大數(shù)據庫,必須有物理備份。邏輯備份太慢,也可考慮基于快照的備份做輔助。
  • 對于小數(shù)據庫,邏輯備份幾乎就可以了。

物理備份簡單高效,邏輯備份盡量也要做。【兩者都要有,看具體需求和資源分配】

其次:除非經過測試,否則不能假設備份可用。比如使用 mysqlcheck -A 測試數(shù)據庫。

4.3、Binlog備份

Binlog也是備份中的重要一環(huán),因為基于時間點的恢復需要用到它。而且Binlog一般很小,頻繁的備份也較容易實現(xiàn)。如果有某個時間點的數(shù)據備份,加上自那以后的所有Binlog,就可以回滾所有變動。

4.3.1、備份Binlog的一些策略

FLUSH LOGS
--log_slave_updata

需要注意的是,expire_log_days是通過 日志文件的修改時間 來判斷的,而不是內容。(如果一直只有一個Binlog文件,可能就不會清理)。所以一定要使用 FLUSH LOGS 定期刷新Binlog。

4.3.2、老Binlog的清理

最好使用expire_log_days來進行自動的清理,保留一定天數(shù)。如果需要用cron清理。那么 不要使用 find+rm配置的cron清理日志。

0 3 * * * /usr/bin/mysql /var/log/mysql -mtime +N -name "mysql-bin.[0-9]"* | xargs rm

使用如下cron代替:

0 3 * * * /usr/bin/mysql -e "PURGE MASTER LOGS BEFORE CURRENT_DATE - INTERVAL N DAY"

4.3.3、Binlog備份的幾點注意事項

  • 增長保存時間只是一種配置,不代表Binlog本身就不需要備份。Binlog仍然需要定期備份,以便可以結合最近的備份使用。
  • 需要注意的是,從庫也使用Binlog。所以需要 區(qū)分從庫和備份的Binlog管理 。

4.4、增量備份與差異備份

增量備份:自任意類型備份后,改動的所有內容的備份。

差異備份:特指自上次 全備份 之后,改動的所有內容的備份。

也就是說,差異備份基于全備份。而增量備份基于任意備份(比如某一個指定的差異備份。

差異備份可選項:

  • 不要備份沒有改變的表。
  • 不要備份沒有改變的行

雖然這樣做差異備份可以提高恢復速度。但是全備份還是很有必要的。( 全備份可以頻率低,但是必須有 )。

4.5、從庫備份

在從庫中備份,有時候是一個 可選項 ,不會干擾到主庫,避免給主庫增加更多的負載。其次,當計劃從從庫備份的時候,要保存更多信息,比如從庫相對于主庫的位置(偏移)等。

首先 從庫不等于備份 ,從庫和主庫數(shù)據不匹配是很常見的。其次、從從庫備份確實可以減輕主庫備份時的負載,但是不夠好。穩(wěn)定起見,還是建議進行主庫備份、全備份。

4.6、其他注意事項

4.6.1、在線備份與離線備份

離線備份是最簡單最安全的。也是一致性最好的。問題就是,大部分數(shù)據庫不能接受停機備份。所以基本還是用在線備份,或者說不停機備份

可以考慮在業(yè)務低峰期進行在線備份,即使負載增大也不會有太大影響。

4.6.2、數(shù)據一致性

數(shù)據一致性:對于多個表之間數(shù)據的一致性要求。(比如兩個邏輯相關的操作分在了兩個事務內,而備份在兩個事務之間執(zhí)行,就會導致數(shù)據不一致)

InnoDB可以在轉儲一組相關表的時候,開始一個事務,這樣可以很大程度上保證數(shù)據的一致性。

但是也要注意,如果事務設置的不合理,比如一組相關表的修改分在了兩個事務內,這仍然會導致數(shù)據不一致。( 一組表的相關操作需要確保在一個事務內 )

4.6.3、定期進行備份恢復測試,確認整個恢復過程需要的資源

能恢復的備份才有價值,不是有備份就可以

小結

本文講解了一些備份的基本知識和概念,包括一些基本概念、恢復的重要性、備份和恢復的簡單策略。還提及到了備份內容的選擇、差異/增量備份、Binlog備份等。后續(xù)還需要繼續(xù)學習,了解備份和恢復的具體操作方法和實踐。

以上就是淺析MySQL 備份與恢復的詳細內容,更多關于MySQL 備份與恢復的資料請關注腳本之家其它相關文章!

相關文章

  • mysql中union和union?all的使用及注意事項

    mysql中union和union?all的使用及注意事項

    這篇文章主要給大家介紹了關于mysql中union和union?all的使用及注意事項的相關資料,需要的朋友可以參考下
    2022-08-08
  • SQL SERVER 2005 最小安裝經驗

    SQL SERVER 2005 最小安裝經驗

    很久以前有個疑問 安裝SQL SERVER 2005后為什么會把VS2005給裝上了,當時很郁悶,試想是不是在哪個環(huán)節(jié)把VS2005組件勾上的?
    2011-02-02
  • MySQL8.0 Undo Tablespace管理詳解

    MySQL8.0 Undo Tablespace管理詳解

    本文主要介紹了MySQL8.0 Undo Tablespace管理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Ubuntu配置Mysql主從數(shù)據庫

    Ubuntu配置Mysql主從數(shù)據庫

    MySQL數(shù)據庫支持數(shù)據庫的主從復制功能,因此在集群方面具有其獨特的優(yōu)勢。眾多國內外大型網站架構體系中,均采用了MySQL的主從數(shù)據庫配置來實現(xiàn)查詢負載、數(shù)據庫熱備等功能。本人在實際的Web項目中也涉及到這一需求,在此將如何配置實現(xiàn)做個簡單小結。
    2014-07-07
  • mysql表的內連和外連實戰(zhàn)記錄

    mysql表的內連和外連實戰(zhàn)記錄

    在開發(fā)中我們的業(yè)務需求有時候是復雜的,多張表聯(lián)合查詢的時候是有多種方式的,面對不同的需求,靈活使用不同的表連接方式,這篇文章主要給大家介紹了關于mysql表內連和外連的相關資料,需要的朋友可以參考下
    2024-01-01
  • centos7.3 安裝mysql5.7.18的詳細教程

    centos7.3 安裝mysql5.7.18的詳細教程

    這篇文章主要介紹了centos7.3 安裝mysql5.7.18的詳細教程,需要的朋友可以參考下
    2017-06-06
  • MySQL InnoDB 事務鎖源碼分析

    MySQL InnoDB 事務鎖源碼分析

    InnoDB 事務鎖,事務鎖實現(xiàn)起來的代碼卻是又臭又硬的好大一坨,各種細節(jié),今天小編在這里整理一個源碼閱讀筆記,把那一坨加鎖相關的代碼提煉出來,感興趣的小伙伴別忘記收藏奧
    2021-09-09
  • MySQL中隨機生成固定長度字符串的方法

    MySQL中隨機生成固定長度字符串的方法

    在MySQL中有時需要隨機生成數(shù)字或字符串,隨機生產數(shù)字可直接使用rand()函數(shù),但是要隨機生成字符串就比較麻煩。
    2010-12-12
  • MySQL使用LVM快照實現(xiàn)備份

    MySQL使用LVM快照實現(xiàn)備份

    本文給大家詳細的說明了使用LVM快照的方式來為Mysql制作備份的方法和步驟,有需要的小伙伴可以參考下
    2016-11-11
  • C#列出局域網中可用SQL Server服務器

    C#列出局域網中可用SQL Server服務器

    SQLDMO(SQL Distributed Management Objects,SQL分布式管理對象)封裝了Microsoft SQL Server數(shù)據庫中的對象。SQLDMO是Microsoft SQL Server中企業(yè)管理器所使用的應用程序接口,所以它可以執(zhí)行很多功能,其中當然也包括對數(shù)據庫的備份和恢復。
    2008-04-04

最新評論