腾讯云 云数据库迁移

腾讯云的数据库迁移,我已经迁移过几次。虽然操作很简单,但觉的有必要将几点经验分享出来。由于没有保留截图,只能凭记忆来写,见谅。

  1. 目标实例没有初始化的先将其初始化。因为初始化时会重启机器,和源实例的数据同步会中断,无法确保数据一致,导致此次迁移作废。(√实力踩坑)

  2. 如果希望源、目标实例的数据库运行参数一致,有必要将在迁移之前,先将源数据库的配置文件导出来,覆盖目标实例的配置文件,并让参数生效。

    2021-11-20 如果选择实例迁移的话不用此操作

  3. 填写源数据库账号密码时,应填写root账号,如果是子账号,应赋予足够的权限,不过问题不大,迁移前腾讯云会检测。

  4. 实例迁移和库表迁移,如果只迁移部分库和表,选择库表迁移。如果是所有都迁移(包括数据库账号),一般选择实例迁移,更多查看第7点,如果拿不准咨询一下腾讯云客服。实例迁移会将源云数据库的子账号同步建立到目标云数据库,无需再手动创建。(至于 root 账户是否会覆盖,因为我不掌握 root 账户,所以不清楚)。

    2021.11.20 答案是实例迁移会覆盖

  5. 「全量检查」达到 「100%」时就代表全部迁移了,未点击「完成」前,源实例和目标实例进行增量同步

  6. 点击 「完成」前,目标实例是只读的。项目中可以读取目标库的数据是否正常,准备好切换的代码。准备完毕后,点击完成按钮,弹出的窗口选择等待完成-确定。然后立即在代码中切换数据库账号。

  7. 「库表迁移」和 「实例迁移」腾讯工程师会告诉你没有什么区别,但是实践中发现这两种方式,内存利用率有很大的差异。如源实例的内存利用为 1.2G ,「库表迁移」后内存仅为 600M ,而「实例迁移」后内存接近 1.2G 。内存是云服务器为了加快读取生成的缓存,随着时间会升高,但不代表真实的占用内存,和分配的大小有关。

    「库表迁移」只迁移数据,而「实例迁移」是将完整的实例(包括账号、配置文件、已加载的内存..) 整体迁移。

  8. 项目切换为新云数据库账号后,还有一些善后工作,尤其是 laravel 中运行在内存中的程序如 job任务,或者有常驻脚本在运行,因为框架中的数据库链接对象仍然保持原来的连接,所以会导致服务异常,应该留意,重启脚本。(√踩坑)

    重启队列 php artisan queue:restart

本作品采用《CC 协议》,转载必须注明作者和本文链接
welcome come back
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
94
粉丝
24
喜欢
156
收藏
346
排名:325
访问:2.9 万
私信
所有博文
社区赞助商