0

我有一个包含 1TB 数据的 MariaDB 数据库,我需要从中删除旧记录。

总删除数将使数据库的实际大小不到一半,所以我认为如果我迁移到新的 RDS,使用 DMS 及其过滤功能仅复制我需要的记录并复制正在进行的更改,这可能会更简单.

迁移的第二个原因是因为我无法“回馈”删除后的空闲存储空间以降低成本,因此亚马逊建议迁移到更小的 RDS。

考虑到这种情况,出现了一些疑问。

1 - 它说 DMS 不会创建所有表对象。我是否需要担心自动增量 ID?我的意思是,DMS 会在迁移时从序列的开头过滤掉记录,所以数据库会在插入新记录时从最后一个 ID 继续递增?

2 - 我究竟什么时候需要创建约束、FK 和其他未创建的对象?

3 - 并非所有表都会过滤记录。在不同的迁移任务中将它们分开会更好吗?

4 - 我从来没有使用这个工具迁移过任何东西。有什么我需要担心的隐藏陷阱吗?

OBS:迁移将从 AND 到 MariaDB

4

2 回答 2

0

如果您可以通过正常方式转储、移动和加载除最大表之外的所有表,则对转储部分的最大表执行以下操作:

mysqldump ... --where='...' ...

应精心设计 where 子句以保留您想要保留的

听起来您想删除大表的一半。这样的DELETE问题可能很大。通过SELECTing保留的那些,应该少很多麻烦。

一定要innodb_file_per_table=ON在新系统中有。

于 2020-01-13T05:57:37.747 回答
0

1 - 在迁移之前,我认为最好删除旧记录。这将使迁移更容易。也许这会帮助你...

 https://pt.stackoverflow.com/questions/139437/remover-registros-antigos-mysql-automaticamente

2 - 在删除旧记录之前不要创建限制。因为那会犯错误。

3 - 最好将表分开,删除记录和导入。这使您的迁移加载速度更快。因为它有1TB。

4 - 由于您从未进行过此类迁移,因此我建议您专注于删除记录,以便更容易导入到您的新系统中。

祝你好运!发送新闻

于 2020-01-05T21:11:21.180 回答