优化 Spanner 架构并迁移应用后,您可以将数据移至空的生产级 Spanner 数据库,然后将应用切换为使用 Spanner 数据库。
根据您的用例,您或许能够以最短的停机时间执行实时数据迁移,或者可能需要长时间停机才能执行数据迁移。
如果您的应用无法承受长时间的停机,请考虑执行实时数据迁移。如果您的应用可以处理停机时间,您可以考虑在停机期间迁移。
在实时数据迁移中,您需要配置网络基础架构,以便数据在源数据库、目标 Spanner 数据库以及您用于执行数据迁移的工具之间流动。您需要根据贵组织的合规性要求,决定是使用专用网络连接还是公共网络连接。您可能需要组织的网络管理员来设置基础架构。
实时数据迁移
实时数据迁移由以下两个组件组成:
- 迁移源数据库的一致快照中的数据。
- 迁移自该快照以来的更改(插入、更新和删除)流,称为变更数据捕获 (CDC)。
虽然实时数据迁移有助于保护您的数据,但该过程也存在一些挑战,包括:
- 在快照迁移期间存储 CDC 数据。
- 在捕获传入的 CDC 流时将 CDC 数据写入 Spanner。
- 确保将 CDC 数据迁移到 Spanner 的速度快于传入的 CDC 流。
有停机的迁移
如果您的源数据库可以导出为 CSV 或 Avro,则您可以迁移到 Spanner,而不会出现服务中断。如需了解详情,请参阅 Spanner 导入和导出概览。
有停机时间的迁移适用于可以处理几小时停机时间的测试环境或应用。在有数据库处于活动状态的情况下,如果迁移会导致停机,则可能会导致数据丢失。
如需执行停机迁移,请考虑以下大致方法:
- 停止应用,然后生成源数据库中数据的转储文件。
- 将转储文件以 MySQL、PostgreSQL、Avro 或 CSV 转储格式上传到 Cloud Storage。
- 使用 Dataflow 或 Spanner 迁移工具将转储文件加载到 Spanner 中。
生成多个小型转储文件可以加快写入 Spanner 的速度,因为 Spanner 可以并行读取多个转储文件。
从源数据库生成转储文件时,请注意以下事项,以生成一致的数据快照:
- 在执行转储之前,请对源数据库应用读取锁,以防止数据在生成转储文件期间发生更改。
- 或者,您也可以使用已停用复制的源数据库中的读取副本生成转储文件。
特定于来源的指南
- MySQL:MySQL 实时数据迁移。