如何使 SqlCompare 自动化,它比较和同步不同服务器上的数据库以每晚运行?你能给我一个链接或简要步骤来说明如何处理这个问题吗?
5 回答
我只是自己解决了这个问题。就我而言,我有一些人在我不知道的数据库中胡闹并破坏了应用程序。不幸的是,我无法让它们停止在数据库中播放,所以我用 C# 编写了一个简单的程序。它执行 SQL 比较命令并在响应字符串中查找“所选对象相同”。如果它没有找到这个,它会通过电子邮件通知我有什么事情发生了。我使用 Windows Scheduler 将其安排在上午和下午。
这不是最优雅的解决方案,但它有效。
您可以从 .bat 或 .cmd 文件将其作为计划任务运行
在任务中只需执行以下操作:
cd "C:\Program Files\Red Gate\SQL Compare 7"
SQLCompare /db1:<dbname>
/db2:<dbname>
/synchronize
这将执行同步。或者,您可以通过 CI 系统执行此操作,并通过 msbuild 调用相同类型的命令
这可能不是工作的正确工具 SQLCompare 只关注模式,这可能会对您的数据产生一些不幸的影响。考虑如果你改变列,RedGate 要么
- 工作(当增加尺寸或其他东西时),
- 删除列(更改数据类型时)或
- 失败(它通常应该做什么)。
听起来您想要的是一个夜间复制方案,它将保留数据和架构。
如果您想使用 CI 服务器来实现这一点,您现在可以使用新发布的 CI 命令行来执行此操作,并在http://www.red-gate.com/ci上提供构建脚本示例文件
对于 TeamCity 用户,有一个自定义插件。
这些是免费下载,但请记住,您需要适当的 Red Gate 许可证才能在试用期结束后使用它。
您可以尝试使用自动化软件在夜间使用调度程序或触发器启动它。Automation Anywhere 对此有好处。让我知道您是否需要更多信息或只是谷歌它。-汤姆