XtraBackup工具詳解 Part 5 使用innobackupex對資料庫進行全備

ibsbforever發表於2019-07-17

實驗環境

此次實驗的環境如下

  • MySQL 5.7.25

  • Redhat 6.10

  • 作業系統賬號:mysql

  • 資料庫備份賬號:backup

1. 備份命令

1.1 首先新建備份賬號



mysql>


 CREATE USER 

'backup'

@

'localhost'

 IDENTIFIED BY 

'123456'



mysql>
 GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO  'backup' @ 'localhost'

mysql>
 FLUSH PRIVILEGES;

1.2 建立備份目錄


shell>

mkdir

 -p /oradata/data/mysql/xtra

注意 mysql使用者需要有讀寫許可權,並且該目錄需要為空,否則備份失敗

1.3 開始備份

我們有如下方法對MySQL資料庫進行全備


shell> innobackupex  -S /oradata/

data

/mysql/

data

/mysql.sock --user=backup --password=

123456

   /oradata/

data

/mysql/xtra

1.png

備份完成後可以看到在/oradata/data/mysql/xtra目錄下新建了以日期命名的目錄

2. 備份過程分析

接下來分析下其備份的過程,從輸出的日誌上來看

2.1 命令提示部分

2.png

上圖首先列印出innobackupex可以用的一些引數

並提示說在結束時檢查是否備份成功,需要在最後有"completed OK"字樣

2.2 連線資料庫

3.png

然後是連線資料庫,進入資料檔案目錄檢查引數,之後開始備份

2.3 備份系統及undo表空間

4.png

這部分首先列出資料庫中有哪些表空間

  • 系統表空間(ibdata)
  • undo表空間(undo)
  • 使用者表空間(innodb_file_per_table開啟後每張表和表空間一一對應)

首先拷貝系統表空間檔案然後是undo表空間檔案,最後是innodb表檔案

可以看到由於我在備份時手動插入了資料,innobackupex一直在掃描redo 日誌檔案以反映資料的變化

2.4 備份innodb表資料

5.png

可以看到正在拷貝innodb表的檔案

由於我在備份時手動插入了資料,可以看到innobackupex一直在掃描redo 日誌檔案以反映資料的變化

2.5 備份非innodb表資料

6.png

可以看到在拷貝資料檔案時先執行下面語句進行鎖表,不允許使用者DML操作

  • FLUSH NO_WRITE_TO_BINLOG TABLES

  • FLUSH TABLES WITH READ LOCK

7.png

之後在非InnoDB表拷貝完之後寫資訊至xtrabackup_binlog_info檔案

該檔案後續說明

最後記錄最終的LSN號

2.6 完成備份

8.png

之後解除鎖表,拷貝ib_buffer_pool檔案

記錄binlog 位置資訊

寫資訊值backup-my.cnf及xtrabackup_info

最後拷貝在備份期間變化的redo日誌

3. 生成檔案說明

通過上面我們看到除了拷貝資料檔案外還生成了一些檔案

下面我們一一說明

9.png

3.1 backup-my.cnf

10.png

包含了備份資料庫如下資訊

  • innodb的一些配置資訊
  • 資料庫的server ID
  • redo log 的版本
  • 資料庫伺服器的uuid
  • master key id(安全相關)

3.2 xtrabackup_binlog_info

11.png

其記錄了備份完成時binlog的位置及GTID資訊

用於複製的搭建

3.3 xtrabackup_checkpoints

該檔案對於後續增量備份有用

12.png

該檔案有如下資訊

  • 備份型別:全備
  • 開始LSN:0
  • 最後檢查點LSN:9429655438
  • 最後拷貝的LSN:9429655752
  • 行COMPACT儲存:否

可以看到to_lsn和last_lsn不同 說明在備份過程中有DML操作

to_last用於增量備份的起點

last_scn用於最後恢復的位置

這些後面介紹

3.4 xtrabackup_info

13.png

該檔案包含一些備份的資訊就不一一介紹了

4. 參考資料

本專題所有內容翻譯子Percona XtraBackup的官方文件

可通過如下連結下載

http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28413242/viewspace-2650767/,如需轉載,請註明出處,否則將追究法律責任。

相關文章