我已為 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體啟用儲存空間自動擴展功能,但可用儲存空間仍少於 10%。或者,執行個體處於儲存空間已滿的狀態。
簡短描述
當您變更資料庫執行個體的儲存空間時,資料庫執行個體會進入儲存空間最佳化狀態。儲存空間最佳化通常需要幾分鐘來完成,但在某些情況下可能會超過 24 小時。若要監控程序,請使用 Amazon Elastic Compute Cloud (Amazon EC2) 主控台。
注意:在最後一次儲存裝置修改後的六小時內,或儲存空間最佳化完成之前 (以較長時間為準),您無法進行其他儲存空間修改。
在儲存空間最佳化期間,即使可用儲存空間少於 10%,自動擴展也無法增加資料庫執行個體的儲存空間。
當您使用自動擴展來增加資料庫執行個體的儲存空間時,新增的儲存空間將依照下列增量之一增加 (以較大者為準):
- 10 GiB
- 目前分配空間的 10%
- 根據過去一小時的 FreeStorageSpace 指標,預測未來七小時的儲存空間增長
如果您想在不到一小時內載入 50 GB 的數據,那麼 10% 的儲存空間增加是不夠的。由於先前的自動擴展作業處於儲存空間最佳化狀態,因此在程序完成之前,您無法對資料庫執行個體進行儲存空間修改。因此,您的資料庫執行個體可能處於儲存空間已滿狀態長達數小時。
解決方法
如果您無法修改 RDS 資料庫執行個體儲存空間,請檢查執行個體的狀態。如果您的資料庫執行個體處於儲存空間已滿或可用狀態,請檢查過去六個小時內是否進行了儲存空間修改。若要確認最近是否執行儲存空間增加作業,請檢查資料庫執行個體的事件中是否有下列訊息:
「已完成套用對分配儲存空間的修改。」
- 或 -
「已完成套用自動擴展啟動的儲存空間修改。」
如果您的資料庫執行個體處於儲存空間最佳化,請將資料庫還原至具有更多 Amazon Elastic Block Store (Amazon EBS) 儲存空間的資料庫執行個體。
注意:如果您的資料庫執行個體處於儲存空間已滿狀態,必須先停止任何資料載入資料庫執行個體。此程序可能需要幾分鐘到幾小時的時間,才能使執行個體不再處於儲存空間已滿狀態。
當您的資料庫執行個體不再處於儲存空間已滿狀態時,請使用下列其中一個選項來修改資料庫執行個體儲存空間大小:
- 選項 1: 建立並提升資料庫執行個體的讀取複本。
- 選項 2: 建立手動資料庫快照,並將資料庫執行個體還原到指定的時間點。
- 選項 3: 由於 FreeStorageSpace 較低,請關閉自動擴展功能。
**注意:**選項 1 和 2 會導致資料庫停機。但是,選項 1 導致的停機時間比選項 2 短。MariaDB、Microsoft SQL Server、MySQL、Oracle 和 PostgreSQL DB 引擎支援讀取複本。
建立並提升 RDS 資料庫執行個體的讀取複本
請完成下列步驟:
- 建立資料庫執行個體的讀取複本。
- 增加讀取複本的儲存容量。根據預設,Amazon RDS 的儲存空間自動擴展功能在讀取複本上處於停用狀態。
- 將您的作用中資料庫執行個體重新命名為其他名稱。這會停止傳入的流量。
- 將讀取複本重新命名為您用於作用中資料庫執行個體的名稱。這會將讀取複本端點變更為與作用中資料庫執行個體相同,且您不必重新設定應用程式。
- 提升您的讀取複本。
**注意:**對於應用程式或用戶端,資料庫停機會發生在步驟 3-5 期間。
建立手動資料庫快照,並將 RDS 資料庫執行個體還原到指定的時間點
請完成下列步驟:
- 重新命名您的作用中資料庫執行個體,以停止傳入流量並防止進入儲存空間已滿狀態。如果您的資料庫執行個體處於儲存空間已滿狀態,那麼您無法繼續下一步。
- 建立資料庫執行個體的資料庫快照。
注意:快照可防止還原後的資料庫執行個體進行儲存空間最佳化儲存空間修改事件。
- 若要將資料庫執行個體還原至某個時間點,請選擇最新的可還原時間。對於執行個體識別碼,請輸入作用中資料庫執行個體所使用的名稱。
注意:若要避免自動擴展增加導致儲存空間最佳化,請不要啟用自動擴展。
- (選用) 修改還原的資料庫執行個體,以納入自訂安全群組。預設資料庫安全群組會套用至新的資料庫執行個體。
- 增加新資料庫執行個體的儲存容量。
**注意:**對於應用程式或用戶端,資料庫停機會發生在步驟 1-4 期間。
由於 FreeStorageSpace 較低,請關閉自動擴展功能
如果關閉自動擴展,則不會自動分配額外的儲存空間,您可以手動控制儲存空間分配。例如,自動擴展預計將儲存空間增加 10%,但您希望在自動擴展事件啟動之前手動增加超過 10% 的儲存空間。針對此情況,請關閉自動擴展功能。
若要關閉自動擴展,請完成下列步驟:
- 開啟 Amazon RDS console (Amazon RDS 主控台)。
- 在導覽窗格中,選擇 Databases (資料庫),然後選取您的資料庫。
- 選擇 Modify (修改)。
- 在 Storage (儲存空間) 中的 Additional storage configuration (附加儲存空間組態) 下,清除 Enable storage autoscaling (啟用儲存空間自動擴展)。
- 選擇 Continue (繼續)。
- 選擇 Apply immediately (立即套用) 或 Apply during the next scheduled maintenance window (在下一個排程維護時段套用)。
- 選擇 Modify DB Instance (修改資料庫執行個體)。
注意:當 FreeStorageSpace 指標低於 10% 至少五分鐘時,將啟動自動擴展功能。當距離上次儲存空間修改至少六小時,或執行個體上的儲存空間最佳化完成時 (以較長者為準),自動擴展功能也會啟動。
相關資訊
為什麼我在 Amazon RDS for PostgreSQL 上收到「No space left on device」(裝置上沒有剩餘空間) 或「DiskFull」(磁碟已滿) 錯誤?
為什麼我的 Amazon RDS for Oracle 資料庫執行個體所使用的儲存空間超出預期?
為什麼我的 Amazon RDS for MySQL 資料庫執行個體使用的儲存空間超出預期?
如何在 Amazon RDS for SQL Server 資料庫執行個體中最佳化儲存空間消耗量?