实际上,由于MYSQL中的.ibd文件,我的服务器存储正在迅速增加。
我可以备份.ibd文件并删除它们吗?
如果是的话,我可以知道做这件事的过程,我做了很多研究,但没有找到任何解决办法。
因为,这是production,我不希望有任何数据丢失或停机时间。
任何帮助都将不胜感激。
发布于 2021-10-09 17:06:59
如果要避免数据丢失或停机,则不能删除.ibd文件。这些.ibd文件包含您的数据和索引。根据定义,删除这样的文件将导致数据丢失,而且很可能会导致停机。
您应该为需要保存在数据库中的数据提供足够的存储空间。容量规划是数据库管理员的一项重要任务。
您还应该决定需要在数据库中保存多少数据。例如,可能不再需要超过1年的数据。您可以删除它,也可以将其导出到文件中并进行长期存档(以防有人需要研究旧数据)。
您可以使用米斯德进行备份,但是转储也会很大,因此您应该决定可以在哪里保存转储文件。通常,像您这样的大型数据库服务器有第二个用于存储备份的文件系统。
我喜欢使用其他免费备份工具,如翻地机或Percona XtraBackup。
一旦备份了对应于.ibd文件的表,就可以删除数据。最快的方法是截断表。这将清空表中的所有行,并重置自动增量id。没有回滚,所以请确保备份了想要保存的任何数据。
另一个免费工具是Percona的pt-存档器。这是一个很好的使用工具,因为它是逐步工作的。对于InnoDB来说,在一个事务中删除数百万行是不好的。Pt-存档程序可以删除数百万行,但它一次只能在几行上工作。还可以使用pt-archiver将数据导出到文件,或将数据从一个表复制到另一个表。阅读文档,并在较小的表上试用,直到您对使用它充满信心为止。
https://dba.stackexchange.com/questions/300898
复制相似问题