中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql-物理備份-Percona xtrabackup

發布時間:2020-08-10 18:29:49 來源:ITPUB博客 閱讀:154 作者:liangjiahual 欄目:MySQL數據庫

xtrabackup是percona公司開發的一個用于mysql物理熱備的備份工具。

軟件安裝后一共有4個可執行文件:

     innobackupex:perl腳本,用來備份非innodb表,同時會調用xtrabackup來備份innodb表,會和mysql server進行交互。如:加讀鎖(FTWRL),獲取位點(show slave status)等。即封裝了xtrabackup
     xbcrypt:用來解密
     xbstream:類似tar,一種支持并發寫的流文件格式。和xbcrypt都在備份和解壓會用到
     xtrabackup:c/c++編譯的二進制,用來備份innodb表,和mysql server沒有交互


原理

通信方式:xtrabackup和innobackupex之間的交互和協調是通過控制文件的創建和刪除來實現的。

主要文件:
    xtrabackup_suspended_1
    xtrabackup_suspended_2
    xtrabackup_log_copied

例:看看備份時xtrabackup_suspended_2是怎么協調2個工具進程的:
    1.innobackupex在啟動xtrabackup進程后,會一直等xtrabackup備份完innodb文件,方式就是等待xtrabackup_suspended_2被創建出
    2.xtrabackup備份完innodb數據后,就在指定目錄下創建出xtrabackup_suspended_2,然后等到這個文件被innobackupex刪除,
    3.innobackupex 檢測到文件 xtrabackup_suspended_2 被創建出來后,就繼續往下走;
    4.innobackupex 在備份完非 InnoDB 表后,刪除 xtrabackup_suspended_2 這個文件,這樣就通知 xtrabackup 可以繼續了,然后等 xtrabackup_log_copied 被創建;
    5.xtrabackup 檢測到 xtrabackup_suspended_2 文件刪除后,就可以繼續往下了。
mysql-物理備份-Percona xtrabackup
備份過程圖

mysql-物理備份-Percona xtrabackup

說明:

1.innobackupex 在啟動后,會先 fork 一個進程,啟動 xtrabackup進程,然后就等待 xtrabackup 備份完 ibd 數據文件;

2.xtrabackup 在備份 InnoDB 相關數據時,是有2種線程的,1種是 redo 拷貝線程,負責拷貝 redo 文件,1種是 ibd 拷貝線程,負責拷貝 ibd 文件;redo 拷貝線程只有一個,在 ibd 拷貝線程之前啟動,在 ibd 線程結束后結束。xtrabackup 進程開始執行后,先啟動 redo 拷貝線程,從最新的 checkpoint 點開始順序拷貝 redo 日志;然后再啟動 ibd 數據拷貝線程,在 xtrabackup 拷貝 ibd 過程中,innobackupex 進程一直處于等待狀態(等待文件被創建)。

3.xtrabackup 拷貝完成idb后,通知 innobackupex(通過創建文件),同時自己進入等待(redo 線程仍然繼續拷貝);

4.innobackupex 收到 xtrabackup 通知后,執行FLUSH TABLES WITH READ LOCK (FTWRL),取得一致性位點,然后開始備份非 InnoDB 文件(包括 frm、MYD、MYI、CSV、opt、par等)。拷貝非 InnoDB 文件過程中,因為數據庫處于全局只讀狀態,如果在業務的主庫備份的話,要特別小心,非 InnoDB 表(主要是MyISAM)比較多的話整庫只讀時間就會比較長,這個影響一定要評估到。

5.當 innobackupex 拷貝完所有非 InnoDB 表文件后,通知 xtrabackup(通過刪文件) ,同時自己進入等待(等待另一個文件被創建);

6.xtrabackup 收到 innobackupex 備份完非 InnoDB 通知后,就停止 redo 拷貝線程,然后通知 innobackupex redo log 拷貝完成(通過創建文件);

7.innobackupex 收到 redo 備份完成通知后,就開始解鎖,執行 UNLOCK TABLES;

8.最后 innobackupex 和 xtrabackup 進程各自完成收尾工作,如資源的釋放、寫備份元數據信息等,innobackupex 等待 xtrabackup 子進程結束后退出。


在備份進程中都是直接通過操作系統讀取數據文件的,只在執行SQL命令時和數據庫有交互,基本不會影響數據庫的運行,在備份非innodb時會有一段時間只讀,對備份innodb表時完全沒有影響。


備份innodb文件和非innodb都是通過拷貝文件,但實現的方式不一樣,innodb是以page粒度(xtrabackup),在讀取每個page時會檢驗checksum值,保證數據塊是一致的;非innodb是cp或者tar(innobackupex),由于對文件做了FTWRL,磁盤上的文件也是完整的,備份的數據也是完整的。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南昌县| 二连浩特市| 通海县| 沅江市| 吕梁市| 页游| 丰台区| 西贡区| 静宁县| 教育| 阳春市| 唐山市| 中卫市| 万盛区| 休宁县| 平凉市| 明溪县| 喀喇沁旗| 喀什市| 沭阳县| 乐至县| 东乌珠穆沁旗| 易门县| 博客| 安图县| 洪湖市| 故城县| 葵青区| 财经| 东宁县| 布拖县| 马公市| 揭阳市| 东平县| 长葛市| 句容市| 洛浦县| 宜宾市| 庄河市| 南雄市| 马关县|