Amazon Aurora MySQL 相容的本機儲存空間中儲存了哪些內容?如何疑難排解儲存容量問題?
簡短描述
Aurora 叢集中的執行個體具有兩種儲存類型:
- 持續性資料的儲存空間 (稱為叢集磁碟區)。當需要更多空間時,此存儲類型會自動增加。如需詳細資訊,請參閱叢集磁碟區包含的內容。
- 根據執行個體類別,叢集中每個 Aurora 執行個體的本機儲存空間。此儲存體類型和大小受到執行個體類別約束,只能透過移至較大的資料庫執行個體類別進行變更。適用於 MySQL 的 Aurora 使用本機儲存空間來儲存錯誤日誌、一般日誌、慢速查詢日誌、稽核日誌和非 InnoDB 暫存資料表。
如需有關本機儲存空間大小的詳細資訊,以及查看每個執行個體大小的可用儲存空間上限,請參閱 Aurora MySQL 的臨時儲存空間限制。
解決方法
可用存儲空間容量低錯誤
當您接近可用儲存空間容量的限制時,您可能會收到下列錯誤:
"The free storage capacity for DB Instance: instance-name is low at x% of the provisioned storage [Provisioned Storage: xx GB, Free Storage: xx GB].You may want to increase the provisioned storage to address this issue."(資料庫執行個體的可用儲存空間容量:執行個體名稱很低,只有佈建儲存空間的 x%;已佈建儲存空間:xx GB,可用儲存空間:xx GB。您可能想要增加佈建的儲存空間來解決此問題。)
當您將非持續性資料 (例如暫存資料表和日誌檔案) 儲存在本機儲存空間中時,本機儲存空間可達到容量。檢查您是否正在運行 ALTER TABLE 命令,或者您是否存儲了過多的暫存資料表。透過最佳化 ALTER 命令和暫存資料表,您可以降低本機儲存空間使用量。多次執行類似這樣的命令,以查看執行個體上的暫存資料表數量:
SHOW GLOBAL STATUS LIKE 'created_tmp%tables';
要監視在特定時間範圍內建立的暫存資料表數量,您可以啟用 GoSH。這可讓您將伺服器狀態變數儲存在資料表中,以便稍後檢閱以供進一步分析。
檢閱 FreeableMemory 的 Amazon CloudWatch 指標,以判斷有多少可用記憶體。然後,檢查稽核日誌檔案、一般日誌或慢速查詢日誌是否耗用您的空間。您可以使用適用於 FreeLocalStorage 的 CloudWatch 指標來監視與 Aurora 執行個體相關聯的本機儲存空間。如需詳細資訊,請參閱在 Amazon Aurora 叢集中監控指標。
如果您需要更多儲存空間,可以增加本機儲存空間。若要增加本機儲存空間,您必須增加資料庫執行個體類別。有關詳情,請參閱 Aurora 資料庫執行個體類別。
您也可以增加參數 max_heap_table_size 和 tmp_table_size 的值。修改這些參數可減少溢入磁碟的資料量,進而減少使用的本機儲存體數量。您可以在附加至執行個體的參數群組中修改這些參數。如需詳細資訊,請參閱使用參數群組。
**注意:**如果您增加 max_heap_table_size 和 tmp_table_size的值,則資料表會在執行個體上消耗更多記憶體。如果您增加這些值,請確定執行個體上有足夠的可用記憶體。您可以使用適用於 FreeableMemory 的 CloudWatch 指標來監視可用記憶體。
錯誤 1114 資料表已滿
當 MySQL 執行操作,如 ALTER TABLE,它建立一個中繼暫存資料表與新的模式。然後,MySQL 在刪除舊資料表之前將資料加載到中繼資料表中。中繼資料表可能會使用本機儲存空間。如果中繼資料表需要的儲存空間多於可用的儲存空間,您可能會收到下列錯誤:
"ERROR 1114 (HY000): The table 'table-name' is full"(錯誤 1114 (HY000):資料表 'table-name' 已滿)
若要解決此錯誤,請暫時擴展執行個體以增加本機儲存空間。ALTER TABLE 作業完成之後,您可以縮減執行個體類別。若要增加本機儲存空間,您必須增加 Aurora 執行個體類別。有關詳情,請參閱 Aurora 資料庫執行個體類別。
相關資訊
如何檢視用於我的 Amazon Aurora MySQL 資料庫叢集的儲存空間?
Aurora MySQL 的臨時儲存空間限制