2016-04-20 55 views

回答

12

RDS不允許您減少分配給數據庫實例的存儲量,只增加它。

要將數據庫移動到更少的存儲空間,您必須創建一個具有所需存儲空間的新RDS實例,然後使用類似pg_dump/pg_restore的數據將數據從舊數據庫移動到新數據庫。

另請注意,具有1,000GB SSD存儲的RDS實例的基本IOPS爲3,000。具有100GB SSD存儲的RDS實例的基本IOPS爲300,偶爾突發高達3,000。

4

當使用RDS時,不需要執行典型的硬件「容量規劃」,只需爲短期或中期配置足夠的磁盤空間(取決於),在需要時展開。

正如@Mark B所提到的,您還需要注意IOPS。如果您需要高性能數據庫,則可以使用「預配置IOPS」。

在跳入磁盤空間存儲部分之前,您應該先花費成本與性能調整。 例如如果您將美國西部的1000GB減少到120GB,則可以節省0.125x 880GB = 110 /月。但最大IOPS將爲120x 3 = 360IOPS

提供額外的IOPS以提高性能需要花費您0.10美元。假設您實際需要800IOPS以獲得更高的在線用戶響應,請撥打
(800-360)x 0.10 = 44美元。所以實際的儲蓄可能最終「減少」。如果您的RDS需要不斷的1100 IOPS,您將不會節省任何資金。其他折扣因素也可能發揮作用。

9

基於AWS的幫助​​,這是全過程,爲我工作:

1)轉儲數據庫到文件:具有到數據庫網絡訪問的機器上運行此: pg_dump -Fc -v -h your-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username your-databasename > your-databasename.dump

2)在AWS控制檯中,使用較小的存儲創建新的RDS實例。 (您可能想要使用相同的用戶名,密碼和數據庫名稱進行設置)。

3)在新的RDS實例上還原數據庫:運行此命令(顯然與前一命令位於同一臺計算機上): pg_restore -v -h the-new-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username -d your-databasename your-databasename.dump

(注意,在步驟3中,我使用了新的RDS實例的終點還要注意有沒有:5432在端點地址結束)

2

亞馬遜沒有允許減小RDS實例的硬盤大小,您可能有兩個選擇來減小存儲大小。

1:如果您可以承受停機時間,則可以將舊實例的mysqldump備份恢復到具有較小存儲大小的新實例。

2: - 您可以使用數據庫遷移服務將數據從一個實例移動到另一個實例,而無需任何停機時間。

+0

感謝您建議數據庫遷移服務。它幾乎爲我工作 - 直到我發現它不(當前)支持正確遷移JSON或JSONB列:-( –