

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Percona XtraBackup
<a name="percona-xtrabackup"></a>

**重要**  
MariaDB 10.3 版或更新版本不支援 Percona XtraBackup，10.1 版和 10.2 版僅部分支援 Percona XtraBackup。

[Percona XtraBackup](https://docs.percona.com/percona-xtrabackup/8.0/index.html) 是 MySQL 和 MariaDB 的常見開放原始碼暖備份軟體，可為 InnoDB 和 XtraDB 儲存引擎進行非封鎖備份。它適用於 MySQL 或 MariaDB 伺服器。如需工具及其部分功能和優點的詳細資訊，請參閱 [Percona XtraBackup 文件中的關於](https://docs.percona.com/percona-xtrabackup/8.0/about-xtrabackup.html) Percona XtraBackup。

此工具使用實體遷移方法。它會直接複製 MySQL 或 MariaDB 資料目錄及其中的檔案。對於大型資料庫，例如大於 100 GB 的資料庫，這可以提供比其他一些工具更好的還原時間。您可以建立現場部署來源資料庫的備份、將備份檔案遷移至雲端，然後在新的目標資料庫執行個體上還原備份。

下圖顯示使用 Percona XtraBackup 備份檔案遷移資料庫所涉及的高階步驟。根據備份檔案的大小，有兩個選項可用於將備份傳輸至 中的 Amazon Simple Storage Service (Amazon S3) 儲存貯體 AWS 雲端。



![遷移 Percona XtraBackup 檔案並在資料庫執行個體上還原檔案的 AWS 圖表。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/migration-large-mysql-mariadb-databases/images/percona-xtrabackup-migration-aws.png)


以下是使用 Percona XtraBackup 將資料庫遷移至 的步驟 AWS 雲端：

1. 在內部部署伺服器上安裝 Percona XtraBackup。如果您使用的是 Amazon Aurora MySQL 第 2 版或 Amazon RDS，請參閱[安裝 Percona XtraBackup 2.4。](https://docs.percona.com/percona-xtrabackup/2.4/installation.html)如果您使用的是 Amazon Aurora MySQL 第 3 版，請參閱 [Percona XtraBackup 文件中的安裝 Percona XtraBackup 8.0](https://docs.percona.com/percona-xtrabackup/8.0/installation.html)。 XtraBackup 

1. 建立來源 MySQL 或 MariaDB 資料庫的完整備份。如需 Percona XtraBackup 2.4 的說明，請參閱[完整備份](https://docs.percona.com/percona-xtrabackup/2.4/backup_scenarios/full_backup.html)。如需 Percona XtraBackup 8.0 的說明，請參閱[建立完整備份](https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html)。

1. 使用組織中核准的服務或工具，透過網際網路傳輸備份檔案，如下所示：
   + [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
   + [AWS Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/client-vpn-user-what-is.html)
   + [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)
   + [Amazon S3 檔案閘道](https://docs.aws.amazon.com/filegateway/latest/files3/what-is-file-s3.html) （如需詳細資訊，請參閱本指南[使用 Amazon S3 File Gateway 傳輸備份檔案](amazon-s3-file-gateway.md)中的 。)
   + [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/getting-started/hands-on/backup-to-s3-cli/)

1. 從 Amazon S3 儲存貯體，將備份檔案還原至目標資料庫執行個體。如需詳細說明，請參閱下列主題：
   + 如需 Aurora MySQL 相容版本，請參閱《[Amazon RDS 文件》中的使用 Amazon S3 儲存貯體從 MySQL 遷移資料](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.Restore)。
   + 對於 Amazon RDS for MySQL 或 Amazon EC2，請參閱[將資料匯入 MySQL 資料庫執行個體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.Other.html)。
   + 對於 Amazon RDS for MariaDB 或 Amazon EC2，請參閱[將資料匯入 MariaDB 資料庫執行個體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MariaDB.Procedural.Importing.html)。

1. （選用） 您可以設定來源資料庫與目標資料庫執行個體之間的複寫。您可以使用二進位日誌 (binlog) 複寫來減少停機時間。如需詳細資訊，請參閱下列內容：
   + 在 MySQL 文件中[設定複寫來源組態](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html) 
   + 對於 Amazon Aurora，請參閱下列內容：
     + [使用 Aurora 文件中的複寫將 Amazon Aurora MySQL 資料庫叢集與 MySQL 資料庫同步](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync) 
     + [Aurora 文件中的在 Amazon Aurora 中使用 binlog 複寫](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html) 
   + 如需 Amazon RDS，請參閱下列內容：
     + [在 Amazon RDS 文件中使用 MySQL 複寫](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.html) 
     + [在 Amazon RDS 文件中使用 MariaDB 複寫](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MariaDB.Replication.html) 
   + 對於 Amazon EC2，請參閱下列內容：
     + 在 MySQL 文件中[設定二進位日誌檔案位置型複寫](https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto.html) 
     + 在 MySQL [文件中設定複本](https://dev.mysql.com/doc/refman/8.0/en/replication-setup-replicas.html) 
     + 在 MariaDB 文件中[設定複寫](https://mariadb.com/kb/en/setting-up-replication/) 

## 優點
<a name="advantages-percona-xtrabackup"></a>
+ 由於 Percona XtraBackup 使用實體遷移方法，還原程序通常比使用邏輯遷移方法的工具更快。這是因為效能受限於磁碟或網路輸送量，而不是資料處理所需的運算資源。
+ 由於還原程序是將檔案從 S3 儲存貯體直接複製到目標資料庫執行個體，因此 Percona XtraBackup 檔案還原的速度通常比使用其他工具建立的備份檔案更快。
+ Percona XtraBackup 可以調整。例如，它支援多個執行緒，協助您更快速地複製檔案，並支援壓縮以減少備份的大小。

## 限制
<a name="limitations-percona-xtrabackup"></a>
+ 無法進行離線備份，因為 Percona XtraBackup 必須能夠存取來源資料庫伺服器。
+ Percona XtraBackup 只能在具有相同系統架構的系統上使用。例如，無法將 Intel for Windows Server 上執行的來源資料庫備份還原至 ARM for Linux 目標伺服器。
+ MariaDB 10.3 版或更新版本不支援 Percona XtraBackup，MariaDB 10.2 版和 10.1 版僅部分支援 Percona XtraBackup。如需詳細資訊，請參閱 [ MariaDB 知識庫中的 Percona XtraBackup 概觀：與 MariaDB 的相容性](https://mariadb.com/kb/en/percona-xtrabackup-overview/#compatibility-with-mariadb)。 MariaDB 
+ 您無法使用 Percona XtraBackup 將來源 MariaDB 資料庫還原至目標 MySQL 資料庫執行個體，例如 Amazon RDS for MySQL 或 Aurora MySQL 相容。
+ 您可以在 S3 儲存貯體中存放的資料總量和物件數量不受限制，但檔案大小上限為 5 TB。如果您的備份檔案超過 5 TB，您可以將其分割成多個較小的檔案。
+ 當`innodb_file_per_table`設定關閉時，Percona XtraBackup 不支援使用 `--tables`、`--tables-exclude`、、`--tables-file``--databases`、 `--databases-exclude`或 的部分備份`--databases-file`。如需 Percona XtraBackup 2.4 版的詳細資訊，請參閱[部分備份](https://docs.percona.com/percona-xtrabackup/2.4/innobackupex/partial_backups_innobackupex.html)。如需 Percona XtraBackup 8.0 版的詳細資訊，請參閱[建立部分備份](https://docs.percona.com/percona-xtrabackup/8.0/create-partial-backup.html)。

## 最佳實務
<a name="best-practices-percona-xtrabackup"></a>
+ 若要改善備份程序的效能，請執行下列動作：
  + 使用 [--parallel=<threads>](https://docs.percona.com/percona-xtrabackup/2.4/xtrabackup_bin/xbk_option_reference.html#-parallel) 平行複製多個檔案
  + 使用 [--compress-threads=<threads>](https://docs.percona.com/percona-xtrabackup/2.4/xtrabackup_bin/xbk_option_reference.html#-compress-threads) 平行壓縮多個檔案
  + 使用 [--use-memory=<size>](https://docs.percona.com/percona-xtrabackup/2.4/xtrabackup_bin/xbk_option_reference.html#-use-memory) 增加記憶體
  + 使用 [--encrypt-threads=<threads>](https://docs.percona.com/percona-xtrabackup/2.4/xtrabackup_bin/xbk_option_reference.html#-encrypt-threads) 平行加密多個檔案
+ 確保來源伺服器上有足夠的空間來取得資料庫備份檔案。
+ 使用 Percona xbstream (.xbstream) 格式檔案產生資料庫備份。如需詳細資訊，請參閱 Percona XtraBackup 文件中的 [xbstream 二進位概觀](https://docs.percona.com/percona-xtrabackup/8.0/xbstream-binary-overview.html)。