減少將資料匯入 Amazon RDS MariaDB 或 MySQL 資料庫執行個體時的停機時間 - Amazon Relational Database Service

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

減少將資料匯入 Amazon RDS MariaDB 或 MySQL 資料庫執行個體時的停機時間

某些情況下,您可能需要將資料從支援即時應用程式的外部 MariaDB 或 MySQL 資料庫,匯入至 MariaDB 資料庫執行個體、MySQL 資料庫執行個體或 MySQL 多可用區域資料庫叢集。使用下列程序,將對應用程式可用性的影響降至最低。如果您使用的是超大型資料庫,也可使用這個程序。使用此程序,您可以減少透過網路傳送的資料量,以降低匯入成本 AWS。

此程序中,您需將資料庫資料的複本傳輸至 Amazon EC2 執行個體,並將資料匯入至新的 Amazon RDS 資料庫。然後,您可以使用複寫將 Amazon RDS 資料庫 up-to-date 與即時外部執行個體一起使用,然後再將應用程式重新導向至 Amazon RDS 資料庫。如果外部執行個體版本是 MariaDB 10.0.24 或更高版本,且目標執行個體為 RDS for MariaDB 時,請根據全域交易識別符 (GTID) 設定 MariaDB 複寫。若為其他情況,請根據二進位日誌座標設定複寫。建議 GTID 型複寫 (如果您的外部資料庫可以支援它),因為 GTID 型複寫是更可信賴的方法。如需詳細資訊,請參閱 MariaDB 文件中的 Global transaction ID 一節。

注意

如果您想要將資料匯入至 MySQL 資料庫執行個體,且您的情況允許,建議您使用備份檔案與 Amazon S3 將資料移入和移出 Amazon RDS。如需詳細資訊,請參閱 將備份還原至 MySQL 資料庫執行個體

將外部 MySQL 資料庫匯入至 RDS 上的 MySQL 資料庫
注意

由於可能發生複寫問題,我們不建議您將此程序用於比 MySQL 5.5 更早版本的來源 MySQL 資料庫。如需詳細資訊,請參閱 MySQL 文件中的 Replication compatibility between MySQL versions 一節。

建立現有資料庫的複本

要將大量資料遷移至 RDS for MariaDB 或 RDS for MySQL 資料庫,並將停機時間降至最低,第一步是建立來源資料的複本。

建立 MySQL 資料庫的備份

您可使用 mysqldump 公用程式,以 SQL 或分隔符號文字等任一格式建立資料庫備份。建議您在非生產環境中分別測試各種格式,以了解哪種方法能將 mysqldump 命令的執行時間減至最少。

亦建議您衡量 mysqldump 程式碼的效能與使用分隔符號文字格式載入所帶來的效益。使用分隔符號文字格式的備份會為每個傾印的資料表分別建立索引標籤分隔文字檔案。您可以使用 LOAD DATA LOCAL INFILE 命令平行載入這些檔案,縮短匯入資料庫所需的時間。如需選擇 mysqldump 格式並載入資料的相關詳細資訊,請參閱 MySQL 文件中的 Using mysqldump For Backups 一節。

開始備份作業前,請確認在要複製到 Amazon RDS 的 MariaDB 或 MySQL 資料庫上設定複寫選項。複寫選項包括開啟二進位日誌及設定獨一無二的伺服器 ID。設定這些選項後,伺服器會開始記錄資料庫交易,並調整至就緒狀態,以擔任後續程序的來源複寫執行個體。

注意

對 mysqldump 使用 --single-transaction 選項,因為它會傾印資料庫的一致狀態。若要確保有效的傾印檔案,請勿在執行 mysqldump 時執行資料定義語言 (DDL) 陳述式。您可以為這些作業排定維護時段。

從傾印檔案中排除下列結構描述:sysperformance_schemainformation_schema。mysqldump 公用程式已預設排除這些結構描述。

若要移轉使用者和權限,請考慮使用產生資料控制語言 (DCL) 的工具來重新建立使用者和權限,例如公用程式。pt-show-grants

設定複寫選項

  1. 編輯 my.cnf 檔案 (此檔案通常位於 /etc 之下)。

    sudo vi /etc/my.cnf

    log_binserver_id 選項新增至 [mysqld] 部分。log_bin 選項會提供二進位記錄檔的檔案名稱識別符。server_id 選項會為來源與複本關係提供伺服器唯一識別碼。

    以下範例顯示 my.cnf 檔案的 [mysqld] 部分的更新結果。

    [mysqld] log-bin=mysql-bin server-id=1

    如需詳細資訊,請參閱 MySQL 文件

  2. 如需使用多可用區域資料庫叢集進行複寫,請將 ENFORCE_GTID_CONSISTENCYGTID_MODE 參數設為 ON

    mysql> SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
    mysql> SET @@GLOBAL.GTID_MODE = ON;

    使用資料庫執行個體進行複製時,不需要這些設定。

  3. 重新啟動 mysql 服務。

    sudo service mysqld restart

建立現有資料庫的備份複本

  1. 您可使用 mysqldump 公用程式,以 SQL 或分隔符號文字等任一格式建立資料備份。

    指定 --master-data=2 來建立可用來啟動伺服器間複寫作業的備份檔案。如需詳細資訊,請參閱 mysqldump 文件。

    如需提升效能並確保資料完整性,請使用 mysqldump 的 --order-by-primary--single-transaction 選項。

    為避免備份中包含 MySQL 系統資料庫,請勿以 mysqldump 搭配使用 --all-databases 選項。如需詳細資訊,請參閱 MySQL 文件中的Creating a Data Snapshot Using mysqldump 一節。

    如有必要,請使用 chmod 命令,確保建立備份檔的目錄可以寫入。

    重要

    在 Windows 上,以管理員身分執行命令視窗。

    • 若要產生 SQL 輸出,請使用下列命令。

      對於LinuxmacOS、或Unix:

      sudo mysqldump \ --databases database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u local_user \ -p password
      注意

      指定此處所顯示提示以外的憑證,作為安全最佳實務。

      在 Windows 中:

      mysqldump ^ --databases database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -r backup.sql ^ -u local_user ^ -p password
      注意

      指定此處所顯示提示以外的憑證,作為安全最佳實務。

    • 若要產生分隔文字輸出,請使用下列命令。

      對於LinuxmacOS、或Unix:

      sudo mysqldump \ --tab=target_directory \ --fields-terminated-by ',' \ --fields-enclosed-by '"' \ --lines-terminated-by 0x0d0a \ database_name \ --master-data=2 \ --single-transaction \ --order-by-primary \ -p password

      在 Windows 中:

      mysqldump ^ --tab=target_directory ^ --fields-terminated-by "," ^ --fields-enclosed-by """ ^ --lines-terminated-by 0x0d0a ^ database_name ^ --master-data=2 ^ --single-transaction ^ --order-by-primary ^ -p password
      注意

      指定此處所顯示提示以外的憑證,作為安全最佳實務。

      必須在 Amazon RDS 資料庫中手動建立預存程序、觸發程序、函數或事件。如果您正在複製的資料庫中存有上述物件,則請在執行 mysqldump 時排除這些物件。為此,請在 mysqldump 命令中包含以下參數:--routines=0 --triggers=0 --events=0

      若是使用分隔符號文字格式,執行 mysqldump 命令時,系統會傳回 CHANGE MASTER TO 註解。此註解會包含主控端日誌檔案的名稱與位置。如果外部執行個體不是 MariaDB 10.0.24 或更新版本,請注意 MASTER_LOG_FILEMASTER_LOG_POS 的值。設定複寫時您需要這些值。

      -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

      如果您使用的是 SQL 格式,您可以在備份檔案的 CHANGE MASTER TO 註解中取得主控端日誌檔案的名稱與位置。如果外部執行個體是 MariaDB 10.0.24 或更新版本,您可在下一步驟中取得 GTID。

  2. 如果您正在使用的外部執行個體是 MariaDB 10.0.24 或更新版本,您可使用 GTID 型複寫功能。在外部 MariaDB 執行個體上執行 SHOW MASTER STATUS 命令,以取得二進位日誌檔案的名稱和位置,接著在外部 MariaDB 執行個體上執行 BINLOG_GTID_POS 命令,將其轉換為 GTID。

    SELECT BINLOG_GTID_POS('binary log file name', binary log file position);

    請記下系統傳回的 GTID,設定複寫時會需要使用。

  3. 壓縮複製的資料,以減少複製資料到 Amazon RDS 資料庫所需的網路資源量。請記下備份檔案的大小。決定要建立多大的 Amazon EC2 執行個體時,您需要此資訊。完成後,請使用 GZIP 或您慣用的壓縮公用程式壓縮備份檔。

    • 若要壓縮 SQL 輸出,請使用下列命令。

      gzip backup.sql
    • 若要壓縮分隔文字輸出,請使用下列命令。

      tar -zcvf backup.tar.gz target_directory

建立 Amazon EC2 執行個體並複製壓縮的資料庫

比起直接在資料庫執行個體間複製未壓縮的資料,將壓縮的資料庫備份檔複製到 Amazon EC2 執行個體,需要的網路資源較少。資料放進 Amazon EC2 後,即可將資料直接複製到 MariaDB 或 MySQL 資料庫。為了節省網路資源成本,Amazon EC2 執行個體必須與 Amazon RDS 資料庫執行個體位於同一個 AWS 區域。將 Amazon EC2 執行個體放在與 Amazon RDS 資料庫相同的 AWS 區域中,也可以減少匯入期間的網路延遲。

將資料庫備份複製到 EC2 執行個體

建立 Amazon EC2 執行個體並複製資料

  1. AWS 區域 在您打算建立 RDS 資料庫的位置中,建立虛擬私有雲端 (VPC)、VPC 安全性群組和 VPC 子網路。確認 VPC 安全群組的傳入規則會允許您應用程式連線至 AWS所需的 IP 地址。您可以指定 IP 地址範圍 (例如 203.0.113.0/24) 或另一個 VPC 安全群組。您可以使用 Amazon VPC 管理主控台來建立與管理 VPC 子網路和安全群組。如需詳細資訊,請參閱《Amazon Virtual Private Cloud 入門指南》中的 Amazon VPC 入門

  2. 開啟 Amazon EC2 管理主控台,然後選擇要同時包含您的 Amazon EC2 執行個體和 Amazon RDS 資料庫的 AWS 區域。使用您在步驟 1 中建立的 VPC、子網路和安全群組,啟動 Amazon EC2 執行個體。確認您選取的執行個體類型具有足夠的儲存空間,足以供未壓縮的資料庫備份檔使用。如需 Amazon EC2 執行個體的詳細資訊,請參閱《適用於 Linux 的 Amazon Elastic Compute Cloud 使用者指南》中的 Amazon EC2 Linux 執行個體入門

  3. 若要從 Amazon EC2 執行個體連線至 Amazon RDS 資料庫,請編輯您的 VPC 安全群組。新增會指定您 EC2 執行個體私有 IP 地址的傳入規則。您可在 EC2 主控台視窗中,從 Instance (執行個體) 窗格的 Details (詳細資訊) 分頁標籤找到私有 IP 地址。若要編輯 VPC 安全群組並新增傳入規則,請選取 EC2 主控台導覽窗格中的 Security Groups (安全群組),接著選擇您的安全群組,然後新增 MySQL 或 Aurora 的傳入規則,指定 EC2 執行個體的私有 IP 地址。如需了解如何將傳入規則新增至 VPC 安全群組,請參閱《Amazon VPC 使用者指南》中的新增與移除規則

  4. 將壓縮的資料庫備份檔從本機系統複製到 Amazon EC2 執行個體。如有必要,請使用 chmod 命令,確認您擁有 Amazon EC2 執行個體的目標目錄寫入許可。您可使用 scp 命令或 Secure Shell (SSH) 用戶端來複製檔案。以下是範例。

    scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
    重要

    務必使用安全網路傳輸通訊協定來複製機密資料。

  5. 使用下列命令連線至您的 Amazon EC2 執行個體,並安裝最新更新與 MySQL 用戶端工具。

    sudo yum update -y sudo yum install mysql -y

    如需詳細資訊,請參閱《Linux Amazon Elastic Compute Cloud 使用者指南》中的連線到您的執行個體

    重要

    此範例會在 Amazon Linux 發行版的 Amazon Machine Image (AMI) 上安裝 MySQL 用戶端。若要在不同的發行版上安裝 MySQL 用戶端,例如 Ubuntu 或 Red Hat Enterprise Linux,則此範例將無法運作。如需安裝 MySQL 的資訊,請參閱 MySQL 文件中的安裝和升級 MySQL

  6. 連線到 Amazon EC2 執行個體後,將您的資料庫備份檔解壓縮。範例如下。

    • 若要將 SQL 輸出解壓縮,請使用下列命令。

      gzip backup.sql.gz -d
    • 若要將分隔符號文字輸出解壓縮,請使用下列命令。

      tar xzvf backup.tar.gz

建立 MySQL 或 MariaDB 資料庫,並從 Amazon EC2 執行個體匯入資料

透過在與 Amazon EC2 執行個體相同的區域中建立 MariaDB 資料庫執行個體、MySQL 資料庫執行個體或 MySQL 異 AWS 地同步備份資料庫叢集,您可以比透過網際網路更快地從 EC2 匯入資料庫備份檔案。

將備份從 EC2 執行個體匯入至 MySQL 資料庫

建立 MariaDB 或 MySQL 資料庫並匯入資料

  1. 判斷需要何種資料庫執行個體類別及多大的儲存空間,才能支援這個 Amazon RDS 資料庫預計的工作負載。在此流程的過程中,決定資料載入程序需要多少空間與處理容量才夠。同時決定處理生產工作負載所需的資源。您可根據來源 MariaDB 或 MySQL 資料庫的大小與資源加以估計。如需詳細資訊,請參閱 資料庫執行個體類別

  2. 在包含 Amazon EC2 執行個體的區域中建立資料庫執行個體或異 AWS 地同步備份資料庫叢集。

    若要建立 MySQL 多可用區域資料庫叢集,請遵循建立多可用區域資料庫叢集中的指示。

    若要建立 MariaDB 或 MySQL 資料庫執行個體,請遵循建立 Amazon RDS 資料庫執行個體中的指示,並使用下列指導方針:

    • 指定與您來源資料庫執行個體相容的資料庫引擎版本,如下所示:

      • 若您的來源執行個體為 MySQL 5.5.x 版,則 Amazon RDS 資料庫執行個體必須為 MySQL。

      • 若您的來源執行個體為 MySQL 5.6.x 或 5.7.x 版,則 Amazon RDS 資料庫執行個體必須為 MySQL 或 MariaDB。

      • 如果您的來源執行個體為 MySQL 8.0.x 版本,則 Amazon RDS 資料庫執行個體必須為 MySQL 8.0.x 版本。

      • 若您的來源執行個體為 MariaDB 5.5 或更新版本,則 Amazon RDS 資料庫執行個體必須為 MariaDB。

    • 指定與 Amazon EC2 執行個體相同的虛擬私有雲端 (VPC) 和 VPC 安全群組。這種作法可確保您的 Amazon EC2 執行個體與 Amazon RDS 執行個體能在網路上看見彼此。確保您的資料庫執行個體可以公開存取。若要如稍後說明的方式,以您的來源資料庫設定複寫,必須將資料庫執行個體設為公開存取。

    • 匯入資料庫備份前,請勿設定多個可用區域、備份保留期或僅供讀取複本。匯入完成後,您可以設定生產執行個體的多可用區域和備份保留。

  3. 檢視 Amazon RDS 資料庫的預設組態選項。如果資料庫的預設參數群組沒有您想要的組態選項,請尋找其他提供您所需選項的參數群組,或者建立新的參數群組。如需建立參數群組的詳細資訊,請參閱 使用參數群組 一文。

  4. 以主要使用者身分連線至新的 Amazon RDS 資料庫。建立支援需存取執行個體的管理員、應用程式和服務所需的使用者。Amazon RDS 資料庫的主機名稱是執行個體的 Endpoint (端點) 值 (不含連接埠編號)。例如,mysampledb.123456789012.us-west-2.rds.amazonaws.com。端點值可在 Amazon RDS 管理主控台的資料庫詳細資訊中找到。

  5. 連線到您的 Amazon EC2 執行個體。如需詳細資訊,請參閱《Linux Amazon Elastic Compute Cloud 使用者指南》中的連線到您的執行個體

  6. 使用 mysql 命令,以遠端主機的形式從 Amazon EC2 執行個體連線至 Amazon RDS 資料庫。以下是範例。

    mysql -h host_name -P 3306 -u db_master_user -p

    主機名稱是 Amazon RDS 資料庫端點。

  7. 出現 mysql 提示時,請執行 source 命令並傳入您的資料庫傾印檔案名稱,以將資料載入 Amazon RDS 資料庫執行個體:

    • 若為 SQL 格式,請使用下列命令。

      mysql> source backup.sql;
    • 若為分隔符號文字格式,請先建立資料庫 (如果它不是您在設定 Amazon RDS 資料庫時建立的預設資料庫)。

      mysql> create database database_name; mysql> use database_name;

      接著建立資料表。

      mysql> source table1.sql mysql> source table2.sql etc...

      然後匯入資料。

      mysql> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; mysql> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a'; etc...

      若要提升效能,您可透過多個連線平行執行這些操作,如此您的所有資料表就會建立並隨後載入。

      注意

      如果您在最初傾印資料表時使用 mysqldump 的任何資料格式化選項,請務必使用與LOAD DATA LOCAL INFILE相同的選項,以確保資料檔案內容的正確解譯。

  8. 對匯入的資料庫中的一或兩個資料表執行簡單SELECT查詢,以確認匯入是否成功。

如果您不再需要此程序中使用的 Amazon EC2 執行個體,請終止 EC2 執行個體以減少資 AWS 源使用量。若要終止 EC2 執行個體,請參閱《Amazon EC2 使用者指南》中的終止執行個體

在外部資料庫與新的 Amazon RDS 資料庫之間複寫資料

在複製資料並傳輸至 MariaDB 或 MySQL 資料庫期間,您的來源資料庫可能就會完成更新。因此,您可以使用複寫將複製的資料庫 up-to-date 與來源資料庫一起使用。

將外部 MySQL 資料庫的資料複製到 RDS 上的資料庫

在 Amazon RDS 資料庫上啟動複寫功能所需的許可有其限制,不供 Amazon RDS 主要使用者使用。基於這個原因,請確認使用 Amazon RDSmysql.rds_set_external_master 命令或 mysql.rds_set_external_master_gtid 命令設定複寫功能,並使用 mysql.rds_start_replication 命令啟動在即時資料庫與 Amazon RDS 資料庫之間複寫的功能。

啟動複寫

稍早之前,您已開啟來源資料庫的二進位日誌,並設定獨一無二的伺服器 ID。現在,您可將 Amazon RDS 資料庫設為複本,並將即時資料庫設為來源複寫執行個體。

  1. 在 Amazon RDS 管理主控台中,將託管來源資料庫之伺服器的 IP 地址,新增至 Amazon RDS 資料庫的 VPC 安全群組。如需有關修改 VPC 安全群組的詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的 VPC 安全群組

    您可能還需要設定本機網路,以允許從 Amazon RDS 資料庫的 IP 地址建立連線,使其能與來源執行個體通訊。若要尋找 Amazon RDS 資料庫的 IP 地址,請使用 host 命令。

    host rds_db_endpoint

    主機名稱是來自 Amazon RDS 資料庫端點的 DNS 名稱,例如 myinstance.123456789012.us-east-1.rds.amazonaws.com。端點值可在 Amazon RDS 管理主控台的執行個體詳細資訊中找到。

  2. 使用您選擇的用戶端,連線至來源執行個體,然後建立複寫作業所需的使用者。此帳戶只供複寫作業使用,務必限制其存取您的網域,以提升安全性。以下是範例。

    MySQL 5.5、5.6 和 5.7

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';

    MySQL 8.0

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY 'password';
    注意

    指定此處所顯示提示以外的憑證,作為安全最佳實務。

  3. 若為來源執行個體,請將 REPLICATION CLIENTREPLICATION SLAVE 權限授予複寫使用者。舉例來說,若要將所有資料庫的 REPLICATION CLIENTREPLICATION SLAVE 權限授予您網域中的「repl_user」使用者,請發出下列命令。

    MySQL 5.5、5.6 和 5.7

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';

    MySQL 8.0

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
    注意

    指定此處所顯示提示以外的憑證,作為安全最佳實務。

  4. 如果您使用 SQL 格式建立備份檔,且外部執行個體並非 MariaDB 10.0.24 或更新版本,請查看該檔案的內容。

    cat backup.sql

    該檔案包括 CHANGE MASTER TO 註解,內含主控端日誌檔案的名稱與位置。若您使用 mysqldump 命令的 --master-data 選項,備份檔內就會包含這個註解。請注意 MASTER_LOG_FILEMASTER_LOG_POS 的值。

    -- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;

    如果您使用分隔符號文字格式來建立備份檔,且外部執行個體並非 MariaDB 10.0.24 或更高版本,您應該已在本主題中的「建立現有資料庫的備份複本」程序的步驟 1 時就建立二進位日誌座標。

    如果外部執行個體是 MariaDB 10.0.24 或更高版本,您應該已在本主題中的「建立現有資料庫的備份複本」程序的步驟 2 時就取得 GTID,以此啟動複寫作業。

  5. 使 Amazon RDS 資料庫成為複本。如果外部執行個體並非 MariaDB 10.0.24 或更高版本,請以主要使用者身分連線至 Amazon RDS 資料庫,接著使用 mysql.rds_set_external_master 命令找到來源資料庫,將其視為來源複寫執行個體。如果您有 SQL 格式的備份檔,請使用您在上一步驟所確定的主控端日誌名稱與位置。或者,如果您使用的是分隔符號文字格式,請使用您在建立備份檔時確定的主控端日誌名稱與位置。以下是範例。

    CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
    注意

    指定此處所顯示提示以外的憑證,作為安全最佳實務。

    如果外部執行個體並非 MariaDB 10.0.24 或更高版本,請以主要使用者身分連線至 Amazon RDS 資料庫,接著使用 mysql.rds_set_external_master_gtid 命令找到來源資料庫,將其視為來源複寫執行個體。使用您在本主題中的「建立現有資料庫的備份複本」程序的步驟 2 中所確定的 GTID。以下是範例。

    CALL mysql.rds_set_external_master_gtid ('source_server_ip_address', 3306, 'ReplicationUser', 'password', 'GTID', 0);

    source_server_ip_address 是來源複寫執行個體的 IP 地址。目前不支援 EC2 私有 DNS 地址。

    注意

    指定此處所顯示提示以外的憑證,作為安全最佳實務。

  6. 在 Amazon RDS 資料庫上,發出 mysql.rds_start_replication 命令來啟動複寫。

    CALL mysql.rds_start_replication;
  7. 在 Amazon RDS 資料庫上,執行顯示複本狀態命令,以判斷複本何時 up-to-date 與來源複寫執行個體一起使用。SHOW REPLICA STATUS 命令的結果包括 Seconds_Behind_Master 欄位。當Seconds_Behind_Master欄位傳回 0 時,則複本會 up-to-date包含來源複寫執行個體。

    注意

    MySQL 以前的版本使用 SHOW SLAVE STATUS 而不是 SHOW REPLICA STATUS。如果您使用的 MySQL 是 8.0.23 之前的版本,請使用 SHOW SLAVE STATUS

    若為 MariaDB 10.5、10.6 或 10.11 資料庫執行個體,請執行 mysql.rds_replica_status 程序,而非 MySQL 命令。

  8. Amazon RDS 資料庫存放之後 up-to-date,請開啟自動備份,以便在需要時還原該資料庫。您可以使用 Amazon RDS 管理主控台,開啟或修改 Amazon RDS 資料庫的自動備份。如需詳細資訊,請參閱 備份簡介

將您的即時應用程式重新導向 Amazon RDS 執行個體

在 MariaDB 或 MySQL 資料庫 up-to-date 與來源複寫執行個體一起使用之後,您現在可以更新即時應用程式以使用 Amazon RDS 執行個體。

停止複寫並將即時應用程式導向至 RDS 上的資料庫

將您的即時應用程式重新導向至 MariaDB 或 MySQL 資料庫並停止複寫

  1. 若要新增 Amazon RDS 資料庫的 VPC 安全群組,請新增託管應用程式之伺服器的 IP 地址。如需有關修改 VPC 安全群組的詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的 VPC 安全群組

  2. 確認 [顯示複本狀態] 命令結果中的Seconds_Behind_Master欄位是 0,表示複本 up-to-date 與來源複製執行個體一起使用。

    SHOW REPLICA STATUS;
    注意

    MySQL 以前的版本使用 SHOW SLAVE STATUS 而不是 SHOW REPLICA STATUS。如果您使用的 MySQL 是 8.0.23 之前的版本,請使用 SHOW SLAVE STATUS

    若為 MariaDB 10.5、10.6 或 10.11 資料庫執行個體,請執行 mysql.rds_replica_status 程序,而非 MySQL 命令。

  3. 交易完成時關閉所有與此來源的連線。

  4. 更新您的應用程式,以使用 Amazon RDS 資料庫。這裡所謂的更新,通常包括變更連線設定,以識別 Amazon RDS 資料庫的主機名稱和連接埠、要與其連線的使用者帳戶和密碼,以及要使用的資料庫。

  5. 連線到資料庫執行個體。

    對至多可用區域資料庫叢集,請連線至寫入器資料庫執行個體。

  6. 使用 mysql.rds_stop_replication 命令停止 Amazon RDS 執行個體的複寫。

    CALL mysql.rds_stop_replication;
  7. 在您的 Amazon RDS 資料庫上執行 mysql.rds_reset_external_master 命令來重設複寫組態,使得此執行個體不再視為複本。

    CALL mysql.rds_reset_external_master;
  8. 開啟其他 Amazon RDS 功能,例如異地同步備份支援和僅供讀取複本。如需更多詳細資訊,請參閱 設定及管理多可用區部署使用資料庫執行個體僅供讀取複本