自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

完整解讀:Percona XtraBackup 8備份神器的全面指南

原創(chuàng) 精選
開源
Percona XtraBackup 是一款開源的備份工具,專為 MySQL 及其分支(如 Percona Server 和 MariaDB)數(shù)據(jù)庫設計。它允許在不中斷數(shù)據(jù)庫操作的情況下執(zhí)行熱備份,確保數(shù)據(jù)的一致性和可恢復性。

作者 | 吳守陽

審校 | 重樓

介紹

Percona XtraBackup 是一款開源的備份工具,專為 MySQL 及其分支(如 Percona Server 和 MariaDB)數(shù)據(jù)庫設計。它允許在不中斷數(shù)據(jù)庫操作的情況下執(zhí)行熱備份,確保數(shù)據(jù)的一致性和可恢復性。Percona XtraBackup 是該工具的最新版本,帶來了若干改進和新功能。

工作原理

1. 基本原理

重做日志(Redo Log)

  • 重做日志 是 InnoDB 用于記錄每一個數(shù)據(jù)更改的日志文件。即使在崩潰的情況下,重做日志也可以幫助恢復數(shù)據(jù)的一致性。
  • InnoDB 啟動時會檢查數(shù)據(jù)文件和重做日志,并執(zhí)行兩個步驟:

(1)應用已提交的事務:將已提交的事務日志條目應用到數(shù)據(jù)文件,使其最新。

(2)撤銷未提交的事務:撤銷任何已修改但未提交的數(shù)據(jù),以確保數(shù)據(jù)一致性。

2. 備份過程

啟動備份

  1. XtraBackup 啟動時會記錄當前的 LSN(Log Sequence Number,日志序列號),這是數(shù)據(jù)庫在該時間點的快照。

復制數(shù)據(jù)文件

  • XtraBackup 開始復制 InnoDB 數(shù)據(jù)文件。由于數(shù)據(jù)文件在備份期間可能發(fā)生更改,因此它們可能會反映不同時間點的數(shù)據(jù)狀態(tài)。

復制重做日志

  • XtraBackup 在后臺運行一個進程,監(jiān)視并復制重做日志中的更改。這是為了確保所有從備份開始到結束的更改都被捕捉到。
  • 重做日志以循環(huán)方式寫入,當日志空間用完時會重用,因此 XtraBackup 需要持續(xù)監(jiān)視日志,以防遺漏任何更改。

3. 恢復過程

應用重做日志

  • 備份完成后,XtraBackup 會執(zhí)行準備階段,即將重做日志中的所有更改應用到數(shù)據(jù)文件。這一步類似于 InnoDB 的崩潰恢復過程。
  • 通過應用重做日志,確保數(shù)據(jù)文件在恢復時的一致性和完整性。

4. 使用備份鎖

備份鎖

  • XtraBackup 利用 MySQL 8.0 中引入的備份鎖 LOCK INSTANCE FOR BACKUPLOCK BINLOG FOR BACKUP,這些鎖在備份過程中可以避免長時間的表鎖定。
  • 當備份鎖不可用時,XtraBackup 使用 FLUSH TABLES WITH READ LOCK 鎖定 MyISAM 和其他非 InnoDB 表,但只在最后階段短時間內進行鎖定,以避免對 DML 操作的影響。

5. 增量備份

增量備份

  • 增量備份基于上一次備份的 LSN,僅備份從那時起發(fā)生的更改。這樣可以減少備份時間和存儲空間。
  • 增量備份完成后,可以與基礎備份和之前的增量備份合并,通過應用重做日志來恢復完整數(shù)據(jù)。

6. 具體步驟

1)記錄 LSN:啟動備份時記錄當前 LSN。

2)復制數(shù)據(jù)文件:開始復制數(shù)據(jù)文件。

3)復制重做日志:持續(xù)監(jiān)視和復制重做日志中的更改。

4)結束時的操作

  • 如果需要鎖定 MyISAM 表,XtraBackup 會在最后階段短時間內鎖定這些表,避免長時間阻塞。
  • 備份完成后,XtraBackup 將重做日志中的更改應用到數(shù)據(jù)文件,確保數(shù)據(jù)一致性。

7. 恢復

1恢復數(shù)據(jù)文件:使用--copy-back--move-back 選項將備份數(shù)據(jù)恢復到目標目錄。

2應用重做日志:在準備階段,XtraBackup 將重做日志中的所有更改應用到數(shù)據(jù)文件,確保數(shù)據(jù)庫的一致性。

3啟動數(shù)據(jù)庫:恢復完成后,可以啟動數(shù)據(jù)庫并正常使用。

優(yōu)點

  • 無停機備份:支持在線備份,無需停止數(shù)據(jù)庫服務。
  • 高性能:備份過程中對數(shù)據(jù)庫性能影響最小。
  • 增量備份:支持增量備份,減少存儲空間和備份時間。
  • 數(shù)據(jù)一致性:保證備份期間數(shù)據(jù)的一致性。
  • 恢復靈活:支持部分恢復和時間點恢復。
  • 速度快恢復時間更快,正常運行時間更長
  • 資源限制:控制IO、線程、內存等資源限制。

缺點

  1. 學習曲線:對于新手來說,配置和使用可能需要一定的學習時間。
  2. 復雜環(huán)境支持:在某些復雜環(huán)境中(如多源復制或非常大的數(shù)據(jù)庫),配置和使用可能較為復雜。
  3. 硬件需求:增量備份和還原可能需要更多的硬件資源(如磁盤和內存)。

版本限制

  • XtraBackup 2.4:適用于 MySQL 5.6 和 5.7 及相應版本的 Percona Server 和 MariaDB。
  • XtraBackup 8.0:適用于 MySQL 8.0 及相應版本的 Percona Server。
  • XtraBackup 8.3:主要用于 MySQL 8.3及相應版本的 Percona Server。

使用場景

  • 高可用環(huán)境:需要在不影響數(shù)據(jù)庫運行的情況下進行備份。
  • 大型數(shù)據(jù)庫:適合處理大型數(shù)據(jù)庫的備份需求。
  • 數(shù)據(jù)恢復:提供可靠的數(shù)據(jù)恢復解決方案,包括部分恢復和時間點恢復。
  • 增量備份需求:需要定期進行增量備份以節(jié)省存儲空間和備份時間。

安裝步驟

Percona-XtraBackup-8.3.0

1、下載rpm包

wget

https://downloads.percona.com/downloads/Percona-XtraBackup-innovative-release/Percona-XtraBackup-8.3.0-1/binary/redhat/7/x86_64/percona-xtrabackup-83-8.3.0-1.1.el7.x86_64.rpm

2、安裝

Shell > yum install epel-release
Shell > yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm sudo 
Shell > percona-release setup ps80
Shell > yum install openssl-libs libev libgcrypt procps-ng perl-DBD-MySQL zstd
Shell > rpm -ivh percona-xtrabackup-83-8.3.0-1.1.el8.x86_64.rpm

Percona-XtraBackup-8.0.35

Shell > yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm 
Shell > percona-release enable-only tools 
Shell > yum install openssl-libs libev libgcrypt procps-ng perl-DBD-MySQL zstd 
Shell > yum install percona-xtrabackup-80

賬戶授權

CREATE USER 'xtrabackup'@'localhost' IDENTIFIED BY 's3cr%T';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'xtrabackup'@'localhost';
GRANT SELECT ON performance_schema.log_status TO 'xtrabackup'@'localhost';
GRANT SELECT ON performance_schema.keyring_component_status TO xtrabackup@'localhost';
GRANT SELECT ON performance_schema.replication_group_members TO xtrabackup@'localhost';
FLUSH PRIVILEGES;

備份示例

流式全量備份

  • 流式全量備份到遠程主機,不在本機落盤
xtrabackup --defaults-file=/etc/my.cnf --port=3306 --user=xtrabackup --host=10.20.20.20 --password='*****sel'  --compress --compress-threads=4 --parallel=4 --throttle=300  --stream=xbstream --use-memory=200MB --tmpdir=/tmp --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check  --backup > /jesong/xtrabackup/backup-image_`date +"%F_%H_%M_%S"`
  • 流式全量備份到遠程主機,不在本機落盤
xtrabackup --defaults-file=/etc/my.cnf --port=3306 --user=xtrabackup --host=10.20.20.20 --password='*****sel' --compress --compress-threads=4 --parallel=4 --throttle=300 --stream=xbstream --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup > /jesong/xtrabackup/backup-image_`date +"%F_%H_%M_%S"` | sshpass -p 'Tisdfsdfsdfdsfdsfds' ssh -p 22 root@10.20.20.20 "cat - > /jesong/backup.xbstream"
  • 鏡像抽取
xbstream -x < /jesong/xtrabackup/backup-image -C /jesong/xtrabackup/xbstream-dir/
  • 解壓
xtrabackup --decompress --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/xbstream-dir/
  • 應用日志:
xtrabackup --prepare --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/xbstream-dir/
  • 恢復
xtrabackup --copy-back --target-dir=/jesong/xtrabackup/xbstream-dir/

壓縮全量備份

  • 全量備份本地壓縮
xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --compress --compress-threads=4 --parallel=4 --throttle=300 --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --target-dir=/jesong/xtrabackup/backup-image_`date +"%F_%H_%M_%S"`


  • 解壓
xtrabackup --decompress --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/backup-image_2024-05-30_17_56_25/
  • 應用日志
xtrabackup --prepare --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/backup-image_2024-05-30_17_56_25/
  • 恢復
xtrabackup --copy-back --target-dir=/jesong/xtrabackup/xbstream-dir/

增量備份

  • 流式全量備份
xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --compress --compress-threads=4 --parallel=4 --throttle=300 --stream=xbstream --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --extra-lsndir=/jesong/xtrabackup/full > /jesong/xtrabackup/full/backup-image
  • 增量
1xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --compress --compress-threads=4 --parallel=4 --throttle=300 --stream=xbstream --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --extra-lsndir=/jesong/xtrabackup/incremental_1 --incremental-basedir=/jesong/xtrabackup/full > /jesong/xtrabackup/incremental_1/backup-image
  • 增量
2xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --compress --compress-threads=4 --parallel=4 --throttle=300 --stream=xbstream --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --extra-lsndir=/jesong/xtrabackup/incremental_2 --incremental-basedir=/jesong/xtrabackup/incremental_1 > /jesong/xtrabackup/incremental_2/backup-image


  • 鏡像抽取全量
xbstream -x < /jesong/xtrabackup/full/backup-image -C /jesong/xtrabackup/xbstream-dir/
  • 增量
1xbstream -x < /jesong/xtrabackup/incremental_1/backup-image -C /jesong/xtrabackup/incremental_1_work
  • 增量
2xbstream -x < /jesong/xtrabackup/incremental_2/backup-image -C /jesong/xtrabackup/incremental_2_work

解壓

  • 全量
xtrabackup --decompress --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/xbstream-dir/
  • 增量
1xtrabackup --decompress --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/incremental_1_work
  • 增量
2xtrabackup --decompress --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/incremental_2_work

應用日志:--apply-log-only在合并增量備份時應使用,但最后一個備份除外

  • 全量
xtrabackup --prepare --apply-log-only --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/xbstream-dir/
  • 增量
1xtrabackup --prepare --apply-log-only --parallel=4 --use-memory=200MB --incremental-dir=/jesong/xtrabackup/incremental_1_work --target-dir=/jesong/xtrabackup/xbstream-dir/
  • 增量
2xtrabackup --prepare --parallel=4 --use-memory=200MB --incremental-dir=/jesong/xtrabackup/incremental_2_work --target-dir=/jesong/xtrabackup/xbstream-dir/
  • 恢復
xtrabackup --copy-back --target-dir=/jesong/xtrabackup/xbstream-dir/

為什么最后一步不使用--apply-log-only

  • 執(zhí)行回滾:在應用最后一個增量備份時不使用--apply-log-only,這樣會執(zhí)行回滾操作,將未提交的事務回滾,使得備份數(shù)據(jù)變得一致。
  • 備份一致性:即使在最后一步使用了--apply-log-only,備份仍然是一致的,但在恢復后數(shù)據(jù)庫服務器會在啟動時執(zhí)行回滾操作。這可能會增加恢復時間,因此推薦在備份準備階段完成回滾。

部分備份

  • 指定表或以什么開頭都會備份
xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --parallel=4 --throttle=300 --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --datadir=/jesong/mysql --target-dir=/jesong/xtrabackup/test --tables="^tolldb[.]tc_deduction_plan"
  • 庫里的表
xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --parallel=4 --throttle=300 --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --datadir=/jesong/mysql --target-dir=/jesong/xtrabackup/test --tables="^tolldb[.].*"
  • 文件方式導入
echo "mydatabase.mytable" > /tmp/tables.txt
xtrabackup --defaults-file=/etc/my.cnf --slave-info --port=3306 --user=xtrabackup --host=196.168.10.10 --password='*******' --parallel=4 --throttle=300 --use-memory=200MB --ftwrl-wait-timeout=120 --kill-long-queries-timeout=60 --kill-long-query-type=all --no-server-version-check --backup --datadir=/jesong/mysql --target-dir=/jesong/xtrabackup/test --tables-file=/tmp/tables.txt
  • 應用日志
xtrabackup --prepare --export --parallel=4 --use-memory=200MB --target-dir=/jesong/xtrabackup/test

恢復方案一:需要清空數(shù)據(jù)目錄

xtrabackup --copy-back --target-dir=/jesong/xtrabackup/test

恢復方案二:拷貝數(shù)據(jù)文件

要從備份中恢復分區(qū),必須丟棄表空間的該表:

ALTER TABLE name_p4 DISCARD TABLESPACE;

下一步是將文件從備份復制到MySQL數(shù)據(jù)目錄:.ibd

cp /mnt/backup/2012-08-28_10-29-09/imdb/name#P#p4.ibd /var/lib/mysql/imdb/name_p4.ibd

最后一步是導入表空間:

ALTER TABLE name_p4 IMPORT TABLESPACE;

相關參數(shù)

  • --print-defaults 打印程序參數(shù)列表并退出。
  • --no-defaults 不從任何選項文件中讀取默認選項,除了登錄文件。
  • --defaults-file=# 只從指定的文件 # 讀取默認選項。
  • --defaults-extra-file=# 在讀取全局文件后讀取此文件。
  • --defaults-group-suffix=# 還讀取與 concat(group, suffix) 結合的組。
  • --login-path=# 從登錄文件中讀取此路徑。
  • --no-login-paths 不從登錄路徑文件中讀取登錄路徑。
  • -v, --version 打印 xtrabackup 版本信息。
  • --target-dir=name 目標目錄。
  • --backup 將備份存儲到 target-dir。
  • --prepare 準備一個備份以在備份的 MySQL 服務器上啟動。
  • --export 在準備時創(chuàng)建文件以導入到另一個數(shù)據(jù)庫。
  • --apply-log-only 在準備階段應用日志后停止恢復過程,不繼續(xù)推進 LSN。
  • --print-param 打印 mysqld 需要的參數(shù)及其當前值。
  • --use-memory=# 使用此值代替 buffer_pool_size。
  • --use-free-memory-pct=# 此選項指定在準備階段緩沖池使用的空閑內存百分比(默認是 0% - 禁用)。
  • --estimate-memory 啟用/禁用估算準備備份所需的內存。估算在備份期間進行。(默認關閉)
  • --throttle=# 限制每秒 IO 操作(讀寫對)的數(shù)量,用于 --backup。
  • --log[=name] 為兼容 MySQL 選項而忽略的選項。
  • --log-copy-interval=# 日志復制線程之間檢查的時間間隔(以毫秒為單位,默認是 1 秒)。
  • --extra-lsndir=name (用于 --backup):在此目錄中保存 xtrabackup_checkpoints 文件的額外副本。
  • --incremental-lsn=name (用于 --backup):僅復制比指定 LSN 'high:low' 更新的 .ibd 頁面。
  • --incremental-basedir=name (用于 --backup):僅復制比指定目錄中的備份更新的 .ibd 頁面。
  • --redo-log-arch-dir=name 設置重做日志存檔目標目錄(如果服務器尚未設置)。
  • --incremental-dir=name (用于 --prepare):應用增量目錄中的 .delta 文件和日志文件。
  • --to-archived-lsn=# 不應用具有較大日志序列號的存檔日志。
  • --tables=name 使用表名的正則表達式進行過濾。
  • --tables-file=name 通過文件中的確切數(shù)據(jù)庫表名列表進行過濾。
  • --databases=name 通過數(shù)據(jù)庫列表進行過濾。
  • --databases-file=name 通過文件中的數(shù)據(jù)庫列表進行過濾。
  • --tables-exclude=name 使用表名的正則表達式進行過濾,并排除匹配的名稱。
  • --databases-exclude=name 基于名稱排除數(shù)據(jù)庫,并排除匹配的名稱。
  • --create-ib-logfile **當前不起作用** 創(chuàng)建 ib_logfile* 文件用于 '--prepare'。
  • --stream[=name] 使用 xbstream 格式流傳輸所有備份文件。
  • --compress[=name] 使用指定的壓縮算法壓縮單個備份文件。支持的算法有 'lz4' 和 'zstd'。默認算法是 'zstd'。
  • --compress-threads=# 并行數(shù)據(jù)壓縮的線程數(shù)。默認值為 1。
  • --compress-chunk-size=# 壓縮線程的工作緩沖區(qū)大?。ㄒ宰止?jié)為單位)。默認值為 64K。
  • --compress-zstd-level=# Zstandard 壓縮級別,從 1 到 19。默認值為 1。
  • --encrypt=name 使用指定的加密算法加密單個備份文件。
  • --encrypt-key=name 使用的加密密鑰。
  • --encrypt-key-file=name 包含加密密鑰的文件。
  • --encrypt-threads=# 并行數(shù)據(jù)加密的線程數(shù)。默認值為 1。
  • --encrypt-chunk-size=# 加密線程的工作緩沖區(qū)大?。ㄒ宰止?jié)為單位)。默認值為 64K。
  • --rebuild-threads=# 使用此線程數(shù)重建緊湊備份中的索引。僅在 --prepare 和 --rebuild-indexes 選項下有效。
  • --incremental-force-scan 即使服務器啟用了頁面跟蹤,也執(zhí)行全掃描增量備份。
  • --close-files 不保持文件打開。請自行承擔風險。
  • --core-file 在致命信號時寫入核心文件。
  • --copy-back 將先前制作的備份中的所有文件從備份目錄復制到其原始位置。
  • --move-back 將先前制作的備份中的所有文件從備份目錄移動到實際的數(shù)據(jù)目錄位置。請謹慎使用,因為這會刪除備份文件。
  • --galera-info 創(chuàng)建 xtrabackup_galera_info 文件,包含備份時本地節(jié)點的狀態(tài)。
  • --slave-info 備份復制從服務器時打印主服務器的二進制日志位置和名稱。
  • --page-tracking 使用服務器的頁面跟蹤功能進行增量備份。
  • --no-lock 禁用鎖定 DDL 和表鎖定。
  • --lock-ddl 在備份開始時鎖定表/實例以阻止所有 DDL 操作。
  • --lock-ddl-timeout=# 如果在給定超時時間內 LOCK TABLES FOR BACKUP 未返回,則中止備份。
  • --lock-ddl-per-table 在 xtrabackup 開始復制階段之前為每個表鎖定 DDL,直到備份完成。
  • --backup-lock-timeout=# 獲取元數(shù)據(jù)鎖的嘗試超時時間(以秒為單位)。
  • --backup-lock-retry-count=# 獲取元數(shù)據(jù)鎖的嘗試次數(shù)。
  • --dump-innodb-buffer-pool 通過設置 innodb_buffer_pool_dump_now=ON 指示 MySQL 服務器轉儲 innodb 緩沖池。
  • --dump-innodb-buffer-pool-timeout=# 指定 xtrabackup 等待 innodb 緩沖池轉儲完成的秒數(shù)。
  • --dump-innodb-buffer-pool-pct=# 指定要轉儲的緩沖池的百分比。
  • --safe-slave-backup 在備份開始時停止從服務器 SQL 線程,直到?jīng)]有打開的臨時表為止。
  • --rsync 使用 rsync 實用程序優(yōu)化本地文件傳輸。
  • --force-non-empty-directories 在 --copy-back 或 --move-back 傳輸文件到非空目錄時指定此選項。
  • --no-server-version-check 允許在服務器版本高于 PXB 支持的版本時繼續(xù)備份。
  • --no-version-check 禁用版本檢查。
  • --tables-compatibility-check 啟用引擎兼容性警告。
  • --no-backup-locks 控制是否在備份階段使用備份鎖,而不是 FLUSH TABLES WITH READ LOCK。
  • --rollback-prepared-trx 強制回滾準備的 InnoDB 事務。
  • --decompress 解壓縮使用 --compress 選項壓縮的所有文件。
  • -u, --user=name 指定連接到服務器時使用的 MySQL 用戶名。
  • -H, --host=name 指定使用 TCP/IP 連接到數(shù)據(jù)庫服務器時的主機。
  • -P, --port=# 指定使用 TCP/IP 連接到數(shù)據(jù)庫服務器時的端口。
  • -p, --password[=name] 指定連接到數(shù)據(jù)庫時使用的密碼。
  • -S, --socket=name 指定使用 UNIX 域套接字連接到本地數(shù)據(jù)庫服務器時的套接字。
  • --incremental-history-name=name 指定存儲在 PERCONA_SCHEMA.xtrabackup_history 歷史記錄中的備份系列的名稱,以此為基礎進行增量備份。
  • --incremental-history-uuid=name 指定特定歷史記錄的UUID,存儲在PERCONA_SCHEMA.xtrabackup_history表中,用作增量備份的基礎。
  • --decrypt=name 解密先前使用--encrypt選項創(chuàng)建的備份中所有帶有.xbcrypt擴展名的文件。
  • --remove-original 解密和解壓縮后刪除所有的.qp、.zst、.lz4和.xbcrypt文件。
  • --ftwrl-wait-query-type=name 指定在innobackupex開始全局鎖前允許完成的查詢類型。默認為所有。
  • --kill-long-query-type=name 指定用于解鎖全局鎖的需要被終止的查詢類型。默認為"SELECT"。
  • --history[=name] 啟用備份歷史記錄跟蹤到PERCONA_SCHEMA.xtrabackup_history表??蛇x的歷史系列名稱可用于當前備份記錄。
  • --kill-long-queries-timeout=# 指定innobackupex在啟動FLUSH TABLES WITH READ LOCK和終止阻塞它的查詢之間等待的秒數(shù)。默認為0,表示不終止任何查詢。
  • --ftwrl-wait-timeout=# 指定innobackupex在運行FTWRL之前等待阻塞FTWRL的查詢的秒數(shù)。如果超時時仍有此類查詢,innobackupex將終止并返回錯誤。默認為0,即立即啟動FTWRL。
  • --ftwrl-wait-threshold=# 指定innobackupex檢測到長時間運行查詢的運行時間閾值,用于非零值的--ftwrl-wait-timeout。直到存在此類長時間運行查詢,F(xiàn)TWRL才會啟動。如果--ftwrl-wait-timeout為0,則此選項無效。默認值為60秒。
  • --debug-sleep-before-unlock=# 僅用于XtraBackup測試套件的調試選項,指定睡眠時間(秒)。
  • --safe-slave-backup-timeout=# --safe-slave-backup應該等待Slave_open_temp_tables變?yōu)榱愕拿霐?shù)。默認為300秒。
  • --check-privileges 在執(zhí)行任何查詢之前檢查數(shù)據(jù)庫用戶的權限。
  • --read-buffer-size[=#] 設置數(shù)據(jù)文件讀取緩沖區(qū)大小,給定的值會按頁大小進行縮放。默認為10Mb。
  • --server-public-key-path=name 服務器公共RSA密鑰的文件路徑,以PEM格式。
  • --get-server-public-key 獲取服務器的公鑰。
  • --ssl-mode=name SSL連接模式。
  • --ssl-ca=name PEM格式的CA文件。
  • --ssl-capath=name CA目錄。
  • --ssl-cert=name PEM格式的X509證書。
  • --ssl-cipher=name 使用的SSL密碼。
  • --ssl-key=name PEM格式的X509密鑰。
  • --ssl-crl=name 證書吊銷列表。
  • --ssl-crlpath=name 證書吊銷列表路徑。
  • --tls-version=name 使用的TLS版本,允許的值有:TLSv1.2、TLSv1.3。
  • --ssl-fips-mode=name SSL FIPS模式(僅適用于OpenSSL),允許的值有:OFF、ON、STRICT。
  • --tls-ciphersuites=name 使用的TLS v1.3密碼套件。
  • --ssl-session-data=name 用于啟用SSL會話重用的會話數(shù)據(jù)文件。
  • --ssl-session-data-continue-on-failed-reuse 如果設置為ON,即使無法重用會話數(shù)據(jù),也允許連接成功。
  • --tls-sni-servername=name 傳遞給服務器的SNI服務器名稱。
  • --transition-key[=name] 用于加密表空間密鑰的過渡密鑰。
  • --xtrabackup-plugin-dir=name xtrabackup插件的目錄。
  • --plugin-load=name 要加載的插件列表。
  • --generate-new-master-key 在執(zhí)行copy-back時生成新的主密鑰。
  • --generate-transition-key 生成過渡密鑰并存儲到密鑰環(huán)中。
  • --keyring-file-data[=name] 密鑰環(huán)文件的路徑。
  • --component-keyring-config[=name] 加載組件配置的路徑。用于--prepare、--move-back、--copy-back。
  • --component-keyring-file-config[=name] 加載密鑰環(huán)組件配置的路徑。用于--prepare、--move-back、--copy-back。(已棄用,請使用--component-keyring-config代替)
  • --parallel=# 并行數(shù)據(jù)文件傳輸?shù)木€程數(shù)。默認值為1。
  • --fifo-streams=# 用于并行數(shù)據(jù)文件流的FIFO文件數(shù)。將此參數(shù)設置為1將禁用FIFO,數(shù)據(jù)流將發(fā)送到STDOUT。
  • --fifo-dir=name 寫入命名管道的目錄。如果省略,則使用--target-dir。
  • --fifo-timeout=# 等待另一端打開FIFO流以供讀取的秒數(shù)。默認為60秒。
  • --strict 在傳遞給xtrabackup的參數(shù)無效時失敗并顯示錯誤。(默認啟用;使用--skip-strict禁用)
  • --rocksdb-checkpoint-max-age=# ROCKSDB檢查點的最大年齡(秒)。
  • --rocksdb-checkpoint-max-count=# ROCKSDB檢查點的最大計數(shù)。
  • -h, --datadir=name 數(shù)據(jù)庫根目錄的路徑。
  • -t, --tmpdir=name 臨時文件的路徑??梢灾付ǘ鄠€路徑,用冒號(:)分隔,此時會輪流使用這些路徑。
  • --log[=name] MySQL選項兼容性中忽略的選項。
  • --log-bin[=name] 日志序列的基本名稱。
  • --log-bin-index=name 保存二進制日志文件名稱的文件。
  • --innodb[=name] MySQL選項兼容性中忽略的選項。
  • --innodb-adaptive-hash-index 啟用InnoDB自適應哈希索引(默認啟用)。使用--skip-innodb-adaptive-hash-index來禁用。(默認啟用;使用--skip-innodb-adaptive-hash-index來禁用。)
  • --innodb-autoextend-increment=# 數(shù)據(jù)文件自動擴展增量(以兆字節(jié)為單位)。
  • --innodb-buffer-pool-size=# InnoDB用于緩存數(shù)據(jù)和索引的內存緩沖池大小。
  • --innodb-checksums 啟用InnoDB校驗和驗證(默認啟用)。使用--skip-innodb-checksums來禁用。(默認啟用;使用--skip-innodb-checksums來禁用。)
  • --innodb-data-file-path=name 各個文件及其大小的路徑。
  • --innodb-data-home-dir=name InnoDB表空間的公共部分。
  • --innodb-io-capacity[=#] 服務器可以執(zhí)行的IOPs數(shù)。調整后臺IO速率。
  • --innodb-read-io-threads=# InnoDB后臺讀IO線程數(shù)。
  • --innodb-write-io-threads=# InnoDB后臺寫IO線程數(shù)。
  • --innodb-file-per-table 將每個InnoDB表存儲到數(shù)據(jù)庫目錄中的.ibd文件中。
  • --innodb-flush-log-at-trx-commit[=#] 設置為0(每秒寫入和刷新一次)、1(每個事務提交時寫入和刷新)或2(提交時寫入、每秒刷新一次)。
  • --innodb-flush-method=name 刷新數(shù)據(jù)的方法。
  • --innodb-force-recovery=# 在數(shù)據(jù)庫磁盤映像損壞時幫助保存數(shù)據(jù)。
  • --innodb-log-buffer-size=# InnoDB用于將日志寫入磁盤上日志文件的緩沖區(qū)大小。
  • --innodb-log-file-size=# 日志組中每個日志文件的大小。
  • --innodb-log-files-in-group=# 日志組中的日志文件數(shù)。InnoDB循環(huán)寫入這些文件。建議值為3。
  • --innodb-log-group-home-dir=name InnoDB日志文件的路徑。
  • --innodb-max-dirty-pages-pct=# 緩沖池中允許的臟頁百分比。
  • --innodb-open-files=# 同時在最大值上保持打開的InnoDB文件數(shù)。
  • --innodb-use-native-aio 如果平臺支持,則使用本機AIO。
  • --innodb-page-size=# 數(shù)據(jù)庫的通用頁大小。
  • --innodb-log-block-size=# 事務日志文件的日志塊大小。不支持更改已創(chuàng)建的日志文件。請自行決定風險!
  • --innodb-buffer-pool-filename=name 用于轉儲/加載InnoDB緩沖池的文件名。
  • --debug-sync=name 調試同步點。僅用于xtrabackup測試套件。
  • --innodb-checksum-algorithm=name InnoDB用于頁面校驗和的算法。[CRC32, STRICT_CRC32, INNODB, STRICT_INNODB, NONE, STRICT_NONE]
  • --innodb-log-checksums 是否計算并要求InnoDB重做日志塊的校驗和。(默認啟用;使用--skip-innodb-log-checksums來禁用。)
  • --innodb-undo-directory=name Undo表空間文件所在的目錄。此路徑可以是絕對路徑。
  • --innodb-directories=name 用于掃描表空間文件的目錄列表。默認為掃描'innodb-data-home-dir;innodb-undo-directory;datadir'。
  • --temp-tablespaces-dir=name 臨時表空間文件所在的目錄。此路徑可以是絕對路徑。
  • --innodb-undo-tablespaces=# 使用的撤消表空間數(shù)。
  • --innodb-redo-log-encrypt 啟用或禁用REDO表空間的加密。
  • --innodb-undo-log-encrypt 啟用或禁用UNDO表空間的加密。
  • --defaults-group=name 配置文件中的默認組(默認為“mysqld”)。
  • --open-files-limit=# 使用setrlimit()保留的最大文件描述符數(shù)。
  • --server-id=# 被備份的服務器實例。
  • --rocksdb-datadir=name RocksDB數(shù)據(jù)目錄。
  • --rocksdb-wal-dir=name RocksDB WAL目錄。
  • --register-redo-log-consumer 在備份開始時注冊重做日志消費者。如果啟用此選項,將阻止服務器清除重做日志,如果PXB重做,跟隨線程仍在復制,則會阻塞服務器上的DML。

總結

Percona XtraBackup 8 是一個強大的備份工具,適用于需要高可用性和數(shù)據(jù)一致性的 MySQL 數(shù)據(jù)庫環(huán)境。它的主要優(yōu)點包括無停機備份、高性能、增量備份和靈活的恢復選項。盡管有一定的學習曲線,但其開源免費、可靠性高的特性使其成為大型數(shù)據(jù)庫備份的理想選擇。通過合理配置和使用相關參數(shù),可以實現(xiàn)高效的全量和增量備份,確保數(shù)據(jù)的安全性和可恢復性。

作者介紹

吳守陽,51CTO社區(qū)編輯,擁有8年DBA工作經(jīng)驗,熟練管理MySQL、Redis、MongoDB等開源數(shù)據(jù)庫。精通性能優(yōu)化、備份恢復和高可用性架構設計。善于故障排除和自動化運維,保障系統(tǒng)穩(wěn)定可靠。具備良好的團隊合作和溝通能力,致力于為企業(yè)提供高效可靠的數(shù)據(jù)庫解決方案。

責任編輯:華軒 來源: 51CTO
相關推薦

2023-01-11 08:05:23

XtraBackupMySQL備份

2009-12-15 15:35:56

Ruby symbol

2024-06-13 08:00:00

MySQLMySQLDump數(shù)據(jù)庫

2021-10-27 08:00:00

DevSecOps開發(fā)安全

2023-11-29 09:00:00

KubernetesDevOps

2024-07-03 14:14:07

2020-09-22 12:22:32

Windows TerWindowsLinux

2024-08-05 09:58:24

2010-12-14 11:46:55

職場

2023-05-31 08:54:14

MySQL邏輯備份

2015-10-29 13:44:06

MySQLinnodb引擎備份

2017-02-27 16:42:23

Spark識體系

2021-11-23 16:00:56

DevOps價值流價值流優(yōu)化

2023-12-26 08:00:00

微前端React

2022-05-31 08:00:00

加密貨幣數(shù)字化比特幣

2024-07-18 09:07:04

Python窗口操作

2009-10-21 10:03:36

綜合布線標準

2009-12-09 10:12:28

嵌入式Linux

2011-12-14 10:31:43

2019-06-21 15:29:26

Kubernetes網(wǎng)絡標準容器
點贊
收藏

51CTO技術棧公眾號