0

您好我仍然是数据库部署的新手。

通常如何为发布部署对生产数据库的更改?

我的客户想要一个全新的设置。我们有 3 个环境:DEV、INT、PROD。他想在 QA 认证后将 INT 设为 PRODUCTION。这对于应用服务器来说没问题,但由于数据库的状态非常重要,这对数据库来说是个问题,因为除非我们将生产数据同步到集成,否则我们无法使 INT 数据库成为生产数据库。但是我们的数据库超过 300GB,所以同步数据需要很长时间,因此停机时间非常长,这是不可见的。

你们能在这种情况下给我建议吗?

4

2 回答 2

0

以下是部署到生产数据库的一些提示:

  1. 始终拥有生产数据库的当前备份。以防万一出现问题。
  2. 确保对脚本使用某种源代码控制。就像代码一样。签入脚本、存储过程等。
  3. 总是有任何数据更新的回滚脚本。例如,有一个更新 100 条记录的脚本?编写一个脚本,将数据临时复制到其他地方,并且可以恢复您所做的任何更改。在 DEV 和 INT 中很容易对此进行测试。在对数据进行生产更改时让您高枕无忧。
  4. 始终对任何架构更改进行最近的备份。如果要向表中添加字段,请查看是否可以将表复制到临时表,然后进行更改。如果表非常大,可能并不总是可行,但同样,它可以让您在发生错误时快速回滚。
  5. 练习,练习,练习。练习恢复旧生产数据的备份。练习在 DEV 和 INT 中运行脚本。随时准备重新部署所有存储过程。

您谈到的另一个可能很难的主题是在 INT 中获取生产数据。我会定期将生产数据库备份恢复到 INT 和 DEV。这对 QA 来说非常值得,因为它为他们提供了生产数据的质量和数量

但是,我建议不要将 INT 数据库投入生产。开发人员和 QA 总是会放入垃圾数据进行测试,而您不想让它生效。

于 2013-06-21T15:41:15.793 回答
0

我所知道的在部署之前进行这种同步的最合适的方法是使用原始数据的副本进行离线集成。起初它可能看起来是一个繁重的过程,但它具有保持原始数据可用的优点(问题可能总是在同步期间发生)并允许您在完全部署之前对数据进行所有必要的测试。

于 2013-06-21T14:57:49.173 回答