本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理多來源複寫
下列預存程序在 RDS for MySQL 多來源複本上設定和管理複寫通道。如需詳細資訊,請參閱為 Amazon RDS for My 設定 multi-source-replication SQL。
這些預存程序僅適用於執行下列引擎版本的 RDS MySQL 資料庫執行個體:
-
所有 8.4 版本
8.0.35 和更新次要版本
5.7.44 和更新的次要版本
使用預存程序來管理使用 設定的複寫使用者時caching_sha2_passwword
,您必須透過指定 TLS來設定 SOURCE_SSL=1
。 caching_sha2_password
是 RDS MySQL 8.4 的預設身分驗證外掛程式。
注意
雖然本文件是指適用於 MySQL 資料庫執行個體RDS的來源資料庫執行個體,但這些程序也適用於在 Amazon 外部執行的我的SQL執行個體RDS。
mysql.rds_next_source_log_for_channel
將來源資料庫執行個體日誌位置變更為頻道來源資料庫執行個體上下一個二進位日誌的開頭。只有在多來源複本上收到複寫 I/O 錯誤 1236 時,才使用此程序。
語法
CALL mysql.rds_next_source_log_for_channel(
curr_master_log
,channel_name
);
參數
-
curr_master_log
-
目前來源日誌檔案的索引。例如,若目前檔案的名稱是
mysql-bin-changelog.012345
,則索引為 12345。若要查明目前來源日誌檔案名稱,請執行SHOW REPLICA STATUS FOR CHANNEL '
命令並檢視channel_name
'Source_Log_File
欄位。 -
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_next_source_log_for_channel
程序。例如,如果有 IO_Thread 錯誤,您可以使用此程序略過目前二進位日誌檔案中的所有事件,並從 中指定的頻道的下一個二進位日誌檔案繼續複寫channel_name
。
範例
假設多來源複本上的頻道複寫失敗。在多來源複本SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
上執行 會傳回下列結果:
mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: ReplicationUser Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: replica-relay-bin.000003 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB:. . . Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: . . Channel_name: channel_1 . . -- Some fields are omitted in this example output
Last_IO_Errno
欄位顯示執行個體收到輸入/輸出錯誤 1236。Source_Log_File
欄位顯示檔案名稱是 mysql-bin-changelog.012345
,這表示日誌檔案索引為 12345
。若要解決錯誤,您可以使用mysql.rds_next_source_log_for_channel
下列參數呼叫 :
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
mysql.rds_reset_external_source_for_channel
停止指定頻道上的複寫程序,並從多來源複本中移除頻道和相關聯的組態。
重要
若要執行此程序,必須啟用 autocommit
。若要啟用它,請將 autocommit
參數設定為 1
。如需修改參數的相關資訊,請參閱修改 Amazon RDS Amazon 數據庫參數組中的參數。
語法
CALL mysql.rds_reset_external_source_for_channel (
channel_name
);
參數
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_reset_external_source_for_channel
程序。此程序會刪除屬於要移除頻道的所有轉送日誌。
mysql.rds_set_external_source_for_channel
在 RDS for MySQL 資料庫執行個體上設定複寫頻道,以複寫 RDS MySQL 資料庫執行個體的另一個資料。
重要
若要執行此程序,必須啟用 autocommit
。若要啟用它,請將 autocommit
參數設定為 1
。如需修改參數的相關資訊,請參閱修改 Amazon RDS Amazon 數據庫參數組中的參數。
注意
您可以改為使用mysql.rds_set_external_source_with_delay_for_channel預存程序,以延遲複寫來設定此頻道。
語法
CALL mysql.rds_set_external_source_for_channel (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,channel_name
);
參數
-
host_name
-
RDS 適用於我的SQL來源資料庫執行個體的主機名稱或 IP 地址。
-
host_port
-
for RDS MySQL source 資料庫執行個體使用的連接埠。如果您的網路組態包含可轉換連接埠號碼的安全殼層 (SSH) 連接埠複寫,請指定 公開的連接埠號碼SSH。
-
replication_user_name
-
具有 的使用者 ID,
REPLICATION CLIENT
以及RDS適用於 MySQL source 資料庫執行個體的REPLICATION SLAVE
許可。我們建議您提供僅供與來源資料庫執行個體複寫使用的帳戶。 -
replication_user_password
-
replication_user_name
中指定之使用者 ID 的密碼。 -
mysql_binary_log_file_name
-
包含複寫資訊的來源資料庫執行個體上的二進位日誌名稱。
-
mysql_binary_log_file_location
-
複寫在
mysql_binary_log_file_name
二進位日誌中開始讀取複寫資訊的位置。您可以在來源資料庫執行個體
SHOW BINARY LOG STATUS
上執行 ,以判斷 binlog 檔案名稱和位置。注意
先前使用的 MySQL 版本
SHOW MASTER STATUS
,而非SHOW BINARY LOG STATUS
。如果您使用的是 8.4 之前的 MySQL 版本,請使用 。SHOW MASTER STATUS
-
ssl_encryption
-
指定是否在複寫連線上使用 Secure Socket Layer (SSL) 加密的值。1 指定使用SSL加密,0 指定不使用加密。預設值為 0。
注意
不支援
SOURCE_SSL_VERIFY_SERVER_CERT
選項。此選項設定為 0,表示連線已加密,但憑證未經過驗證。 -
channel_name
-
複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_set_external_source_for_channel
程序。此程序必須在您要建立複寫頻道RDS的 MySQL 資料庫執行個體目標上執行。
執行 之前mysql.rds_set_external_source_for_channel
,請在來源資料庫執行個體上設定複寫使用者,並具有多來源複本所需的權限。若要將多來源複本連接至來源資料庫執行個體,您必須指定具有來源資料庫執行個體 replication_user_name
和 REPLICATION CLIENT
REPLICATION SLAVE
許可的複寫使用者replication_user_password
值。
在來源資料庫執行個體上設定複寫使用者
使用您選擇的我的SQL用戶端,連線至來源資料庫執行個體,並建立用於複寫的使用者帳戶。以下是範例。
重要
作為安全最佳實務,請指定下列範例所示預留位置值以外的密碼。
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';在來源資料庫執行個體上,將
REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您的複寫使用者。下列範例將所有資料庫上的REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您網域中的 'repl_user' 使用者。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
若要使用加密複寫,請將來源資料庫執行個體設定為使用SSL連線。
呼叫 mysql.rds_set_external_source_for_channel
來設定此複寫頻道後,您可以在複本mysql.rds_start_replication_for_channel上呼叫 ,以在頻道上啟動複寫程序。您可以呼叫 mysql.rds_reset_external_source_for_channel 停止頻道上的複寫,並從複本中移除頻道組態。
當您呼叫 時mysql.rds_set_external_source_for_channel
,Amazon 會將 的時間、使用者和動作RDS記錄在mysql.rds_history
資料表set channel source
中,而不含頻道特定的詳細資訊,並在mysql.rds_replication_status
資料表中記錄頻道名稱。此資訊僅記錄用於內部使用和監控目的。若要記錄用於稽核目的的完整程序呼叫,請考慮根據您應用程式的特定需求啟用稽核日誌或一般日誌。
範例
在 RDS for MySQL 資料庫執行個體上執行 時,下列範例會設定此資料庫執行個體channel_1
上名為 的複寫通道,以複寫主機 sourcedb.example.com
和連接埠 指定的來源資料3306
。
call mysql.rds_set_external_source_for_channel( 'sourcedb.example.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.0777', 120, 0, 'channel_1');
mysql.rds_set_external_source_with_auto_position_for_channel
在 RDS for MySQL 資料庫執行個體上設定複寫通道,並具有選用的複寫延遲。複寫是以全域交易識別符 () 為基礎GTIDs。
重要
若要執行此程序,必須啟用 autocommit
。若要啟用它,請將 autocommit
參數設定為 1
。如需修改參數的相關資訊,請參閱修改 Amazon RDS Amazon 數據庫參數組中的參數。
語法
CALL mysql.rds_set_external_source_with_auto_position_for_channel (
host_name
,host_port
,replication_user_name
,replication_user_password
,ssl_encryption
,delay
,channel_name
);
參數
-
host_name
-
RDS 適用於我的SQL來源資料庫執行個體的主機名稱或 IP 地址。
-
host_port
-
for RDS MySQL source 資料庫執行個體使用的連接埠。如果您的網路組態包含可轉換連接埠號碼的安全殼層 (SSH) 連接埠複寫,請指定 公開的連接埠號碼SSH。
-
replication_user_name
-
具有 的使用者 ID,
REPLICATION CLIENT
以及RDS適用於 MySQL source 資料庫執行個體的REPLICATION SLAVE
許可。我們建議您提供僅供與來源資料庫執行個體複寫使用的帳戶。 -
replication_user_password
-
replication_user_name
中指定之使用者 ID 的密碼。 -
ssl_encryption
-
指定是否在複寫連線上使用 Secure Socket Layer (SSL) 加密的值。1 指定使用SSL加密,0 指定不使用加密。預設值為 0。
注意
不支援
SOURCE_SSL_VERIFY_SERVER_CERT
選項。此選項設定為 0,表示連線已加密,但憑證未經過驗證。 -
delay
-
從來源資料庫執行個體延遲複寫的秒數下限。
此參數的限制為一日 (86400 秒)。
-
channel_name
-
複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_set_external_source_with_auto_position_for_channel
程序。此程序必須在您要建立複寫頻道RDS的 MySQL 資料庫執行個體目標上執行。
執行 之前rds_set_external_source_with_auto_position_for_channel
,請在來源資料庫執行個體上設定複寫使用者,並具有多來源複本所需的權限。若要將多來源複本連接至來源資料庫執行個體,您必須指定具有來源資料庫執行個體 replication_user_name
和 REPLICATION CLIENT
REPLICATION SLAVE
許可的複寫使用者replication_user_password
值。
在來源資料庫執行個體上設定複寫使用者
使用您選擇的我的SQL用戶端,連線至來源資料庫執行個體,並建立用於複寫的使用者帳戶。以下是範例。
重要
作為安全最佳實務,請指定下列範例所示預留位置值以外的密碼。
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';在來源資料庫執行個體上,將
REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您的複寫使用者。下列範例將所有資料庫上的REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您網域中的 'repl_user' 使用者。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
若要使用加密複寫,請將來源資料庫執行個體設定為使用SSL連線。
呼叫 之前mysql.rds_set_external_source_with_auto_position_for_channel
,請務必呼叫 mysql.rds_set_external_source_gtid_purged,以設定具有外部來源指定GTID範圍gtid_purged
的系統變數。
呼叫 mysql.rds_set_external_source_with_auto_position_for_channel
將 Amazon 資料庫執行個體設定為特定頻道上的僅供讀取複本後,您可以在僅供讀取複本mysql.rds_start_replication_for_channel上呼叫 RDS ,以在該頻道上啟動複寫程序。
呼叫 mysql.rds_set_external_source_with_auto_position_for_channel
設定此複寫頻道後,您可以在複本mysql.rds_start_replication_for_channel上呼叫 ,以在頻道上啟動複寫程序。您可以呼叫 mysql.rds_reset_external_source_for_channel 停止頻道上的複寫,並從複本中移除頻道組態。
範例
在 RDS for MySQL 資料庫執行個體上執行 時,下列範例會設定此資料庫執行個體channel_1
上名為 的複寫頻道,以複寫主機sourcedb.example.com
和連接埠所指定來源的資料3306
。它會將最小複寫延遲設定為一小時 (3,600 秒)。這表示來自 RDS MySQL 資料庫執行個體來源的變更,在至少一小時內都不會套用至多來源複本。
call mysql.rds_set_external_source_with_auto_position_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 1, 3600, 'channel_1');
mysql.rds_set_external_source_with_delay_for_channel
在 上設定複寫通道RDS,SQL以指定複寫延遲。
重要
若要執行此程序,必須啟用 autocommit
。若要啟用它,請將 autocommit
參數設定為 1
。如需修改參數的相關資訊,請參閱修改 Amazon RDS Amazon 數據庫參數組中的參數。
語法
CALL mysql.rds_set_external_source_with_delay_for_channel (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,delay
,channel_name
);
參數
-
host_name
-
RDS 適用於我的SQL來源資料庫執行個體的主機名稱或 IP 地址。
-
host_port
-
for RDS MySQL source 資料庫執行個體使用的連接埠。如果您的網路組態包含可轉換連接埠號碼的安全殼層 (SSH) 連接埠複寫,請指定 公開的連接埠號碼SSH。
-
replication_user_name
-
具有 的使用者 ID,
REPLICATION CLIENT
以及RDS適用於 MySQL source 資料庫執行個體的REPLICATION SLAVE
許可。我們建議您提供僅供與來源資料庫執行個體複寫使用的帳戶。 -
replication_user_password
-
replication_user_name
中指定之使用者 ID 的密碼。 -
mysql_binary_log_file_name
-
來源資料庫執行個體上的二進位日誌名稱包含複寫資訊。
-
mysql_binary_log_file_location
-
在
mysql_binary_log_file_name
二進位日誌中的複寫將開始讀取複寫資訊的位置。您可以藉由在來源資料庫執行個體上執行
SHOW BINARY LOG STATUS
來判斷 binlog 檔案名稱和位置。注意
先前使用的 MySQL 版本
SHOW MASTER STATUS
,而非SHOW BINARY LOG STATUS
。如果您使用的是 8.4 之前的 MySQL 版本,請使用 。SHOW MASTER STATUS
-
ssl_encryption
-
指定是否在複寫連線上使用 Secure Socket Layer (SSL) 加密的值。1 指定使用SSL加密,0 指定不使用加密。預設值為 0。
注意
不支援
SOURCE_SSL_VERIFY_SERVER_CERT
選項。此選項設定為 0,表示連線已加密,但憑證未經過驗證。 -
delay
-
從來源資料庫執行個體延遲複寫的秒數下限。
此參數的限制為一日 (86400 秒)。
-
channel_name
-
複寫通道的名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_set_external_source_with_delay_for_channel
程序。此程序必須在您要建立複寫頻道RDS的 MySQL 資料庫執行個體目標上執行。
執行 之前mysql.rds_set_external_source_with_delay_for_channel
,請在來源資料庫執行個體上設定複寫使用者,並具有多來源複本所需的權限。若要將多來源複本連接至來源資料庫執行個體,您必須指定具有來源資料庫執行個體 replication_user_name
和 REPLICATION CLIENT
REPLICATION SLAVE
許可的複寫使用者replication_user_password
值。
在來源資料庫執行個體上設定複寫使用者
使用您選擇的我的SQL用戶端,連線至來源資料庫執行個體,並建立用於複寫的使用者帳戶。以下是範例。
重要
作為安全最佳實務,請指定以下範例中所示預留位置值以外的密碼。
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';在來源資料庫執行個體上,將
REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您的複寫使用者。下列範例將所有資料庫上的REPLICATION CLIENT
和REPLICATION SLAVE
權限授予您網域中的 'repl_user' 使用者。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
若要使用加密複寫,請將來源資料庫執行個體設定為使用SSL連線。
呼叫 mysql.rds_set_external_source_with_delay_for_channel
來設定此複寫頻道後,您可以在複本mysql.rds_start_replication_for_channel上呼叫 ,以在頻道上啟動複寫程序。您可以呼叫 mysql.rds_reset_external_source_for_channel 停止頻道上的複寫,並從複本中移除頻道組態。
當您呼叫 時mysql.rds_set_external_source_with_delay_for_channel
,Amazon 會將 的時間、使用者和動作RDS記錄在mysql.rds_history
資料表set channel source
中,不含頻道特定的詳細資訊,並在mysql.rds_replication_status
資料表中記錄頻道名稱。此資訊僅記錄用於內部使用和監控目的。若要記錄用於稽核目的的完整程序呼叫,請考慮根據您應用程式的特定需求啟用稽核日誌或一般日誌。
範例
在 RDS for MySQL 資料庫執行個體上執行 時,下列範例會設定此資料庫執行個體channel_1
上名為 的複寫通道,以複寫主機sourcedb.example.com
和連接埠所指定來源的資料3306
。它會將最小複寫延遲設定為一小時 (3,600 秒)。這表示來自 RDS MySQL 資料庫執行個體來源的變更,至少不會套用到多來源複本一小時。
call mysql.rds_set_external_source_with_delay_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000777', 120, 1, 3600, 'channel_1');
mysql.rds_set_source_auto_position_for_channel
將指定頻道的複寫模式設定為根據二進位日誌檔案位置或全域交易識別符 (GTIDs)。
語法
CALL mysql.rds_set_source_auto_position_for_channel (
auto_position_mode
,channel_name
);
參數
-
auto_position_mode
-
指出要使用日誌檔位置複寫還是 GTID型複寫的值:
-
0
– 使用依據二進制日誌檔案位置的複寫模式。預設值為0
。 -
1
– 使用 GTID型複寫方法。
-
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_set_source_auto_position_for_channel
程序。此程序會重新啟動指定頻道上的複寫,以套用指定的自動定位模式。
範例
下列範例會將 channel_1 的自動定位模式設定為使用 GTID型複寫方法。
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
mysql.rds_set_source_delay_for_channel
設定最短秒數,以延遲從來源資料庫執行個體到指定頻道的多來源複本的複寫。
語法
CALL mysql.rds_set_source_delay_for_channel(
delay
,channel_name
);
參數
-
delay
-
從來源資料庫執行個體延遲複寫的秒數下限。
此參數的限制為一日 (86400 秒)。
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_set_source_delay_for_channel
程序。若要使用此程序,請先呼叫 mysql.rds_stop_replication_for_channel
以停止複寫。然後,呼叫此程序來設定複寫延遲值。設定延遲時,呼叫 mysql.rds_start_replication_for_channel
以重新啟動複寫。
範例
下列範例設定從多來源複本的 channel_1
上的來源資料庫執行個體複寫延遲至少一小時 (3,600 秒)。
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
mysql.rds_skip_repl_error_for_channel
略過二進位日誌事件,並刪除指定頻道之 MySQL 資料庫多來源複本上的複寫錯誤。
語法
CALL mysql.rds_skip_repl_error_for_channel(
channel_name
);
參數
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須在僅供讀取複本上執行 mysql.rds_skip_repl_error_for_channel
程序。您可以mysql.rds_skip_repl_error
用類似的方式使用此程序來略過僅供讀取複本上的錯誤。如需詳細資訊,請參閱呼叫 mysql.rds_skip_repl_error 程序。
注意
若要略過 GTID型複寫中的錯誤,建議您mysql.rds_skip_transaction_with_gtid 改用 程序。
若要判斷是否有錯誤,請執行 MySQL SHOW REPLICA STATUS FOR CHANNEL '
命令。如果複寫錯誤不嚴重,您可以執行 channel_name
'\Gmysql.rds_skip_repl_error_for_channel
來略過錯誤。如果有多個錯誤, 會mysql.rds_skip_repl_error_for_channel
刪除指定複寫頻道上的第一個錯誤,然後警告其他錯誤存在。然後,您可以使用 SHOW REPLICA STATUS FOR CHANNEL '
,以針對下一個錯誤判斷正確的行動步驟。如需傳回值的相關資訊,請參閱 MySQL 文件中的SHOWREPLICASTATUS陳述channel_name
'\G
mysql.rds_start_replication_for_channel
啟動從 RDS for MySQL 資料庫執行個體到指定頻道上多來源複本的複寫。
注意
您可以使用 mysql.rds_start_replication_until_for_channel或 mysql.rds_start_replication_until_gtid_for_channel 預存程序,從RDS適用於 MySQL 資料庫執行個體的 啟動複寫,並在指定的二進位日誌檔案位置停止複寫。
語法
CALL mysql.rds_start_replication_for_channel(
channel_name
);
參數
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_start_replication_for_channel
程序。從 MySQL 資料庫執行個體RDS的來源匯入資料後,請在多來源複本上執行此命令,以在指定的頻道上開始複寫。
範例
下列範例會在多來源複本channel_1
的 上開始複寫。
CALL mysql.rds_start_replication_for_channel('channel_1');
mysql.rds_start_replication_until_for_channel
從指定頻道上的 RDS for MySQL 資料庫執行個體啟動複寫,並在指定的二進位日誌檔案位置停止複寫。
語法
CALL mysql.rds_start_replication_until_for_channel (
replication_log_file
,replication_stop_point
,channel_name
);
參數
-
replication_log_file
-
來源資料庫執行個體上的二進位日誌名稱包含複寫資訊。
-
replication_stop_point
-
在
replication_log_file
二進位日誌中的複寫將停止的位置。 -
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_start_replication_until_for_channel
程序。透過此程序,複寫會在達到指定的 binlog 檔案位置時開始,然後停止。此程序會同時停止 SQL_THREAD
和 IO_THREAD
。
為 replication_log_file
參數指定的檔案名稱必須符合來源資料庫執行個體 binlog 檔案名稱。
當 replication_stop_point
參數指定過去的停止位置時,複寫會立即停止。
範例
下列範例會在 上啟動複寫channel_1
,並複寫變更,直到到達120
mysql-bin-changelog.000777
二進位日誌檔案中的位置為止。
call mysql.rds_start_replication_until_for_channel( 'mysql-bin-changelog.000777', 120, 'channel_1' );
mysql.rds_start_replication_until_gtid_for_channel
從 RDS for MySQL 資料庫執行個體在指定的頻道上啟動複寫,並在指定的全域交易識別符 () 停止複寫GTID。
語法
CALL mysql.rds_start_replication_until_gtid_for_channel(
gtid
,channel_name
);
參數
-
gtid
-
GTID 之後要停止複寫的 。
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_start_replication_until_gtid_for_channel
程序。程序會在指定的頻道上開始複寫,並將所有變更套用到指定的GTID值。然後,它會停止頻道上的複寫。
當 gtid
參數指定了複本已經執行的交易時,複寫會立即停止。
執行此程序之前,您必須將 replica_parallel_workers
或 的值設定為 slave_parallel_workers
,以停用多執行緒複寫0
。
範例
下列範例會在 上啟動複寫channel_1
,並複寫變更,直到達到 GTID 為止3E11FA47-71CA-11E1-9E33-C80AA9429562:23
。
call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');
mysql.rds_stop_replication_for_channel
從指定頻道上的 MySQL 資料庫執行個體停止複寫。
語法
CALL mysql.rds_stop_replication_for_channel(
channel_name
);
參數
-
channel_name
-
多來源複本上的複寫頻道名稱。每個複寫通道都會從在特定主機和連接埠上執行RDS的 MySQL 資料庫執行個體的單一來源接收二進位日誌事件。
使用須知
主要使用者必須執行 mysql.rds_stop_replication_for_channel
程序。
範例
下列範例會停止多來源複本channel_1
的 複寫。
CALL mysql.rds_stop_replication_for_channel('channel_1');