双写和回填是一种迁移策略,用于以低停机时间(分钟级停机时间)迁移大量时序数据(100 GB-10 TB+)。它比使用 pg_dump/restore 进行停机迁移要复杂得多,并且对应用程序的数据摄取模式有一些先决条件,因此它可能并非普遍适用。
注意
在迁移的上下文中,您现有的生产数据库被称为“源”数据库,而您打算将数据迁移到的新 Timescale 数据库被称为“目标”数据库。
大致来说,它包含三个步骤
- 将模式和关系数据从源克隆到目标
- 双写到源和目标
- 回填时序数据
双写和回填可用于任何源数据库类型,只要它可以提供 csv 格式的数据即可。它可以用于从 PostgresSQL 源以及从 TimescaleDB 迁移到 TimescaleDB 的数据迁移。
双写和回填在以下情况下效果良好
- (磁盘上的)大部分数据都在时序表中。
- 应用程序的写入不引用历史时序数据。
- 对时序数据的写入是仅追加的。
- 在迁移过程中,不会在源数据库中的时序数据上运行
UPDATE
或DELETE
查询(或者,如果运行,则以受控方式进行,以便可以忽略或重新回填)。 - 关系(非时序)数据要么足够小,可以在可接受的停机时间内从源复制到目标,要么关系数据可以在应用程序继续运行时异步复制(即,更改相对不频繁)。
有关更多信息,请查阅您的源数据库的逐步指南
提示
如果您遇到困难,可以通过打开支持请求获得帮助,或者将您的问题提交到 社区 Slack 中的 #migration
频道,该迁移方法的开发人员将在那里提供帮助。
您可以直接从 Timescale 控制台 或通过电子邮件 support@timescale.com 打开支持请求。
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。