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工具詳解 Part 2 xtrabackup安裝
- XtraBackup工具詳解 Part 3 XtraBackup工作原理
- XtraBackup工具詳解 Part 4 XtraBackup許可權及配置
- innobackupex 備份MySQL資料庫MySql資料庫
- 使用離線工具dmbackup進行資料庫備份資料庫
- innobackupex命令備份全過程圖解圖解
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- innobackupex全備份流程圖流程圖
- innobackupex備份mysql大資料(全量+增量)操作記錄MySql大資料
- 【Xtrabackup】Xtrabackup全備、增量備份及恢復示例
- 基於percona xtrabackup之innobackupex實現基於時間點資料庫恢復資料庫
- Xtrabackup全量備份
- 實際使用Elasticdump工具對Elasticsearch叢集進行資料備份和資料還原Elasticsearch
- 如何對xtrabackup 備份限制使用IO大小
- MySQL 複製全解析 Part 11 使用xtrabackup建立MySQL複製MySql
- (7) MySQL資料庫備份詳解MySql資料庫
- 如何在HarmonyOS對資料庫進行備份,恢復與加密資料庫加密
- MySQL alter table時執行innobackupex全備再看Seconds_Behind_MasterMySqlAST
- Elasticsearch 使用 NFS 進行資料備份ElasticsearchNFS
- 使用Mysql工具進行資料清洗MySql
- DM7使用離線工具DMRMAN執行資料庫備份資料庫
- 使用MD5Util工具包對資料庫密碼加密資料庫密碼加密
- 利用innobackupex備份集恢復指定庫
- Oracle資料庫備份還原詳解XKUSOracle資料庫
- Django資料庫類庫MySQLdb使用詳解Django資料庫MySql
- 資料庫框架Sugar的使用詳解資料庫框架
- 使用Handy Backup 6.2進行資料備份方法
- 如何對DevOps資料庫進行原始碼控制dev資料庫原始碼
- python使用多執行緒備份資料庫Python執行緒資料庫
- 對 LLM 工具使用進行統一
- 使用Redis和Java進行資料庫快取 - DZone資料庫RedisJava資料庫快取
- MariaDB 10.3版本開始無法使用Percona XtraBackup來進行備份了
- 使用Xtrabackup遠端備份MysqlMySql
- DM聯機執行SQL語句進行資料庫備份SQL資料庫
- innobackupex遠端備份
- 使用Spring Data JPA進行資料庫操作Spring資料庫
- mysqlbinlog命令詳解 Part 7 備份二進位制日誌檔案MySql
- 關係型資料庫全表掃描分片詳解資料庫