我想增加 Amazon Aurora PostgreSQL 相容版或 Amazon Aurora MySQL 相容版資料庫執行個體的最大連線數。
解決方法
資料庫執行個體參數群組中的 max_connections 參數,會決定 Aurora 資料庫執行個體的最大連線數。請將此參數設定為支援所有必要的用戶端連線,並至少保留三個額外連線供 AWS 自動化使用。
當您增加 max_connections 值時,最佳實務是監控資源使用情況。增加連線數可能會提高記憶體使用量,而記憶體不足的資料庫執行個體可能會意外關閉。此問題在較容易發生較小的資料庫執行個體上。
請諮詢您的資料庫管理員有關增加的事宜。最佳實務是保留預設值,或在需要更多連線時擴展至較大的執行個體類別。如果您選擇擴展至具有更多記憶體的資料庫執行個體類別,則會影響帳戶的計費。
請使用以下方法增加您的 Aurora MySQL 相容版或 Aurora PostgreSQL 相容版資料庫執行個體的最大連線數。
**注意:**當您修改 Amazon Aurora 資料庫叢集時,會發生停機。
判斷您執行個體上的 max_connection
若要判斷您 Amazon Aurora 執行個體上的 max_connections,請使用以下 LEAST 函數:
LEAST({DBInstanceClassMemory/9531392},5000)
此函數會選取包含 DBInstanceClass 的數學公式,直到其值等於或超過 5,000。這表示它會隨著執行個體類別變更自動擴展,並根據執行個體上的記憶體數量進行調整。如需更多資訊,請參閱 Aurora PostgreSQL 資料庫執行個體的最大連線數。
若要檢查您目前的設定,請使用以下其中一個 SQL 查詢。
Aurora PostgreSQL
postgres=> show max_connections;
-或-
Aurora MySQL
SHOW GLOBAL VARIABLES LIKE 'max_connections';
使用自訂參數群組,為 max_connections 設定更大的值
對於 Aurora PostgreSQL,請使用自訂參數群組在叢集層級或執行個體層級設定更大的 max_connections 參數值。
對於 Aurora MySQL,請使用自訂參數群組在執行個體層級設定更大的 max_connections 參數值。
請完成以下步驟:
- 在叢集層級或執行個體層級建立自訂參數群組。<br id=hardline_break/>
**注意:**當您變更參數群組時,可能會發生中斷。
- 將自訂參數群組與您的 Amazon Aurora 叢集或執行個體建立關聯,然後重新啟動該執行個體。
- 將新的自訂參數群組與您的資料庫執行個體關聯後,您可以增加 max_connections 參數。<br id=hardline_break/>
**注意:**增加 max_connections 參數時不會發生中斷。
Aurora Serverless 的注意事項
Aurora Serverless v2 會維持固定的 max_connections 值,以防止在擴展作業期間發生連線中斷。預設值是根據資料庫執行個體記憶體大,透過公式計算得出的。如需更多資訊,請參閱 Aurora MySQL 資料庫執行個體的最大連線數和 Aurora PostgreSQL 資料庫執行個體的最大連線數。
Aurora Serverless v2 會使用最大 Aurora 容量單位 (ACU) 的記憶體大小來計算公式,而不是使用目前的 ACU 值。當您變更預設值時,請使用公式變體,而不要使用固定值。此方法可讓 Aurora Serverless v2 根據最大容量套用適當的設定。
當您變更最大容量後,請重新啟動 Aurora Serverless v2 資料庫執行個體以更新 max_connections 值。max_connections 參數在 Aurora Serverless v2 中為靜態。
**注意:**對於最小容量為 0 或 0.5 ACU 的 PostgreSQL 相容版資料庫執行個體,max_connections 上限為 2,000。如需更多資訊,請參閱 Aurora Serverless v2 的最大連線數
相關資訊
如何增加我的 Amazon RDS for MySQL 或 Amazon RDS for PostgreSQL 執行個體的最大連線數?