迁移数据

优化 Spanner 架构并迁移应用后,您可以将数据移至一个空的生产规模 Spanner 数据库,然后将应用切换为使用该 Spanner 数据库。

根据您的使用情形,您或许可以执行停机时间最短的实时数据迁移,或许需要长时间停机才能执行数据迁移。

如果您的应用无法承受长时间的停机,请考虑执行实时数据迁移。如果您的应用可以处理停机时间,您可以考虑在停机期间进行迁移

在实时数据迁移中,您需要配置网络基础架构,以便数据在源数据库、目标 Spanner 数据库以及用于执行数据迁移的工具之间流动。您需要根据组织的合规性要求,决定是使用专用网络连接还是公共网络连接。您可能需要组织的网络管理员来设置基础设施。

实时数据迁移

实时数据迁移包含两个组件:

  • 迁移源数据库中一致快照的数据。
  • 迁移自该快照以来的变更(插入、更新和删除)数据流,称为变更数据捕获 (CDC)。

虽然实时数据迁移有助于保护您的数据,但该过程也存在一些挑战,包括:

  • 在迁移快照时存储 CDC 数据。
  • 在捕获传入的 CDC 流的同时,将 CDC 数据写入 Spanner。
  • 确保将 CDC 数据迁移到 Spanner 的速度快于传入的 CDC 流。

有停机时间的迁移

如果源数据库可以导出为 CSV 或 Avro,则您可以迁移到 Spanner,但会停机。如需了解详情,请参阅 Spanner 导入和导出概览

如果测试环境或应用可以承受几个小时的停机时间,则可以使用有停机时间的迁移。在实时数据库中,迁移期间的停机可能会导致数据丢失。

如需执行停机迁移,请考虑以下总体方法:

  1. 停止应用,并从源数据库生成数据转储文件。
  2. 以 MySQL、PostgreSQL、Avro 或 CSV 转储格式将转储文件上传到 Cloud Storage。
  3. 使用 Dataflow 或 Spanner 迁移工具将转储文件加载到 Spanner 中。

生成多个小型转储文件可加快写入 Spanner 的速度,因为 Spanner 可以并行读取多个转储文件。

从源数据库生成转储文件时,请注意以下事项,以生成一致的数据快照:

  • 在执行转储之前,请对源数据库应用读取锁定,以防止在生成转储文件期间数据发生更改。
  • 或者,使用已停用复制功能的源数据库的读取副本来生成转储文件。

特定于来源的指南