XtraBackup工具詳解 Part 5 使用innobackupex對資料庫進行全備
實驗環境
此次實驗的環境如下
-
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
備份完成後可以看到在/oradata/data/mysql/xtra目錄下新建了以日期命名的目錄
2. 備份過程分析
接下來分析下其備份的過程,從輸出的日誌上來看
2.1 命令提示部分
上圖首先列印出innobackupex可以用的一些引數
並提示說在結束時檢查是否備份成功,需要在最後有"completed OK"字樣
2.2 連線資料庫
然後是連線資料庫,進入資料檔案目錄檢查引數,之後開始備份
2.3 備份系統及undo表空間
這部分首先列出資料庫中有哪些表空間
- 系統表空間(ibdata)
- undo表空間(undo)
- 使用者表空間(innodb_file_per_table開啟後每張表和表空間一一對應)
首先拷貝系統表空間檔案然後是undo表空間檔案,最後是innodb表檔案
可以看到由於我在備份時手動插入了資料,innobackupex一直在掃描redo 日誌檔案以反映資料的變化
2.4 備份innodb表資料
可以看到正在拷貝innodb表的檔案
由於我在備份時手動插入了資料,可以看到innobackupex一直在掃描redo 日誌檔案以反映資料的變化
2.5 備份非innodb表資料
可以看到在拷貝資料檔案時先執行下面語句進行鎖表,不允許使用者DML操作
-
FLUSH NO_WRITE_TO_BINLOG TABLES
-
FLUSH TABLES WITH READ LOCK
之後在非InnoDB表拷貝完之後寫資訊至xtrabackup_binlog_info檔案
該檔案後續說明
最後記錄最終的LSN號
2.6 完成備份
之後解除鎖表,拷貝ib_buffer_pool檔案
記錄binlog 位置資訊
寫資訊值backup-my.cnf及xtrabackup_info
最後拷貝在備份期間變化的redo日誌
3. 生成檔案說明
通過上面我們看到除了拷貝資料檔案外還生成了一些檔案
下面我們一一說明
3.1 backup-my.cnf
包含了備份資料庫如下資訊
- innodb的一些配置資訊
- 資料庫的server ID
- redo log 的版本
- 資料庫伺服器的uuid
- master key id(安全相關)
3.2 xtrabackup_binlog_info
其記錄了備份完成時binlog的位置及GTID資訊
用於複製的搭建
3.3 xtrabackup_checkpoints
該檔案對於後續增量備份有用
該檔案有如下資訊
- 備份型別:全備
- 開始LSN:0
- 最後檢查點LSN:9429655438
- 最後拷貝的LSN:9429655752
- 行COMPACT儲存:否
可以看到to_lsn和last_lsn不同 說明在備份過程中有DML操作
to_last用於增量備份的起點
last_scn用於最後恢復的位置
這些後面介紹
3.4 xtrabackup_info
該檔案包含一些備份的資訊就不一一介紹了
4. 參考資料
本專題所有內容翻譯子Percona XtraBackup的官方文件
可通過如下連結下載
http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28413242/viewspace-2650767/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 xtrabackup 進行MySQL資料庫物理備份MySql資料庫
- XtraBackup工具詳解 Part 2 xtrabackup安裝
- XtraBackup工具詳解 Part 3 XtraBackup工作原理
- Xtrabackup之innobackupex備份恢復詳解薦
- XtraBackup工具詳解 Part 4 XtraBackup許可權及配置
- 使用innobackupex備份mysql資料庫MySql資料庫
- 使用Xtrabackup備份mysql資料庫MySql資料庫
- 使用xtrabackup對mysql進行備份和恢復MySql
- Percona XtraBackup 2.4 innobackupex全量、增量備份恢復流程
- (轉)使用Xtrabackup備份MySQL資料庫MySql資料庫
- mysql innobackupex xtrabackup 大資料量 備份 還原MySql大資料
- innobackupex 備份MySQL資料庫MySql資料庫
- 使用離線工具dmbackup進行資料庫備份資料庫
- 建立MySQL資料庫備份的好工具:XtraBackupMySql資料庫
- (轉)使用Xtrabackup備份MySQL資料庫(續)MySql資料庫
- 配置xtrabackup備份mysql資料庫MySql資料庫
- innobackupex命令備份全過程圖解圖解
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- 如何利用Rman對Oracle資料庫進行備份Oracle資料庫
- 使用innobackupex恢復mysql資料庫MySql資料庫
- innobackupex全備份流程圖流程圖
- 【Xtrabackup】Xtrabackup全備、增量備份及恢復示例
- innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- 實際使用Elasticdump工具對Elasticsearch叢集進行資料備份和資料還原Elasticsearch
- 使用innobackupex線上增量備份和再增量備份及恢復mysql資料庫MySql資料庫
- 使用OSB進行ORACLE rac資料庫的備份Oracle資料庫
- 使用mysqldump進行mysql資料庫備份還原MySql資料庫
- innobackupex:Error:xtrabackup child process has died at /usr/bin/innobackupexError
- Mysql 物理備份工具xtrabackup的使用MySql
- MySQL 利用xtrabackup進行增量備份詳細過程彙總MySql
- MySQL 複製全解析 Part 11 使用xtrabackup建立MySQL複製MySql
- sqlserver 使用全備和增備 還原資料庫SQLServer資料庫
- rman全備資料庫資料庫
- mysql資料庫xtrabackup壓縮備份測試MySql資料庫
- mysql之 Innobackupex(全備+增量)備份恢復MySql
- 使用RMAN對資料庫進行異機還原資料庫
- MySQL innobackupex全量備份恢復MySql
- Mysql備份系列(3)--innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料