Sql server 数据库数据同步与验收

Sql server 数据库数据同步与验收,sql-server,data-migration,Sql Server,Data Migration,在我工作的金融公司,有各种独立的部署环境,包括暂存和生产环境。这些环境的数据库公开的数据可以使用内部开发的应用程序进行修改。目前,任何具有适当访问权限的人都可以将此类数据修改应用于暂存和生产。但是,审核遵从性要求关键人员接受登台环境中的更改,从而将其推送到生产环境中 为了实现这一点,我们将为这些关键人员提供一个用户界面,在该界面中,他们可以看到暂存表和生产表之间的差异,只需按下一个按钮即可接受它们 我的问题是:如何最好地确定和/或存储两个环境表之间的差异,以便将它们推送到生产环境中,并在不被接受

在我工作的金融公司,有各种独立的部署环境,包括暂存和生产环境。这些环境的数据库公开的数据可以使用内部开发的应用程序进行修改。目前,任何具有适当访问权限的人都可以将此类数据修改应用于暂存和生产。但是,审核遵从性要求关键人员接受登台环境中的更改,从而将其推送到生产环境中

为了实现这一点,我们将为这些关键人员提供一个用户界面,在该界面中,他们可以看到暂存表和生产表之间的差异,只需按下一个按钮即可接受它们

我的问题是:如何最好地确定和/或存储两个环境表之间的差异,以便将它们推送到生产环境中,并在不被接受时选择性地恢复?到目前为止,我提出了两种解决方案:1使用sql脚本或诸如Red Gate的sql Data compare之类的工具比较两个表或这些表的视图,2将对暂存表所做的更改存储为差异,类似于版本控制系统使用的差异


对于这两种解决方案,我都考虑了各种含义,在这个问题中我将不提及这些含义,因为我不想过多地引导您的思考过程。

我将使用红门SQL数据比较,我以前在您描述的场景中成功地使用了这些数据。给定SQL数据比较,您可以轻松创建在应用和删除两个方向工作的SQL脚本。SQL server的一个很好的功能是创建快照,以便与开发人员版和企业版中可用的快照进行比较

但是,我遇到了一些问题:

如果暂存环境和生产环境对于需要暂存的表集在数据方面不是100%相等,那么一切都会变得复杂。例如,如果暂存环境仅包含生产数据的子集。然后需要某种附加逻辑。数据的删除也变得更加复杂。 我发现,某种帮助来跟踪所应用的内容是至关重要的。这里可以使用像这样的工具。主要原因是要跟踪模式的版本以及数据库中的静态数据。
---------    synch    ------------
|Staging| ----------> |Production|
---------      ^      ------------
               |
   Acceptance by key personnel