1

如何使 SqlCompare 自动化,它比较和同步不同服务器上的数据库以每晚运行?你能给我一个链接或简要步骤来说明如何处理这个问题吗?

4

5 回答 5

2

我只是自己解决了这个问题。就我而言,我有一些人在我不知道的数据库中胡闹并破坏了应用程序。不幸的是,我无法让它们停止在数据库中播放,所以我用 C# 编写了一个简单的程序。它执行 SQL 比较命令并在响应字符串中查找“所选对象相同”。如果它没有找到这个,它会通过电子邮件通知我有什么事情发生了。我使用 Windows Scheduler 将其安排在上午和下午。

这不是最优雅的解决方案,但它有效。

于 2011-08-16T16:56:14.817 回答
2

您可以从 .bat 或 .cmd 文件将其作为计划任务运行

在任务中只需执行以下操作:

cd "C:\Program Files\Red Gate\SQL Compare 7"

SQLCompare /db1:<dbname>
           /db2:<dbname> 
           /synchronize

这将执行同步。或者,您可以通过 CI 系统执行此操作,并通过 msbuild 调用相同类型的命令

于 2011-08-15T20:48:43.550 回答
2

这可能不是工作的正确工具 SQLCompare 只关注模式,这可能会对您的数据产生一些不幸的影响。考虑如果你改变列,RedGate 要么

  • 工作(当增加尺寸或其他东西时),
  • 删除列(更改数据类型时)或
  • 失败(它通常应该做什么)。

听起来您想要的是一个夜间复制方案,它将保留数据和架构。

于 2011-08-15T20:49:19.223 回答
1

如果您想使用 CI 服务器来实现这一点,您现在可以使用新发布的 CI 命令行来执行此操作,并在http://www.red-gate.com/ci上提供构建脚本示例文件

对于 TeamCity 用户,有一个自定义插件。

这些是免费下载,但请记住,您需要适当的 Red Gate 许可证才能在试用期结束后使用它。

于 2012-09-20T14:33:09.797 回答
0

您可以尝试使用自动化软件在夜间使用调度程序或触发器启动它。Automation Anywhere 对此有好处。让我知道您是否需要更多信息或只是谷歌它。-汤姆

于 2011-08-16T19:31:08.080 回答