本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用複寫從 My SQL DB 執行個體匯出資料
若要將資料從 My SQL DB 執RDS行個體匯出到 Amazon 外部SQL執行的 My 執行個體RDS,您可以使用複寫。在這個案例中,My SQL DB 執行個體是來源 My SQL 資料庫執行個體,而在 Amazon 外部SQL執行的 My 執行個體RDS是外部 My SQL 資料庫。
外部 My 資料SQL庫可以在資料中心內現場部署執行,也可以在 Amazon 執行個EC2體上執行。外部 My SQL 資料庫必須執行與來源 My SQL DB 執行個體相同的版本,或是更新版本。
只有在從來源 My DB 執行個體匯出SQL資料庫所花費的期間,才支援複寫至外部 My 資料SQL庫。當資料匯出且應用程式可以開始存取外部 My SQL 執行個體時,應該終止複寫。
下列清單顯示要採取的步驟。後續幾節會詳細討論各步驟。
準備外部 My SQL 資料庫執行個體。
準備來源 My SQL DB 執行個體以進行複製。
使用 mysqldump 公用程式,將資料庫從來源 My SQL DB 執行個體傳輸到外部 My 資料庫。SQL
開始複寫至外部 My SQL 資料庫。
匯出完成之後,請停止複寫。
準備外部我的SQL資料庫
執行下列步驟來準備外部 My SQL 資料庫。
準備外部 My SQL 資料庫的步驟
-
安裝外部 My SQL 資料庫。
-
以主要使用者身分 Connect 至外部 My SQL 資料庫。然後建立支援存取資料庫的管理員、應用程式和服務所需的使用者。
-
遵循我的SQL文件中的指示,將外部 My SQL 資料庫準備為複本。如需詳細資訊,請參閱 My SQL 說明文件中的設定複本組態
。 -
將外部 My SQL 資料庫的輸出規則設定為在匯出期間作為僅供讀取複本運作。輸出規則允許外部 My SQL 資料庫在複寫期間連線到來源 My SQL DB 執行個體。指定輸出規則,該規則允許傳輸控制通訊協定 (TCP) 連線至來源 My SQL DB 執行個體的連接埠和 IP 位址。
為您的環境指定適當的輸出規則:
-
如果外部 My SQL 資料庫在以 Amazon VPC 服務為基礎的虛擬私有雲 (VPC) 中的 Amazon EC2 執行個體中執行,請在VPC安全群組中指定輸出規則。如需詳細資訊,請參閱使用安全群組控制存取。
-
如果外部 My SQL 資料庫是在內部部署安裝的,請在防火牆中指定輸出規則。
-
-
如果外部 My SQL 資料庫在中執行VPC,則除了安全性群組輸出規則之外,還要設定VPC存取控制清單 (ACL) 規則的規則:
-
設定ACL輸入規則,允許TCP流量從來源 My DB 執行個體的 IP 位址傳輸至連接埠 1024—65535。SQL
-
設定ACL輸出規則,允許輸出TCP流量連接至來源 My SQL DB 執行個體的連接埠和 IP 位址。
如需 Amazon VPC 網路的詳細資訊ACLs,請參閱 Amazon VPC 使用者指南ACLs中的網路。
-
-
(選用) 將
max_allowed_packet
參數設定為最大值,以避免複寫錯誤。我們建議您使用此設定。
準備來源 My SQL 資料庫執行個體
執行下列步驟,將來源 My SQL DB 執行個體準備為複寫來源。
準備來源 My SQL 資料庫執行個體
-
確定用戶端電腦有足夠磁碟空間在設定複寫時儲存二進位日誌。
-
Connect 至來源 My SQL DB 執行個體,並依照我的SQL文件中建立複製使用者中的指示,建立複寫
帳戶。 -
在執行來源 My SQL DB 執行個體的系統上設定輸入規則,以允許外部 My SQL 資料庫在複寫期間連線。指定輸入規則,該規則允許從外部 My SQL 資料庫的 IP 位址TCP連線至來源 My SQL DB 執行個體所使用的連接埠。
-
指定輸出規則:
-
如果來源 My SQL DB 執行個體在中執行VPC,請在VPC安全群組中指定輸入規則。如需詳細資訊,請參閱使用安全群組控制存取。
-
-
如果來源 My SQL DB 執行個體在 a 中執行VPC,請設定安全群組輸入VPCACL規則以外的規則:
-
設定ACL輸入規則,以允許從外部 My SQL 資料庫的 IP 位址TCP連線至 Amazon RDS 執行個體所使用的連接埠。
-
設定ACL輸出規則,以允許TCP連接埠 1024—65535 連接至外部 My 資料庫的 IP 位址。SQL
如需 Amazon VPC 網路的詳細資訊ACLs,請參閱 Amazon VPC 使用者指南ACLs中的網路。
-
-
確定備份保留期的設定夠長,以避免在匯出期間清除二進位日誌。如果在匯出完成之前清除任何日誌,則您必須重新開始複寫。如需設定備份保留期的詳細資訊,請參閱 備份簡介。
-
使用
mysql.rds_set_configuration
預存程序來設定夠長的二進位日誌保留期,以避免在匯出期間清除二進位日誌。如需詳細資訊,請參閱存取 MySQL 二進位日誌。 -
從來源 My SQL DB 執行個體建立 Amazon 僅供RDS讀取複本,以進一步確保不會清除來源 My SQL DB 執行個體的二進位日誌。如需詳細資訊,請參閱建立僅供讀取複本。
-
建立 Amazon 僅供RDS讀取複本之後,呼叫
mysql.rds_stop_replication
預存程序以停止複寫程序。來源 My SQL DB 執行個體不再清除其二進位記錄檔,因此可用於複寫程序。 -
(選用) 將
max_allowed_packet
參數和slave_max_allowed_packet
參數同時設定為最大值,以避免複寫錯誤。這兩個參數的最大值為 1 GB。我們建議兩個參數都使用此設定。如需有關設定參數的詳細資訊,請參閱 修改 Amazon RDS 中資料庫參數群組中的參數。
複製資料庫
執行下列步驟來複製資料庫。
複製資料庫
-
Connect 到來源 My SQL DB 執行個體的僅供RDS讀取複本,然後執行 My SQL
SHOW REPLICA STATUS\G
陳述式。請注意下列項目的值:-
Master_Host
-
Master_Port
-
Master_Log_File
-
Exec_Master_Log_Pos
注意
以前版本的我SQL使用
SHOW SLAVE STATUS
而不是SHOW REPLICA STATUS
. 如果您使用的是 8.0.23 之前的「我的SQL版本」,請使用.SHOW SLAVE STATUS
-
-
使用 mysqldump 公用程式建立快照,將資料從 Amazon 複製RDS到本機用戶端電腦。確定用戶端電腦有足夠空間,可保留待複寫資料庫的
mysqldump
檔案。如果資料庫非常龐大,此程序可能需要數小時的時間。請依照我的文件中使用 mysqldump 建立資料快照集中的指示進行。SQL 下列範例會在用戶端上執行
mysqldump
,並將傾印寫入檔案。用於 Linux, macOS,或 Unix:
mysqldump -h
source_MySQL_DB_instance_endpoint
\ -uuser
\ -ppassword
\ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databasesdatabase database2
>path
/rds-dump.sql用於 Windows:
mysqldump -h
source_MySQL_DB_instance_endpoint
^ -uuser
^ -ppassword
^ --port=3306 ^ --single-transaction ^ --routines ^ --triggers ^ --databasesdatabase database2
>path
\rds-dump.sql您可以將備份檔案載入外部 My SQL 資料庫。如需詳細資訊,請參閱 My SQL 文件中的重新載入SQL格式備份
。您可以執行其他公用程式,將資料載入外部 My 資料SQL庫。
完成匯出
執行下列步驟以完成匯出。
完成匯出
-
使用 My SQL
CHANGE MASTER
陳述式來設定外部 My SQL 資料庫。指定獲授予REPLICATION SLAVE
許可之使用者的 ID 和密碼。指定Master_Host
您在僅供RDS讀取複本上執行的 My SQLSHOW REPLICA STATUS\G
陳述式中取得的Relay_Master_Log_File
、、和Exec_Master_Log_Pos
值。Master_Port
如需詳細資訊,請參CHANGEMASTER閱 My SQL 文件中的 TO 陳述式。 注意
以前版本的我SQL使用
SHOW SLAVE STATUS
而不是SHOW REPLICA STATUS
. 如果您使用的是 8.0.23 之前的「我的SQL版本」,請使用.SHOW SLAVE STATUS
-
使用 My SQL
START REPLICA
命令啟動從來源 My SQL DB 執行個體到外部 My SQL 資料庫的複寫。這樣做會啟動從來源 My SQL DB 執行個體進行複寫,並匯出停止從 Amazon 僅供RDS讀取複本複寫後發生的所有來源變更。
注意
以前版本的我SQL使用
START SLAVE
而不是START REPLICA
. 如果您使用的是 8.0.23 之前的「我的SQL版本」,請使用.START SLAVE
-
在外部 My SQL 資料庫上執行 My SQL
SHOW REPLICA STATUS\G
命令,以確認它是以僅供讀取複本的方式運作。如需有關解譯結果的詳細資訊,請參閱我的SQL文件中的 SHOWSLAVE| REPLICA STATUS 陳述式。 -
在外部 My SQL 資料庫上進行複寫追上來源 My SQL DB 執行個體之後,請使用 My SQL
STOP REPLICA
命令停止來源 My SQL DB 執行個體的複寫。注意
以前版本的我SQL使用
STOP SLAVE
而不是STOP REPLICA
. 如果您使用的是 8.0.23 之前的「我的SQL版本」,請使用.STOP SLAVE
-
在 Amazon 僅供RDS讀取複本上,呼叫
mysql.rds_start_replication
預存程序。這樣做可讓 Amazon RDS 開始從來源 My SQL DB 執行個體清除二進位記錄檔。