我在 Amazon Web Services 上有一个 RDS MySQL 数据库。
我想在控制面板中减小数据库的大小以节省资金。
问:如何让它变小?他们的网站说你必须以某种神奇的方式(从备份等),但我不想误打它!
请一步一步...谢谢!
这就是发生的事情:亚马逊问我想要的最大尺寸应该是多少。我选择了 10GB。然后我添加数据,直到表超过 10GB。然后亚马逊自动将大小限制增加到 20GB。在他们的手册中,他们说“增加”是自动的,但“减少”不是。
删除一些多余的数据后,数据大小再次低于 10GB,有没有办法创建一个新的 10GB 数据库并使用快照将数据复制到其中?
编写将创建脚本的脚本
当您对脚本可以完成这项工作感到满意时,请执行以下操作:
试试看 !!!
警告
由于innodb_file_per_table
.ibd
的默认值为 ON,因此每个正在优化的 InnoDB 表实际上都会缩小其文件。任何 MyISAM 表(我希望你没有)也将缩小它们的.MYD
和文件。.MYI
更新 2012-09-18 18:19 EDT
我刚刚尝试了以下方法:
Requested storage size (5) cannot be less then the current storage size (10)
:)如果我恢复快照,它会创建第三个实例。数据库快照必须是整个服务器实例,而不是任何类型的转储。
您将不得不执行以下混乱的过程:
在第 4 步,请在 20GB 和 10GB 实例上运行此 Big Storage Engine Space Query
将 mysqldump 迁移到新的 10GB 实例时,您将看到多少浪费的空间消失了。这肯定会对所有 InnoDB 表进行碎片整理。你可能需要运行上面
/root/OptimizeAllTables.sql
我给你的脚本()每周一次OPTIMIZE TABLE
在数据库中的所有表上运行一次,以保持尽可能小。当它开始接近 10GB 时,您还可以运行 Big Storage Engine Space Query to Monitor。signs
.ibd