如何開啟PolarDB的Binlog?
PolarDB的Binlog預設是關閉的,若要開啟Binlog,在控制台把loose_polar_log_bin參數設定為ON即可,請參見開啟Binlog。
開啟Binlog會重啟叢集,可能會出現1分鐘以內的串連閃斷。重啟節點的時間長短跟您業務的資料量有關,幾分鐘到幾小時不等,建議您在業務低穀期開啟Binlog,並確保應用具備重連機制。
拉取、訂閱或同步Binlog(例如使用DTS等工具)時,建議使用PolarDB的主地址,直接指向產生Binlog的主節點,具有更好的相容性和穩定性。
開啟Binlog後,資料庫提交超大事務時,會阻塞其它事務的提交,並可能會影響叢集的重啟和變更配置時間長度。
loose_polar_log_bin參數為全域(Global)層級參數。會話(Session)層級的Binlog功能需要修改sql_log_bin參數,目前不支援修改該參數,以免造成Binlog資料丟失。
儲存策略
Binlog檔案有如下兩種儲存策略:
開啟Binlog後,檔案預設儲存3天,超過3天的Binlog檔案會被自動刪除。
說明在2023年11月23日前購買的PolarDB MySQL版叢集,其Binlog檔案預設儲存兩周(14天)。
在2024年1月17日前購買的PolarDB MySQL版叢集,其Binlog檔案預設儲存一周(7天)。
關閉Binlog後,已有的Binlog檔案會一直保留,不會自動刪除。
修改儲存時間長度
修改Binlog儲存時間長度不會造成串連閃斷,也不需要重啟叢集。
但如果修改儲存時間長度導致大量Binlog檔案需要被清除(如10 TB),則在清除時可能會造成短時間的資料庫寫入異常。因此,在Binlog檔案較大的情況下,建議在業務低峰期進行操作,並分多次縮短Binlog的儲存時間長度,每次清除一部分Binlog資料。
已被清除的Binlog檔案被刪除後無法進行恢複。
若您的叢集已開啟Binlog,您可以通過如下兩種方式修改Binlog檔案儲存時間長度:
若叢集版本為PolarDB MySQL版5.6,您可以通過修改loose_expire_logs_hours(取值範圍為0~2376,單位為小時,預設值為72)的參數值來設定Binlog的儲存時間長度。0表示不自動刪除Binlog檔案。參數詳細設定請參見修改參數值。
若叢集版本為PolarDB MySQL版5.7或8.0,您可以通過修改binlog_expire_logs_seconds(取值範圍為0~4294967295,單位為秒,預設值為259200)的參數值來設定Binlog的儲存時間長度。0表示不自動刪除Binlog檔案。參數詳細設定請參見修改參數值。
重要通過修改這兩個參數的參數值來設定Binlog的儲存時間長度後,叢集中歷史Binlog檔案不會被立即自動清除。此時若您需要清除歷史Binlog檔案,可以通過如下三種方法之一:
當叢集中最後一個Binlog檔案達到
max_binlog_size,切換到新的Binlog檔案後,這些歷史Binlog檔案將會被自動清除。使用高許可權帳號執行flush binary logs命令可以立即觸發Binlog檔案切換並清除到期的Binlog檔案。
您也可重啟叢集。叢集重啟後將自動清除歷史Binlog檔案。
若您的叢集未開啟Binlog,此時如需刪除Binlog檔案,您可以重新開啟Binlog,將上述Binlog的儲存時間長度參數(loose_expire_logs_hours或binlog_expire_logs_seconds)設定為一個較小的值,等檔案超過儲存時間長度自動刪除後再關閉Binlog。
如何設定執行個體參數?
請參見設定叢集參數和節點參數。
如何設定監控資料庫效能?
您可選擇以下兩種任意一種來開啟監控資料庫效能:
設定loose_polar_performance_schema參數後,您的資料庫將開啟Polar Performance Schema功能。這將允許您監控資料庫的效能,包括查看DDL語句執行狀態和MDL鎖狀態,通過performance_schema儲存引擎收集和提供效能資料。您需要在控制台將該參數設為
ON,並重啟叢集才會生效。更多資訊,請參見設定叢集參數和節點參數。您可選擇開啟當前叢集資料庫自治服務DAS服務。
重要如果當前叢集已經開啟了DAS自治服務,則無需再啟用performance_schema參數。啟用該參數會佔用額外記憶體,從而導致記憶體使用量量增加。
為什麼參數修改一直顯示進行中?如何避免這種情況?
參數修改一直處於進行中,可能有以下幾點原因:
修改的參數和其他參數有依賴關係,例如開啟hotspot需要先開啟Binlog,
innodb_io_capacity受限於innodb_io_capacity_max。修改的參數和其他參數有衝突,無法同時開啟。例如
loose_hotspot和rds_ic_reduce_hint_enable參數衝突,想要開啟loose_hotspot需要先關閉rds_ic_reduce_hint_enable,loose_polar_log_bin和innodb_trx_resume也不支援同時開啟。修改的參數在目前的版本不支援,需要升級版本或取消修改參數任務。
如果修改參數任務一直未能成功,可以提交工單聯絡售後工程師處理。
為什麼事務逾時後,調整參數後不生效?
參數不生效可能存在以下原因:
確認調整的逾時參數是全域參數還是會話參數。如果修改的是全域參數,則無需重啟叢集。舊的串連會話不會受到影響,而重建立新的串連會話才能夠生效。
需要重啟叢集的參數,建議您在業務低峰期操作,並確保應用程式具有重連機制。
例如: 資料庫層面您可以嘗試調整下innodb_lock_wait_timeout=180無需重啟叢集。
如何開啟event_scheduler參數?
event_scheduler參數是預設開啟的,但只有RW節點開啟,您可以串連至主節點查看該參數是不是開啟狀態show global variables like '%event_scheduler%';。
修改collaction_server參數,出現報錯ParamCollationServerNotValid?
collation_server參數與character_set_server參數應保持一致,即Collation需屬於當前字元集(Character Set)。因此,您需要先設定character_set_server參數,然後再設定collation_server參數。
修改的參數是全域生效的嗎?是否可以只修改某個節點的參數?
當修改的是全域參數時,只能針對整個叢集生效;
目前只有非全域參數允許對個別節點生效。
修改需要重啟執行個體的參數後,重啟用時多久?
如果修改需要重啟的參數,重啟不可取消。重啟時間受資料量影響,從幾分鐘到幾小時不等,建議在業務低峰期重啟,同時業務側做好重連機制。您可以設定在執行個體可維護視窗執行修改參數任務。更多重啟節點相關操作請參見節點管理。
修改參數是立即生效嗎?可以在指定時間生效嗎?
修改的參數會在修改參數任務完成後立即生效,若您不想立即生效,支援設定在可維護視窗修改參數。如果您需要在可維護視窗外的其他指定時間修改參數,可以通過調用修改參數API實現,請參見ModifyDBNodesParameters。
如何設定參數可以提高效能?
如何取消定時修改參數任務?
支援在控制台的計劃任務頁面取消定時任務,請參見定時計劃任務。
開啟Serverless功能後,叢集支援修改參數嗎?
不支援。請參見開啟固定規格叢集的Serverless功能注意事項。