XtraBackup-2.4..24筆記

命令參數

--user=USER                     指定備份用戶,不指定的話爲當前系統用戶
--password=PASSWD               指定備份用戶密碼
--port=PORT                     指定數據庫端口
--defaults-group=GROUP-NAME     在多實例的時候使用
--host=HOST                     指定備份的主機,可以爲遠程數據庫服務器
--apply-log                     回滾日誌
--database                      指定需要備份的數據庫,多個數據庫之間以空格分開
--defaults-file                 指定MySQL的配置文件
--copy-back                     將備份數據複製回原始位置
--incremental                   增量備份,後面跟要增量備份的路徑
--incremental-basedir=DIRECTORY 增量備份時使用指向上一次的增量備份所在的目錄
--incremental-dir=DIRECTORY     增量備份還原的時候用來合併增量備份到全量,用來指定全備路徑
--redo-only                     對增量備份進行合併
--rsync                         加快本地文件傳輸,適用於non-InnoDB數據庫引擎。不與--stream共用
--no-timestamp                  生成的備份文件不以時間戳爲目錄.
--socket					    指定連接時要使用的套接字使用UNIX域套接字連接到本地數據庫服務器。該選項接受字符串參數。
--Prepare                       需要對數據進行“預備”(Prepare)操作,使數據文件完全一致,然後才能用於數據恢復及在 InnoDB 中運行(prepare增量備份恢復時與全量備份不同,在全量備份時執行--prepare爲了保證數據庫一致,針對數據文件從日誌文件重放已提交的事務,以及回滾未提交的事務。在增量時,必須跳過未提交事務的回滾,因爲備份時未提交的事務可能正在進行中,很可能在下一次增量備份中提交,所以需要使用--apply-log-only選項來防止回滾階段。)
--compress-threads  		    設置壓縮線程數
--parallel 					    此選項指定在創建備份時用於同時複製多個數據文件的線程數。默認值爲1(即沒有併發傳輸)。在Percona XtraBackup 2.3.10及更高版本中,此選項可與選項一起使用以並行複製用戶數據文件(重做日誌和系統表空間在主線程中複製
--stream=name				    將所有備份文件以指定格式流式傳輸到標準輸出。目前支持的格式是xbstream和tar
--compress					    此選項告訴xtrabackup使用指定的壓縮算法壓縮所有輸出數據,包括事務日誌文件和元數據文件。目前唯一支持的算法是quicklz。生成的文件具有qpress存檔格式,即*.qpxtrabackup生成的每個文件本質上都是一個文件的qpress存檔,可以通過qpress 文件存檔提取和解壓縮。
--compress-chunk-size           壓縮線程的工作緩衝區大小(以字節爲單位)。默認值爲64K。
--decompress				    使用.qp以前使用該選項進行的備份中的擴展名解壓縮所有文件。該 選項將允許同時解密多個文件。爲了解壓縮,必須在路徑中安裝和訪問qpress實用程序。Percona XtraBackup不會自動刪除壓縮文件。爲了清理備份目錄,用戶應該使用選項。xtrabackup --compressxtrabackup --parallelxtrabackup --remove-original
--slave-info				    該選項表示對slave進行備份的時候使用,打印出master的名字和binlog pos,同樣將這些信息以change master的命令寫入xtrabackup_slave_info文件。可以通過基於這份備份啓動一個從庫。
--safe-slave-backup             該選項表示爲保證一致性複製狀態,這個選項停止SQL線程並且等到show status中的slave_open_temp_tables爲0的時候開始備份,如果沒有打開臨時表,bakcup會立刻開始,否則SQL線程啓動或者關閉知道沒有打開的臨時表。如果slave_open_temp_tables在--safe-slave-backup-timeount(默認300秒)秒之後不爲0,從庫sql線程會在備份完成的時候重啓。
--no-timestamp				    該選項可以表示不要創建一個時間戳目錄來存儲備份,指定到自己想要的備份文件夾
--rsync                         該選項表示通過rsync工具優化本地傳輸,當指定這個選項,innobackupex使用rsync拷貝非Innodb文件而替換cp,當有很多DB和表的時候會快很多,不能--stream一起使用。
--no-lock						該選項表示關閉FTWRL的表鎖,只有在所有表都是Innodb表並且不關心backup的binlog pos點,如果有任何DDL語句正在執行或者非InnoDB正在更新時(包括mysql庫下的表),都不應該使用這個選項,後果是導致備份數據不一致,如果考慮備份因爲獲得鎖失敗,可以考慮--safe-slave-backup立刻停止複製線程。
--tmpdir					    該選項表示指定--stream的時候,指定臨時文件存在哪裏,在streaming和拷貝到遠程server之前,事務日誌首先存在臨時文件裏。在 使用參數stream=tar備份的時候,你的xtrabackup_logfile可能會臨時放在/tmp目錄下,如果你備份的時候併發寫入較大的話 xtrabackup_logfile可能會很大(5G+),很可能會撐滿你的/tmp目錄,可以通過參數--tmpdir指定目錄來解決這個問題。
--history						該選項表示percona server 的備份歷史記錄在percona_schema.xtrabackup_history表。
--incremental					該選項表示創建一個增量備份,需要指定--incremental-basedir。
--incremental-basedir			該選項表示接受了一個字符串參數指定含有full backup的目錄爲增量備份的base目錄,與--incremental同時使用。
--incremental-dir				該選項表示增量備份的目錄。
--incremental-force-scan		該選項表示創建一份增量備份時,強制掃描所有增量備份中的數據頁。
--incremental-lsn				該選項表示指定增量備份的LSN,與--incremental選項一起使用。
--incremental-history-name		該選項表示存儲在PERCONA_SCHEMA.xtrabackup_history基於增量備份的歷史記錄的名字。Percona Xtrabackup搜索歷史表查找最近(innodb_to_lsn)成功備份並且將to_lsn值作爲增量備份啓動出事lsn.與innobackupex--incremental-history-uuid互斥。如果沒有檢測到有效的lsn,xtrabackup會返回error。
--incremental-history-uuid		該選項表示存儲在percona_schema.xtrabackup_history基於增量備份的特定歷史記錄的UUID。
--close-files					該選項表示關閉不再訪問的文件句柄,當xtrabackup打開表空間通常並不關閉文件句柄目的是正確的處理DDL操作。如果表空間數量巨大,這是一種可以關閉不再訪問的文件句柄的方法。使用該選項有風險,會有產生不一致備份的可能。
--compact						該選項表示創建一份沒有輔助索引的緊湊的備份。
--throttle						該選項表示每秒IO操作的次數,只作用於bakcup階段有效。apply-log和--copy-back不生效不要一起用。

xtrabackup 和 innobackupex 命令區別?

xtrabackup可以在不加鎖的情況下備份innodb數據表,不過此工具不能操作myisam。
innobackupex是一個封裝了xtrabackup的腳本,能同時處理innodb和myisam,但在處理myisam時需要加一個讀鎖。

  全備份

innobackupex --backup --user=root --password=123456   --socket=/tmp/mysql.sock   --parallel=4  /data0/backup

全備還原


準備命令

innobackupex --apply-log  備份路徑


保證mysql data 目錄是空的再執行還原命令 需要將還原數據庫關閉

innobackupex --copy-back  備份路徑


*這一步很重要沒有這步數據庫是啓動不起來的

chown -R mysql:mysql 數據庫data目錄

在啓動數據庫

service mysql start

增量備份

innobackupex   --user=數據庫名 --password=密碼 --socket=/tmp/mysql.sock  --incremental 增量備份路徑 --incremental-basedir=全量備份路徑

增量還原

#預備全量備份
xtrabackup --prepare --apply-log-only --target-dir=/data0/backup/2022-03-10_16-57-27/  
#預備全量和增量合併
xtrabackup  --prepare --apply-log-only --target-dir=/data0/backup/2022-03-10_16-57-27/ --incremental-dir=/data0/backup/inc/2022-03-10_17-17-35/
#再預備合併後的全備數據
xtrabackup  --prepare --target-dir=/data0/backup/2022-03-10_16-57-27/
#開始還原  最後啓動數據庫之前一定要授權mysql data文件
innobackupex --copy-back /data0/backup/2022-03-10_16-57-27/

壓縮備份全量 進行二進制打包

#二進制
innobackupex --user=root --password=123456 --socket=/tmp/mysql.sock --backup  --compress-threads=4 --stream=xbstream --compress \ >/data0/backup/`date +%Y-%m-%d-%H-%M`.xbstream
#tar 2.4版本不支持
innobackupex --user=root --password=123456 --socket=/tmp/mysql.sock --backup  --compress  --compress-threads=4 --stream=tar /backup/full/|gzip>/data0/backup/`date +%Y-%m-%d-%H-%M`.tar
解壓
xbstream -x < /data0/backup/2022-03-10-19-39.xbstream -C /data/backup/
#每個qp文件解壓
xtrabackup --decompress --target-dir=備份路徑

壓縮增量備份

innobackupex   --user=root --password=123456 --socket=/tmp/mysql.sock   --incremental-basedir=/data0/backup/2022-03-10_21-24-45/ --incremental --stream=xbstream --compress \ > /data0/backup/inc/test.xbstream

 

問題:

error: This incremental backup seems not to be proper for the target. xtrabackup:  Check 'to_lsn' of the target and 'from_lsn' of the incremental.

全量備份中的to_LSN號和增量備份中的checkpoints的to_lsn號相同 如果做多次增量備份時,需要在每次做完增量備份後使用--prepare --apply-log-only將增量部分合併到全量備份中,否則會報lsn衝突


sh: qpress: 未找到命令 cat: 寫入錯誤: 斷開的管道?


原因是沒有qpress 工具需要下載安裝

step 1

下載地址 http://www.quicklz.com/

Step 2 解壓下載

因爲是tar文件,如果目標服務器沒有相應的解壓軟件,可以上傳前,本地解壓。

Step 3 上傳至指定 服務器

Step 4 將上傳文件中的 qpress 複製到  /usr/bin 下

cp qpress /usr/bin
chmod 755 qpress

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章