參數(shù)配置常見問題
如何清理undo日志
PolarDB支持在控制臺(tái)配置innodb_max_undo_log_size
和innodb_undo_log_truncate
參數(shù),請(qǐng)參見https://developer.aliyun.com/article/655895。
如何開啟PolarDB的Binlog?
PolarDB的Binlog默認(rèn)是關(guān)閉的,若要開啟Binlog,在控制臺(tái)把loose_polar_log_bin
參數(shù)設(shè)置為ON即可,請(qǐng)參見開啟Binlog。
開啟Binlog會(huì)重啟集群,可能會(huì)出現(xiàn)1分鐘以內(nèi)的連接閃斷。重啟節(jié)點(diǎn)的時(shí)間長(zhǎng)短跟您業(yè)務(wù)的數(shù)據(jù)量有關(guān),幾分鐘到幾小時(shí)不等,建議您在業(yè)務(wù)低谷期開啟Binlog,并確保應(yīng)用具備重連機(jī)制。
拉取、訂閱或同步Binlog(例如使用DTS等工具)時(shí),建議使用PolarDB的主地址,直接指向生成Binlog的主節(jié)點(diǎn),具有更好的兼容性和穩(wěn)定性。
開啟Binlog后,數(shù)據(jù)庫提交超大事務(wù)時(shí),會(huì)阻塞其它事務(wù)的提交,并可能會(huì)影響集群的重啟和變配時(shí)長(zhǎng)。
loose_polar_log_bin
參數(shù)為全局(Global)級(jí)別參數(shù)。會(huì)話(Session)級(jí)別的Binlog功能需要修改sql_log_bin
參數(shù),目前不支持修改該參數(shù),以免造成Binlog數(shù)據(jù)丟失。
保存策略
Binlog文件有如下兩種保存策略:
開啟Binlog后,文件默認(rèn)保存3天,超過3天的Binlog文件會(huì)被自動(dòng)刪除。
說明在2023年11月23日前購(gòu)買的PolarDB MySQL版集群,其Binlog文件默認(rèn)保存兩周(14天)。
在2024年1月17日前購(gòu)買的PolarDB MySQL版集群,其Binlog文件默認(rèn)保存一周(7天)。
關(guān)閉Binlog后,已有的Binlog文件會(huì)一直保留,不會(huì)自動(dòng)刪除。
修改保存時(shí)長(zhǎng)
修改Binlog保存時(shí)長(zhǎng)不會(huì)造成連接閃斷,也不需要重啟集群。
但如果修改保存時(shí)長(zhǎng)導(dǎo)致大量Binlog文件需要被清除(如10 TB),則在清除時(shí)可能會(huì)造成短時(shí)間的數(shù)據(jù)庫寫入異常。因此,在Binlog文件較大的情況下,建議在業(yè)務(wù)低峰期進(jìn)行操作,并分多次縮短Binlog的保存時(shí)長(zhǎng),每次清除一部分Binlog數(shù)據(jù)。
若您的集群已開啟Binlog,您可以通過如下兩種方式修改Binlog文件保存時(shí)長(zhǎng):
若集群版本為PolarDB MySQL版5.6,您可以通過修改loose_expire_logs_hours(取值范圍為0~2376,單位為小時(shí),默認(rèn)值為72)的參數(shù)值來設(shè)置Binlog的保存時(shí)長(zhǎng)。0表示不自動(dòng)刪除Binlog文件。
若集群版本為PolarDB MySQL版5.7或8.0,您可以通過修改binlog_expire_logs_seconds(取值范圍為0~4294967295,單位為秒,默認(rèn)值為259200)的參數(shù)值來設(shè)置Binlog的保存時(shí)長(zhǎng)。0表示不自動(dòng)刪除Binlog文件。
說明通過修改這兩個(gè)參數(shù)的參數(shù)值來設(shè)置Binlog的保存時(shí)長(zhǎng)后,集群中歷史Binlog文件不會(huì)被立即自動(dòng)清除。此時(shí)若您需要清除歷史Binlog文件,可以通過如下三種方法之一:
當(dāng)集群中最后一個(gè)Binlog文件達(dá)到
max_binlog_size
,切換到新的Binlog文件后,這些歷史Binlog文件將會(huì)被自動(dòng)清除。使用高權(quán)限賬號(hào)執(zhí)行flush binary logs命令可以立即觸發(fā)Binlog文件切換并清除過期的Binlog文件。
您也可重啟集群。集群重啟后將自動(dòng)清除歷史Binlog文件。
若您的集群未開啟Binlog,此時(shí)如需刪除Binlog文件,您可以重新打開Binlog,將上述Binlog的保存時(shí)長(zhǎng)參數(shù)(loose_expire_logs_hours或binlog_expire_logs_seconds)設(shè)置為一個(gè)較小的值,等文件超過保存時(shí)長(zhǎng)自動(dòng)刪除后再關(guān)閉Binlog。
如何設(shè)置實(shí)例參數(shù)?
請(qǐng)參見設(shè)置集群參數(shù)和節(jié)點(diǎn)參數(shù)。
為什么參數(shù)修改一直顯示進(jìn)行中?如何避免這種情況?
參數(shù)修改一直處于進(jìn)行中,可能有以下幾點(diǎn)原因:
修改的參數(shù)和其他參數(shù)有依賴關(guān)系,例如開啟hotspot需要先開啟Binlog,
innodb_io_capacity
受限于innodb_io_capacity_max
。修改的參數(shù)和其他參數(shù)有沖突,無法同時(shí)開啟。例如
loose_hotspot
和rds_ic_reduce_hint_enable
參數(shù)沖突,想要開啟loose_hotspot
需要先關(guān)閉rds_ic_reduce_hint_enable
,loose_polar_log_bin
和innodb_trx_resume
也不支持同時(shí)開啟。修改的參數(shù)在當(dāng)前版本不支持,需要升級(jí)版本或取消修改參數(shù)任務(wù)。
如果修改參數(shù)任務(wù)一直未能成功,可以提交工單聯(lián)系售后工程師處理。
如何打開event_scheduler參數(shù)?
event_scheduler
參數(shù)是默認(rèn)打開的,但只有RW節(jié)點(diǎn)開啟,您可以連接至主節(jié)點(diǎn)查看該參數(shù)是不是開啟狀態(tài)show global variables like '%event_scheduler%';
。
修改的參數(shù)是全局生效的嗎?是否可以只修改某個(gè)節(jié)點(diǎn)的參數(shù)?
當(dāng)修改的是全局參數(shù)時(shí),只能針對(duì)整個(gè)集群生效;
目前只有非全局參數(shù)允許對(duì)個(gè)別節(jié)點(diǎn)生效。
修改需要重啟實(shí)例的參數(shù)后,重啟用時(shí)多久?
如果修改需要重啟的參數(shù),重啟不可取消。重啟時(shí)間受數(shù)據(jù)量影響,從幾分鐘到幾小時(shí)不等,建議在業(yè)務(wù)低峰期重啟,同時(shí)業(yè)務(wù)側(cè)做好重連機(jī)制。您可以設(shè)置在實(shí)例可維護(hù)窗口執(zhí)行修改參數(shù)任務(wù)。更多重啟節(jié)點(diǎn)相關(guān)操作請(qǐng)參見重啟節(jié)點(diǎn)。
修改參數(shù)是立即生效嗎?可以在指定時(shí)間生效嗎?
修改的參數(shù)會(huì)在修改參數(shù)任務(wù)完成后立即生效,若您不想立即生效,支持設(shè)置在可維護(hù)窗口修改參數(shù)。如果您需要在可維護(hù)窗口外的其他指定時(shí)間修改參數(shù),可以通過調(diào)用修改參數(shù)API實(shí)現(xiàn),請(qǐng)參見ModifyDBNodesParameters。
如何設(shè)置參數(shù)可以提高性能?
如果您想提高查詢性能,推薦使用熱點(diǎn)行優(yōu)化功能,詳情請(qǐng)參見熱點(diǎn)行優(yōu)化。
如果您的數(shù)據(jù)庫是8.0版本,您可以使用高性能參數(shù)模板功能,請(qǐng)參見高性能參數(shù)模板。
如何取消定時(shí)修改參數(shù)任務(wù)?
支持在控制臺(tái)的計(jì)劃任務(wù)頁面取消定時(shí)任務(wù),請(qǐng)參見定時(shí)計(jì)劃任務(wù)。