首页 > 解决方案 > 使用 DMS 迁移 MariaDB 数据以排除旧记录并减少 RDS 大小

问题描述

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

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

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

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

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

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

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

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

OBS:迁移将从 AND 到 MariaDB

标签: mariadbamazon-rdsaws-dmsaws-sct

解决方案


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

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

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

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

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


推荐阅读