mysql 開發進階篇系列 46 xtrabackup (選項說明,增加備份使用者,完全備份案例)
一. xtrabackup 選項說明
在操作xtrabackup備份與恢復之前,先看下該工具的選項,下面記錄了xtrabackup二進位制檔案的部分命令列選項,後期把常用的選項在補上。 ofollow,noindex">點選檢視xtrabackup Option 指南
選項名 |
說明 |
--apply-log-only |
僅在準備備份時,執行重做階段。這對於增量備份非常重要。 |
--backup |
做一個備份, 並把它放在xtrabackup——target-dir目錄裡 |
--binlog-info |
此選項控制Percona XtraBackup如何檢索與備份對應的伺服器二進位制日誌座標。可能的值為OFF、ON、無鎖和AUTO。 |
--check-privileges |
檢查Percona XtraBackup是否擁有所有必需的特權 |
--close-files |
不要開啟檔案。當xtrabackup開啟表空間時,它通常不會關閉它的檔案控制代碼,以便正確地處理DDL操作。但是,如果表空間的數量非常大,不能滿足任何限制,那麼可以選擇在不再訪問檔案控制代碼時關閉它們。 Percona XtraBackup 可以在啟用此選項時產生不一致的備份。自行承擔使用風險 |
--compact |
通過跳過輔助索引頁建立一個緊湊備份 |
--compress |
這個選項告訴xtrabackup使用指定的壓縮演算法壓縮所有輸出資料,包括事務日誌檔案和元資料檔案。目前唯一支援的演算法是quicklz。生成的檔案具有qpress存檔格式,即每個*.qp。由xtrabackup生成的qp檔案本質上是一個單一檔案的qpress歸檔檔案,可以通過qpress檔案歸檔器提取和解壓。 |
--compress-chunk-size=# |
用於壓縮執行緒的工作緩衝區的大小(以位元組為單位)。預設值是64K。 |
--compress-threads=# |
此選項指定xtrabackup用於並行資料壓縮的工作執行緒數。此選項預設為1。 例如並行壓縮案例 --parallel=4 --compress --compress-threads=2 將建立4個I/O執行緒,2個執行緒將讀取資料,2個執行緒資料壓縮。 |
--copy-back |
將以前備份的所有檔案從備份目錄複製到原來的位置。除非指定了xtrabackup—force-non-empty- directory選項,否則此選項不會複製現有檔案。 |
--databases=# |
此選項指定應該備份的資料庫和表的列表。 "databasename1[.table_name1] databasename2[.table_name2] . . ." |
--databases-exclude=name |
排除基於名稱的資料庫,操作方式與xtrabackup --databases相同,但是匹配的名稱被排除在備份之外。請注意,此選項的優先順序高於xtrabackup--databases。 |
--databases-file=# |
此選項指定到包含資料庫和表列表的檔案的路徑。 |
二. 增加備份的mysql使用者
-- 建立用於備份的mysql使用者bkpuser,設定最基本的許可權(全備,增量備份,恢復) CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY '123456'; GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
-- 如果需要部分備份,export表,import表許可權。還需要設定: GRANT CREATE TABLESPACE ON *.* TO 'bkpuser'@'localhost';
-- 如果還需要對備份的過程中對鎖進行一些優化,防止發生阻塞所有DML的情況,則還需要: GRANT PROCESS,SUPER ON *.* TO 'bkpuser'@'localhost';
-- 檢視mysq使用者'bkpuser'的許可權 SHOW GRANTS FOR 'bkpuser'@'localhost'
bkpuser許可權如下圖所示:
三. 完全備份案例
步驟1: 在my.cnf中指定target-dir路徑,建立並指定/data/backups目錄,給最大許可權,重啟mysql服務。
[root@hsr /]# mkdir data [root@hsr /]# cd data [root@hsr data]# mkdir backups [root@hsr data]# chmod 777 backups [root@hsr backups]# pwd /data/backups
步驟2:使用 --backup選項備份
[root@hsr ~]# xtrabackup --host=127.0.0.1--user bkpuser --password=123456--backup
在備份過程中,會看到大量輸出顯示正在複製的資料檔案,以及日誌檔案執行緒反覆掃描日誌檔案,並從中複製。下面的示例顯示了在後臺掃描日誌的日誌執行緒,以及在ibdata1檔案上覆制執行緒的檔案。


notes:最後看到事務日誌 的LSN的值範圍,這依賴於你的系統. 日誌複製執行緒每秒鐘檢查事務日誌,看是否有任何新的日誌記錄寫需要複製, 但是,日誌複製執行緒可能無法跟上事務日誌的寫入量,當日志記錄在讀取之前被覆蓋時,將會出現錯誤(暫不理解)。

備份完成後,目標目錄將包含以下檔案。

備份可能需要很長時間,這取決於資料庫的大小。在任何時候取消都是安全的,因為它不修改資料庫。