1. 程式人生 > >mysql 開發進階篇系列 46 xtrabackup (選項說明,增加備份使用者,完全備份案例)

mysql 開發進階篇系列 46 xtrabackup (選項說明,增加備份使用者,完全備份案例)

一. 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服務。

[[email protected] /]# mkdir data
[[email protected] /]# cd data
[[email protected] data]# mkdir backups
[[email protected] data]# chmod 777 backups
[[email protected] backups]# pwd
/data/backups

    步驟2:使用 --backup選項備份

[[email protected] ~]# xtrabackup --host=127.0.0.1  --user bkpuser --password=123456  --backup

  在備份過程中,會看到大量輸出顯示正在複製的資料檔案,以及日誌檔案執行緒反覆掃描日誌檔案,並從中複製。下面的示例顯示了在後臺掃描日誌的日誌執行緒,以及在ibdata1檔案上覆制執行緒的檔案。    

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

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