亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL使用Xtrabackup備份流程詳解

 更新時(shí)間:2021年03月27日 11:29:10   作者:AsiaYe  
這篇文章主要介紹了MySQL使用Xtrabackup備份流程詳解,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下

01 背景

    Xtrabackup是Percona公司開(kāi)發(fā)的一款開(kāi)源的MySQL熱備份工具,之前的工作中也是經(jīng)常使用,但是也僅僅是停留在使用的階段,對(duì)于這個(gè)工具的細(xì)節(jié),并沒(méi)有做過(guò)多的研究,今天細(xì)細(xì)看了一下過(guò)程,還是有點(diǎn)收獲的,寫(xiě)下來(lái)記錄一下,有不對(duì)的地方,還請(qǐng)指正。

    Xtrabackup工具能夠備份InnoDB,XtraDB和MyISAM的表,它支持Percona Server的所有版本,而且兼容MySQL,也兼容MariaDB,還支持一些高級(jí)的特性,例如流方式備份、壓縮、加密、以及增量備份等等。

   優(yōu)點(diǎn)如下:

1、無(wú)需停止數(shù)據(jù)庫(kù)進(jìn)行InnoDB熱備份,在50G以上的數(shù)據(jù)量備份時(shí)候,應(yīng)該是首選工具。

2、支持增量備份MySQL并通過(guò)流傳輸?shù)狡渌姆?wù)器上。

3、備份MySQL的時(shí)候不會(huì)增加服務(wù)器的負(fù)載。

02 簡(jiǎn)介

    在這個(gè)工具中,最主要的應(yīng)用程序有兩個(gè),分別是innobackupex與xtrabackup,其中前者是perl腳本,后面是C++變異的二進(jìn)制程序,需要注意,后者不能備份除了Innodb存儲(chǔ)引擎的其他表。Innobackup是對(duì)xtrabackup的封裝,可以備份非Innodb的表。

   以上所述,可能大家都知道,這里需要留意,由于mysql等系統(tǒng)數(shù)據(jù)庫(kù)中的表有些存儲(chǔ)引擎是基于MyISAM的,所以一般情況下使用innobackupex來(lái)備份系統(tǒng)庫(kù)。

03 工作流程

   下面講述Innobackupex和Xtrabackup的工作流程,可能有些交叉的部分,二者共同完成備份任務(wù)。

   主要的工作流程如下:

1、innobackupex啟動(dòng)之后,首先會(huì)創(chuàng)建xtrabackup進(jìn)程,并且啟動(dòng),然后等待xtrabackup完成innodb相關(guān)文件的備份。

2、xtrabackup在備份InnoDB相關(guān)文件時(shí),會(huì)開(kāi)啟如下兩種線(xiàn)程,一種是ibd復(fù)制線(xiàn)程,負(fù)責(zé)復(fù)制表空間ibd文件,一種是redo log復(fù)制線(xiàn)程,負(fù)責(zé)復(fù)制redo log信息。其中redo log線(xiàn)程先于ibd線(xiàn)程開(kāi)始,redo log線(xiàn)程會(huì)從最近的checkpoint點(diǎn)開(kāi)始復(fù)制redo log,(關(guān)于checkpoint,之前的文章中講過(guò)),復(fù)制完成之后啟動(dòng)ibd線(xiàn)程。需要注意的是,在這個(gè)過(guò)程中,innobackupex進(jìn)程處于等待狀態(tài),等待被xtrabackup進(jìn)程喚醒。

3、xtrabackup復(fù)制ibd完成之后(redo log線(xiàn)程可能還在工作),通知innobackupex進(jìn)程,同時(shí)自己進(jìn)入wait狀態(tài)。

4、innobackupex收到通知,會(huì)執(zhí)行備份鎖,渠道一致性的位點(diǎn),然后開(kāi)始復(fù)制非innodb的文件。

5、當(dāng)非innodb文件復(fù)制完成之后,innobackupex開(kāi)始獲取binlog的位置。

6、創(chuàng)建xtrabackup_binlog_info文件,并將binlog的點(diǎn)位信息寫(xiě)入文件中。

7、接著,innobackupex會(huì)發(fā)起一個(gè)通知給xtrabackup進(jìn)程,同時(shí)自己進(jìn)入等待狀態(tài)。

8、xtrabackup進(jìn)程收到通知后,就會(huì)停止redo log的復(fù)制線(xiàn)程,并告知redo log復(fù)制完畢,然后通知innodbbackupex開(kāi)始釋放鎖。

9、緊接著,就是一些收尾工作,釋放資源,備份元數(shù)據(jù)信息,打印備份目錄,備份binlog的位置信息,以及寫(xiě)入xtrabackup_info文件信息等。

10、innobackupex進(jìn)程等待xtrabackup進(jìn)程結(jié)束后退出。

04 一些疑問(wèn)

1、為什么要復(fù)制redo log?

   這是因?yàn)閭浞輎bd文件的過(guò)程中,該文件可能被修改,這樣備份出來(lái)的文件就有可能是包含臟數(shù)據(jù)的,在恢復(fù)的時(shí)候,需要聽(tīng)過(guò)redo log進(jìn)行數(shù)據(jù)恢復(fù),也就是應(yīng)用已經(jīng)提交的事務(wù),回滾那些沒(méi)有提交的事務(wù)。

2、innobackupex和xtrabackup是如何交互的?

   其實(shí)本質(zhì)是通過(guò)刪除和創(chuàng)建兩個(gè)特定的文件,這兩個(gè)進(jìn)程都會(huì)監(jiān)聽(tīng)指定目錄下是否包含特定的文件,如果包含,就進(jìn)行工作,不包含,則停止工作,進(jìn)入等待狀態(tài)。

05 備份文件

  一般備份完成之后,備份目錄中會(huì)產(chǎn)生7個(gè)重要的文件,包含:

  • backup-my.cnf:此文件包含了備份所需的my.cnf中的選項(xiàng)?;謴?fù)的時(shí)候,會(huì)依賴(lài)這個(gè)文件。
  • xtrabackup_checkpoints:記錄備份的類(lèi)型、備份的狀態(tài)信息、增量備份依賴(lài)于這個(gè)信息
  • xtrabackup_binlog_info:該文件記錄備份時(shí)候的二進(jìn)制文件信息和偏移量位置信息。
  • xtrabackup_binlog_pos_innodb:該文件記錄了innodb表的二進(jìn)制文件和位置信息,當(dāng)執(zhí)行--apply-log的時(shí)候,會(huì)創(chuàng)建這個(gè)文件。
  • xtrabackup_binary:該文件記錄備份進(jìn)程使用的xtrabackup二進(jìn)制文件。
  • xtrabackup_logfile:該文件記錄apply log操作時(shí)所需的數(shù)據(jù),如果apply log的時(shí)間比較長(zhǎng),這個(gè)文件就會(huì)很大。
  • xtrabackup_slave_info:這個(gè)文件很常用,它記錄了在建立主從關(guān)系的時(shí)候,change master 語(yǔ)句所需要的信息。

以上就是MySQL使用Xtrabackup備份流程詳解的詳細(xì)內(nèi)容,更多關(guān)于MySQL使用Xtrabackup備份的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決mysql @@sql_mode問(wèn)題---only_full_group_by

    解決mysql @@sql_mode問(wèn)題---only_full_group_by

    這篇文章主要介紹了解決mysql @@sql_mode問(wèn)題---only_full_group_by,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • MySQL通透詳解架構(gòu)設(shè)計(jì)

    MySQL通透詳解架構(gòu)設(shè)計(jì)

    這篇文章主要介紹了MySQL架構(gòu)設(shè)計(jì)相關(guān)基礎(chǔ)與原則,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2022-02-02
  • mybatis分頁(yè)插件pageHelper詳解及簡(jiǎn)單實(shí)例

    mybatis分頁(yè)插件pageHelper詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了mybatis分頁(yè)插件pageHelper詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • MySQL刪除表數(shù)據(jù)的方法

    MySQL刪除表數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL刪除表數(shù)據(jù)的方法,小編覺(jué)得還是挺不錯(cuò)的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10
  • MySQL5.6的zip包安裝教程詳解

    MySQL5.6的zip包安裝教程詳解

    這篇文章主要介紹了MySQL5.6的zip包安裝教程,需要的朋友可以參考下
    2018-11-11
  • mysql?事務(wù)解析

    mysql?事務(wù)解析

    這篇文章主要給大家分享的是mysql事務(wù)解析,事務(wù)(transaction)是業(yè)務(wù)邏輯的一個(gè)基本的單元組成,下面文章圍繞mysql事務(wù)的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的朋友可以參考一下希望對(duì)大家有所幫助
    2021-11-11
  • MacOS下mysql 8.0.18 安裝配置方法圖文教程

    MacOS下mysql 8.0.18 安裝配置方法圖文教程

    這篇文章主要介紹了MacOS下mysql 8.0.18 安裝配置方法圖文教程,并成功命令行操作,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySQL表添加某一列和刪除某一列的方法

    MySQL表添加某一列和刪除某一列的方法

    MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它是一種開(kāi)源的軟件,由瑞典的MySQL?AB公司開(kāi)發(fā)的,這篇文章主要介紹了關(guān)于MySQL表添加某一列和刪除某一列的sql語(yǔ)句,需要的朋友可以參考下
    2023-06-06
  • MySQL8.0/8.x忘記密碼更改root密碼的實(shí)戰(zhàn)步驟(親測(cè)有效!)

    MySQL8.0/8.x忘記密碼更改root密碼的實(shí)戰(zhàn)步驟(親測(cè)有效!)

    忘記root密碼的場(chǎng)景還是比較常見(jiàn)的,特別是自己搭的測(cè)試環(huán)境經(jīng)過(guò)好久沒(méi)用過(guò)時(shí),很容易記不得當(dāng)時(shí)設(shè)置的密碼,下面這篇文章主要給大家介紹了關(guān)于MySQL8.0/8.x忘記密碼更改root密碼的實(shí)戰(zhàn)步驟,親測(cè)有效!需要的朋友可以參考下
    2023-04-04
  • Mysql樹(shù)形結(jié)構(gòu)的數(shù)據(jù)庫(kù)表設(shè)計(jì)方案

    Mysql樹(shù)形結(jié)構(gòu)的數(shù)據(jù)庫(kù)表設(shè)計(jì)方案

    樹(shù)形結(jié)構(gòu)對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,在日常開(kāi)發(fā)中經(jīng)常會(huì)遇到,下面這篇文章主要給大家介紹了關(guān)于Mysql樹(shù)形結(jié)構(gòu)的數(shù)據(jù)庫(kù)表設(shè)計(jì)的相關(guān)資料,文中通過(guò)示例代碼的非常詳細(xì),需要的朋友可以參考下
    2021-09-09

最新評(píng)論