一. xtrabackup 選項說明 在操作xtrabackup備份與恢復之前,先看下該工具的選項,下麵記錄了xtrabackup二進位文件的部分命令行選項,後期把常用的選項在補上。點擊查看xtrabackup Option 指南 選項名 說明 --apply-log-only 僅在準備備份時,執行 ...
一. xtrabackup 選項說明
在操作xtrabackup備份與恢復之前,先看下該工具的選項,下麵記錄了xtrabackup二進位文件的部分命令行選項,後期把常用的選項在補上。點擊查看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的值範圍,這依賴於你的系統. 日誌複製線程每秒鐘檢查事務日誌,看是否有任何新的日誌記錄寫需要複製, 但是,日誌複製線程可能無法跟上事務日誌的寫入量,當日誌記錄在讀取之前被覆蓋時,將會出現錯誤(暫不理解)。
備份完成後,目標目錄將包含以下文件。
備份可能需要很長時間,這取決於資料庫的大小。在任何時候取消都是安全的,因為它不修改資料庫。