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

MySQL使用Xtrabackup備份流程詳解

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

01 背景

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

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

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

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

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

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

02 簡介

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

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

03 工作流程

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

   主要的工作流程如下:

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

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

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

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

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

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

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

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

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

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

04 一些疑問

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

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

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

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

05 備份文件

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

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

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

相關(guān)文章

  • mysql如何將數(shù)據(jù)庫中的所有表結(jié)構(gòu)和數(shù)據(jù)導(dǎo)入到另一個庫

    mysql如何將數(shù)據(jù)庫中的所有表結(jié)構(gòu)和數(shù)據(jù)導(dǎo)入到另一個庫

    介紹了如何使用mysqldump命令備份和導(dǎo)入數(shù)據(jù)庫,以及創(chuàng)建目標(biāo)數(shù)據(jù)庫的步驟,首先使用mysqldump備份源數(shù)據(jù)庫,然后在目標(biāo)數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫,并將備份文件導(dǎo)入到目標(biāo)數(shù)據(jù)庫,確保數(shù)據(jù)結(jié)構(gòu)和內(nèi)容完整復(fù)制,提到了DataGrip、Navicat在導(dǎo)入導(dǎo)出過程中可能出現(xiàn)的問題
    2024-10-10
  • 淺析MySQL的基數(shù)統(tǒng)計(jì)

    淺析MySQL的基數(shù)統(tǒng)計(jì)

    這篇文章主要介紹了MySQL的基數(shù)統(tǒng)計(jì)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫的使用,感興趣的朋友可以了解下
    2020-11-11
  • mysql explain的用法(使用explain優(yōu)化查詢語句)

    mysql explain的用法(使用explain優(yōu)化查詢語句)

    mysql explain可以幫助你檢查索引和更好的優(yōu)化查詢語句,今天特地學(xué)習(xí)了下mysql explain的用法,需要的朋友可以參考下
    2017-01-01
  • MySQL之select、distinct、limit的使用

    MySQL之select、distinct、limit的使用

    這篇文章主要介紹了MySQL之select、distinct、limit的使用,下面文章圍繞select、distinct、limit的相關(guān)資料展開聚集內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Mysql8斷電崩潰解決

    Mysql8斷電崩潰解決

    本文主要介紹了Mysql8斷電崩潰解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql聚簇索引的頁分裂原理實(shí)例分析

    mysql聚簇索引的頁分裂原理實(shí)例分析

    這篇文章主要介紹了mysql聚簇索引的頁分裂原理,結(jié)合實(shí)例形式分析了mysql聚簇索引的頁分裂原理與操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • 編寫腳本令Xtrabackup對MySQL數(shù)據(jù)進(jìn)行備份的教程

    編寫腳本令Xtrabackup對MySQL數(shù)據(jù)進(jìn)行備份的教程

    這篇文章主要介紹了編寫腳本令Xtrabackup對MySQL數(shù)據(jù)進(jìn)行備份的教程,示例環(huán)境基于CentOS系統(tǒng),需要的朋友可以參考下
    2015-12-12
  • mysql 5.7.11 winx64安裝配置方法圖文教程

    mysql 5.7.11 winx64安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql5.7.11 winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-05-05
  • MySQL慢查詢?nèi)罩镜呐渲门c使用教程

    MySQL慢查詢?nèi)罩镜呐渲门c使用教程

    慢查詢?nèi)罩居糜谟涗浺恍┻^慢的查詢語句,可以幫助管理員分析問題所在,下面這篇文章主要給大家介紹了關(guān)于MySQL慢查詢?nèi)罩镜呐渲门c使用教程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-09-09
  • Mysql命令行連接遠(yuǎn)程/本地?cái)?shù)據(jù)庫詳解

    Mysql命令行連接遠(yuǎn)程/本地?cái)?shù)據(jù)庫詳解

    新使用MySQL,說起來是個簡單的事情,,但是卻費(fèi)了些周折,下面這篇文章主要給大家介紹了關(guān)于Mysql命令行連接遠(yuǎn)程/本地?cái)?shù)據(jù)庫的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評論