本節說明控制 clone 外掛程式操作的系統變數。如果啟動時指定的值不正確,clone 外掛程式可能無法正確初始化,並且伺服器不會載入它。在這種情況下,伺服器也可能會產生其他複製設定的錯誤訊息,因為它無法辨識這些設定。
每個系統變數都有一個預設值。可以使用命令列上的選項或選項檔案,在伺服器啟動時設定系統變數。它們可以使用 SET
陳述式在執行階段動態變更,這使您能夠修改伺服器的操作,而無需停止並重新啟動它。
設定全域系統變數執行階段值通常需要 SYSTEM_VARIABLES_ADMIN
權限(或已棄用的 SUPER
權限)。如需詳細資訊,請參閱第 7.1.9.1 節「系統變數權限」。
複製變數是在執行複製操作的接收者 MySQL 伺服器執行個體上設定的。
-
命令列格式 --clone-autotune-concurrency
系統變數 clone_autotune_concurrency
範圍 全域 動態 是 SET_VAR
提示套用否 類型 布林值 預設值 開啟
當啟用
clone_autotune_concurrency
(預設值)時,會動態產生額外的執行緒以進行遠端複製操作,以最佳化資料傳輸速度。此設定僅適用於接收者 MySQL 伺服器執行個體。在複製操作期間,執行緒的數量會遞增地增加到目標為目前執行緒數量的兩倍。每次遞增都會評估對資料傳輸速度的影響。此程序會根據下列規則繼續或停止
如果資料傳輸速度的遞增增加下降超過 5%,則程序會停止。
如果在達到目標的 25% 之後,至少有 5% 的改進,則程序會繼續。否則,程序會停止。
如果在達到目標的 50% 之後,至少有 10% 的改進,則程序會繼續。否則,程序會停止。
如果在達到目標之後,至少有 25% 的改進,則程序會朝著目前執行緒數量的兩倍的新目標繼續進行。否則,程序會停止。
自動調整程序不支援減少執行緒的數量。
clone_max_concurrency
變數定義可以產生的最大執行緒數。如果停用
clone_autotune_concurrency
,則clone_max_concurrency
會定義為遠端複製操作產生的執行緒數。 -
命令列格式 --clone-buffer-size
系統變數 clone_buffer_size
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 4194304
最小值 1048576
最大值 268435456
單位 位元組 定義在本機複製操作期間傳輸資料時使用的中間緩衝區大小。預設值為 4 mebibyte (MiB)。較大的緩衝區大小可能允許 I/O 裝置驅動程式平行擷取資料,這可以改善複製效能。
-
命令列格式 --clone-block-ddl
系統變數 clone_block_ddl
範圍 全域 動態 是 SET_VAR
提示套用否 類型 布林值 預設值 關閉
在複製操作期間,在捐贈者 MySQL 伺服器執行個體上啟用獨佔備份鎖定,這會封鎖捐贈者上的並行 DDL 操作。請參閱第 7.6.7.4 節「複製和並行 DDL」。
-
命令列格式 --clone-delay-after-data-drop
系統變數 clone_delay_after_data_drop
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 0
最小值 0
最大值 3600
單位 位元組 指定在遠端複製操作開始時,移除接收端 MySQL 伺服器執行個體上現有資料後立即發生的延遲時間。此延遲旨在為接收端主機上的檔案系統提供足夠的時間來釋放空間,然後再從捐贈端 MySQL 伺服器執行個體複製資料。某些檔案系統(例如 VxFS)會在背景處理程序中非同步釋放空間。在這些檔案系統上,如果過早複製資料,可能會因為空間不足而導致複製操作失敗。最大延遲時間為 3600 秒(1 小時)。預設設定為 0(不延遲)。
此變數僅適用於遠端複製操作,並在接收端 MySQL 伺服器執行個體上設定。
-
命令列格式 --clone-ddl-timeout
系統變數 clone_ddl_timeout
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 300
最小值 0
最大值 2592000
單位 秒 複製操作等待備份鎖定的時間(以秒為單位)。備份鎖定會在執行複製操作時阻止並行 DDL。此設定會同時應用於捐贈端和接收端 MySQL 伺服器執行個體。
設定為 0 表示複製操作不等待備份鎖定。在這種情況下,執行並行 DDL 操作可能會導致複製操作失敗。
如果
clone_block_ddl
設定為OFF
(預設值),則在複製操作期間允許在捐贈端執行並行 DDL。在這種情況下,複製操作不必等待捐贈端的備份鎖定。請參閱 第 7.6.7.4 節「複製和並行 DDL」。 clone_donor_timeout_after_network_failure
命令列格式 --clone-donor-timeout-after-network-failure
系統變數 clone_donor_timeout_after_network_failure
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 5
最小值 0
最大值 30
單位 分鐘 定義在網路故障後,捐贈端允許接收端重新連線並重新啟動複製操作的時間(以分鐘為單位)。如需詳細資訊,請參閱第 7.6.7.9 節「遠端複製操作失敗處理」。
此變數設定在捐贈端 MySQL 伺服器執行個體上。在接收端 MySQL 伺服器執行個體上設定它無效。
-
命令列格式 --clone-enable-compression
系統變數 clone_enable_compression
範圍 全域 動態 是 SET_VAR
提示套用否 類型 布林值 預設值 關閉
在遠端複製操作期間,啟用網路層的資料壓縮。壓縮會節省網路頻寬,但會增加 CPU 負載。啟用壓縮可能會提高資料傳輸速率。此設定僅適用於接收端 MySQL 伺服器執行個體。
-
命令列格式 --clone-max-concurrency
系統變數 clone_max_concurrency
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 16
最小值 1
最大值 128
單位 執行緒 定義遠端複製操作的最大並行執行緒數。預設值為 16。較多的執行緒可以提高複製效能,但也會減少允許的同時用戶端連線數,這可能會影響現有用戶端連線的效能。此設定僅適用於接收端 MySQL 伺服器執行個體。
如果啟用
clone_autotune_concurrency
(預設值),則clone_max_concurrency
是可為遠端複製操作動態產生的最大執行緒數。如果停用clone_autotune_concurrency
,則clone_max_concurrency
會定義為遠端複製操作產生的執行緒數。建議遠端複製操作的每個執行緒的最小資料傳輸速率為 1 兆位元組 (MiB)。遠端複製操作的資料傳輸速率由
clone_max_data_bandwidth
變數控制。 -
命令列格式 --clone-max-data-bandwidth
系統變數 clone_max_data_bandwidth
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 0
最小值 0
最大值 1048576
單位 MiB/秒 定義遠端複製操作的最大資料傳輸速率,以兆位元組 (MiB) 每秒為單位。此變數有助於管理複製操作對效能的影響。只有在捐贈端磁碟 I/O 頻寬飽和而影響效能時,才應設定限制。值為 0 表示「無限制」,允許複製操作以最高的資料傳輸速率執行。此設定僅適用於接收端 MySQL 伺服器執行個體。
每個執行緒的最小資料傳輸速率為每秒 1 MiB。例如,如果有 8 個執行緒,則最小傳輸速率為每秒 8 MiB。
clone_max_concurrency
變數控制為遠端複製操作產生的最大執行緒數。clone_max_data_bandwidth
指定的請求資料傳輸速率可能與performance_schema.clone_progress
資料表中DATA_SPEED
欄位報告的實際資料傳輸速率不同。如果您的複製操作未達到所需的資料傳輸速率,且您有可用的頻寬,請檢查接收端和捐贈端的 I/O 使用率。如果頻寬未充分利用,則 I/O 是最有可能的瓶頸。 -
命令列格式 --clone-max-network-bandwidth
系統變數 clone_max_network_bandwidth
範圍 全域 動態 是 SET_VAR
提示套用否 類型 整數 預設值 0
最小值 0
最大值 1048576
單位 MiB/秒 指定遠端複製操作的最大概略網路傳輸速率,以兆位元組 (MiB) 每秒為單位。此變數可用於管理複製操作對網路頻寬的效能影響。只有在網路頻寬飽和而影響捐贈端執行個體上的效能時,才應設定此變數。值為 0 表示「無限制」,允許以網路上最高的資料傳輸速率進行複製,從而提供最佳效能。此設定僅適用於接收端 MySQL 伺服器執行個體。
-
命令列格式 --clone-ssl-ca=file_name
系統變數 clone_ssl_ca
範圍 全域 動態 是 SET_VAR
提示套用否 類型 檔案名稱 預設值 空字串
指定憑證授權單位 (CA) 檔案的路徑。用於為遠端複製操作設定加密連線。此設定會在接收端設定,並在連線到捐贈端時使用。
-
命令列格式 --clone-ssl-cert=file_name
系統變數 clone_ssl_cert
範圍 全域 動態 是 SET_VAR
提示套用否 類型 檔案名稱 預設值 空字串
指定公開金鑰憑證的路徑。用於為遠端複製操作設定加密連線。此設定會在接收端設定,並在連線到捐贈端時使用。
-
命令列格式 --clone-ssl-key=file_name
系統變數 clone_ssl_key
範圍 全域 動態 是 SET_VAR
提示套用否 類型 檔案名稱 預設值 空字串
指定私密金鑰檔案的路徑。用於為遠端複製操作設定加密連線。此設定會在接收端設定,並在連線到捐贈端時使用。
-
命令列格式 --clone-valid-donor-list=value
系統變數 clone_valid_donor_list
範圍 全域 動態 是 SET_VAR
提示套用否 類型 字串 預設值 NULL
定義遠端複製操作的有效捐贈端主機位址。此設定會應用於接收端 MySQL 伺服器執行個體。允許使用以逗號分隔的值列表,格式如下:「
HOST1:PORT1,HOST2:PORT2,HOST3:PORT3
」。不允許使用空格。clone_valid_donor_list
變數透過控制複製資料的來源來增加安全性。設定clone_valid_donor_list
所需的權限與執行遠端複製操作所需的權限不同,這允許將這些職責分配給不同的角色。設定clone_valid_donor_list
需要SYSTEM_VARIABLES_ADMIN
權限,而執行遠端複製操作則需要CLONE_ADMIN
權限。不支援網際網路協定版本 6 (IPv6) 位址格式。不支援網際網路協定版本 6 (IPv6) 位址格式。可以使用 IPv6 位址的別名來代替。IPv4 位址可以直接使用。