我有一个300 5GB的数据库,每天增长大约5GB。它存储基于时间的数据,因此,我目前有大约60天的数据.我的主数据库服务器有一个450 GB的NVMe,所以我想要一个备用服务器,它可以为旧数据提供可扩展的廉价存储。
主服务器只需要最后15天的数据。因此,任何超过15天的数据,我想转移到二级数据库,它有较慢,但廉价的存储。我认为标准备份或归档是不可行的,因为我想在任何时候查询数据(可能每天有100个查询)。
我想在这里一箭双雕,我想如果我设置到辅助服务器的复制,然后以某种方式指示删除15天以上记录的清理存储过程不会将删除内容传播到从服务器。
这是可能的吗?如果不是,什么是最好的方式来完成存档的数据,但到另一个服务器,并允许查询。我怀疑对我的所有表进行分区,但不是所有的表都是基于时间的,所以我需要一些方法来将基于时间的分区数据与它所需的FKs一起移动。
PS:我不会依赖辅助服务器作为备份,而是我的主复制。然后,我将定期对辅助服务器进行非现场备份。
发布于 2021-01-03 07:56:41
让我来解释几件事。然后你可以找出哪种组合最适合。
INSERT、分区命令、DROPs等等。SELECTs)。PARTITIONs位于不同的文件系统路径中。如果是这样的话,第二个路径可能是另一个驱动器。PARTITION从表断开并转换为独立的表。可以将它们复制到另一个设备,备份、删除等(不要通过文件系统操作来完成)。PARTITION BY RANGE(TO_DAYS(...))可能是明智的。这将便利这种迁移,并最终在60天后删除。PARTITIONing适用于一个表,因此不需要对所有表执行它。(也许您指的是“切分”,它涉及到单独的、独立的MySQL实例,每个实例都有部分数据。https://dba.stackexchange.com/questions/282460
复制相似问题