MySQL 備份與主從復制

文章目錄

  • 備份
  • 主從復制
    • 主從復制的作用


備份

根據備份方法的不同,備份可劃分為以下幾種類型:

  • 熱備(Hot Backup) : 熱備指的是在數據庫運行的時候直接備份,并且對正在運行的數據庫毫無影響,這種方法在 MySQL 官方手冊中又被稱為在線備份。
  • 冷備(Cold Backup) : 冷備指的是在數據庫停止的時候進行備份,這種方法十分簡單,就是直接復制相關的數據庫物理文件,這種方法在 MySQL 官方手冊中被稱為離線備份。
  • 溫備(Warm Backup) : 溫備與熱備相同有一點相同,即兩者都是在數據庫運行時進行備份,但是溫備會對數據庫當前的操作產生影響,因此需要加一個全局讀鎖(不妨礙其他事務的讀操作,但阻塞寫操作)來保證備份數據的一致性。

按照備份文件的內容,備份又可以分為:

  • 邏輯備份: 邏輯備份即直接備份數據庫中的一條條SQL語句或者表內的數據,通常是可讀的文本文件。這種方法的好處是我們可以觀察導出備份文件的內容,但是由于恢復時需要重新執行這些命令和導入數據,所以恢復的時間往往較長
  • 裸文件備份: 裸文件備份即復制數據庫的物理文件,既可以在運行時進行復制,也可以在停止時進行復制,并且這類備份的恢復時間往往要比邏輯備份要快很多

按照備份數據庫的內容,備份又可以分為:

  • 完全備份 : 對數據庫進行一個完整的備份
  • 增量備份 : 在上次完全備份的基礎上對后續更改的數據進行備份
  • 日志備份 : 對二進制日志的備份

不僅僅只有以上方法,我們還可以通過主從復制,利用從服務器作為備份。


主從復制

主從復制是 MySQL 中提供的高可用的解決方案,步驟如下:

  1. 主服務器把數據更改到 二進制日志(binlog) 中;
  2. 從服務器把主服務器的二進制日志復制到自己的 中繼日志(relay log) 中;
  3. 從服務器重做中繼日志中的日志,把更改的內容應用到自己的數據庫中,達到數據的最終一致性。

這種復制其實就是完全備份+日志備份的還原,并且為了保證數據的一致性,二進制日志的還原操作基本實時在進行。具體工作原理如下圖所示:
在這里插入圖片描述

可以看到,從服務器有兩個線程,一個是I/O線程,一個是SQL線程:

  • I/O線程負責讀取主服務器的二進制日志,并將其保存到從服務器的中繼日志中
  • SQL線程負責執行中繼日志,并執行其中的SQL語句

主從復制的作用

復制不僅僅可以用來做備份,還可以用作以下幾種功能:

  1. 讀取的負載均衡 : 由于主從服務器中的數據一致,所以可以將讀取平均的分布到從服務器中,減少主服務器的壓力。
  2. 數據分布 : 可以在不同的服務器之間實現數據的復制。
  3. 高可用和故障轉移 : 在主服務器發生故障的時候,可以使用從服務器進行頂替,減少故障的停機時間和恢復時間。

如果某一程序員刪庫跑路,或者我們進行了一些刪庫刪表的誤操作,此時由于主從復制的機制,這些操作也會被同步到從服務器中,導致數據庫癱瘓,那這種情況如何處理呢?

我們可以采用快照+復制的備份架構,對從服務器上數據庫所在分區做快照,當主服務器發生了誤操作時,我們只需要利用從服務器上保存的快照進行恢復,再根據二進制日志來進行某一時間點的恢復即可。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443743.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 流的操作 | 初識IO類、文件流、string流的使用

文章目錄前言IO頭文件iostreamfstreamsstream流的使用不能拷貝或對 IO對象 賦值條件狀態與 iostate 類型輸出緩沖區文件流fstream類型文件模式文件光標函數tellg() / tellp()seekg() / seekp()向文件存儲內容/讀取文件內容string流istringstreamostringstream前言 我們在使用 …

Hibernate 更新部分更改的字段 hibernate update

Hibernate 中如果直接使用 Session.update(Object o);或則是Session.updateOrUpdate(Object o); 會把這個表中的所有字段更新一遍。 如: ExperClass4k e new ExperClass4k(); e.setTime(time); e.setQ_num(q_num); e.setK(k); if (str "finch_fix")…

C++ 類的行為 | 行為像值的類、行為像指針的類、swap函數處理自賦值

文章目錄概念行為像值的類行為像指針的類概念引用計數動態內存實現計數器類的swap概念swap實現自賦值概念 行為像值的類和行為像指針的類這兩種說法其實蠻拗口的,這也算是 《CPrimer》 翻譯的缺點之一吧。。。 其實兩者的意思分別是: 行為像值的類&am…

C++ 右值引用 | 左值、右值、move、移動語義、引用限定符

文章目錄C11為什么引入右值?區分左值引用、右值引用move移動語義移動構造函數移動賦值運算符合成的移動操作小結引用限定符規定this是左值or右值引用限定符與重載C11為什么引入右值? C11引入了一個擴展內存的方法——移動而非拷貝,移動較之拷…

且談關于最近軟件測試的面試

前段時間有新的產品需要招人,安排和參加了好幾次面試,下面就談談具體的面試問題,在面試他人的同時也面試自己。 面試問題是參與面試同事各自設計的,我也不清楚其他同事的題目,就談談自己設計的其中2道題。 過去面試總是…

C++ 多態 | 虛函數、抽象類、虛函數表

文章目錄多態虛函數重寫重定義(參數不同)協變(返回值不同)析構函數重寫(函數名不同)final和override重載、重寫、重定義抽象類多態的原理虛函數常見問題解析虛函數表多態 一種事物,多種形態。換…

C++ 運算符重載(一) | 輸入/輸出,相等/不等,復合賦值,下標,自增/自減,成員訪問運算符

文章目錄輸出運算符<<輸入運算符>>相等/不等運算符復合賦值運算符下標運算符自增/自減運算符成員訪問運算符輸出運算符<< 通常情況下&#xff0c;輸出運算符的第一個形參是一個 非常量ostream對象的引用 。之所以 ostream 是非常量是因為向流寫入內容會改變…

C++ 重載函數調用運算符 | 再探lambda,函數對象,可調用對象

文章目錄重載函數調用運算符lambdalambda等價于函數對象lambda等價于類標準庫函數對象可調用對象與function可調用對象function函數重載與function重載函數調用運算符 函數調用運算符必須是成員函數。 一個類可以定義多個不同版本的調用運算符&#xff0c;互相之間應該在參數數…

C++ 運算符重載(二) | 類型轉換運算符,二義性問題

文章目錄類型轉換運算符概念避免過度使用類型轉換函數解決上述問題的方法轉換為 bool顯式的類型轉換運算符類型轉換二義性重載函數與類型轉換結合導致的二義性重載運算符與類型轉換結合導致的二義性類型轉換運算符 概念 類型轉換運算符&#xff08;conversion operator&#…

Tomcat中JVM內存溢出及合理配置

Tomcat本身不能直接在計算機上運行&#xff0c;需要依賴于硬件基礎之上的操作系統和一個Java虛擬機。Tomcat的內存溢出本質就是JVM內存溢出&#xff0c;所以在本文開始時&#xff0c;應該先對Java JVM有關內存方面的知識進行詳細介紹。 一、Java JVM內存介紹 JVM管理兩種類型的…

俄羅斯農民乘法 | 快速乘

文章目錄概念概念 俄羅斯農民乘法經常被用于兩數相乘取模的場景&#xff0c;如果兩數相乘已經超過數據范圍&#xff0c;但取模后不會超過&#xff0c;我們就可以利用這個方法來拆位取模計算貢獻&#xff0c;保證每次運算都在數據范圍內。 A 和 B 兩數相乘的時候我們如何利用加…

Linux網絡編程 | socket選項設定 及 網絡信息API

文章目錄讀取和設置 socket 選項SO_REUSEADDRSO_RCVBUF 和 SO_SNDBUFSO_RCVLOWAT 和 SO_SNDLOWATSO_LINGER 選項網絡信息APIgethostbyname 和 gethostbyaddrgetservbyname 和 getservbyportgetaddrinfogetnameinfo讀取和設置 socket 選項 正如 fcntl 系統調用是控制文件描述符…

Linux | 高級I/O函數

文章目錄創建文件描述符的函數pipe函數dup函數、dup2函數讀取或寫入數據readv函數、writev函數零拷貝sendfile函數splice函數tee函數進程間通信——共享內存mmap函數 和 munmap函數控制文件描述符fcntl函數創建文件描述符的函數 pipe函數 不再贅述&#xff0c;詳情見我的另一…

分布式理論:CAP、BASE | 分布式存儲與一致性哈希

文章目錄分布式理論CAP定理BASE理論分布式存儲與一致性哈希簡單哈希一致性哈希虛擬節點分布式理論 CAP定理 一致性&#xff08;Consistency&#xff09;&#xff1a; 在分布式系統中的所有數據副本&#xff0c;在同一時刻是否一致&#xff08;所有節點訪問同一份最新的數據副…

Tomcat服務器性能優化

一、概述 本文檔主要介紹了Tomcat的性能調優的原理和方法。可作為公司技術人員為客戶Tomcat系統調優的技術指南&#xff0c;也可以提供給客戶的技術人員作為他們性能調優的指導手冊。 二、調優分類 由于Tomcat的運行依賴于JVM&#xff0c;從虛擬機的角度我們把Tomcat的調整分為…

分布式系統概念 | 分布式事務:2PC、3PC、本地消息表

文章目錄分布式事務2PC&#xff08;二階段提交協議&#xff09;執行流程優缺點3PC&#xff08;三階段提交協議&#xff09;執行流程優缺點本地消息表&#xff08;異步確保&#xff09;分布式事務 分布式事務就是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分…

數據結構算法 | 單調棧

文章目錄算法概述題目下一個更大的元素 I思路代碼下一個更大元素 II思路代碼132 模式思路代碼接雨水思路算法概述 當題目出現 「找到最近一個比其大的元素」 的字眼時&#xff0c;自然會想到 「單調棧」 。——三葉姐 單調棧以嚴格遞增or遞減的規則將無序的數列進行選擇性排序…

最長下降子序列

文章目錄題目解法DP暴搜思路代碼實現貪心二分思路代碼實現題目 給出一組數據 nums&#xff0c;求出其最長下降子序列&#xff08;子序列允許不連續&#xff09;的長度。&#xff08;類似于lc的最長遞增子序列&#xff09; 示例&#xff1a; 輸入&#xff1a; 6 // 數組元素個…

Linux 服務器程序規范、服務器日志、用戶、進程間的關系

文章目錄服務器程序規范日志rsyslogd 守護進程syslog函數openlog函數setlogmask函數closelog函數用戶進程間的關系進程組會話系統資源限制改變工作目錄和根目錄服務器程序后臺化服務器程序規范 Linux 服務器程序一般以后臺進程&#xff08;守護進程[daemon]&#xff09;形式運…

IO模型 :阻塞IO、非阻塞IO、信號驅動IO、異步IO、多路復用IO

文章目錄IO模型阻塞IO非阻塞IO信號驅動IO多路復用IO異步IOIO模型 根據各自的特性不同&#xff0c;IO模型被分為阻塞IO、非阻塞IO、信號驅動IO、異步IO、多路復用IO五類。 最主要的兩個區別就是阻塞與非阻塞&#xff0c;同步與異步。 阻塞與非阻塞 阻塞與非阻塞最主要的區別就…