我有数百个SQL Server Express数据库在互联网上运行,我有一个主SQL Azure数据库。我正在尝试使用过滤器将主服务器同步到每个SQL Server Express,以便每个客户端仅获取其数据。
SQL Azure同步适用于该作业,但我还需要同步存储过程,视图和触发器,因为我将从连接到其本地SQL Server数据库的每个客户端运行webapis。
在此方案中,自动同步数据和架构更改的最佳方法是什么。我不想使用复制或VPN方案。
答案 0 :(得分:0)
您是否拥有SQL Compare Pro和SQL Data Compare Pro的许可证?这些命令行可用于自动化您描述的场景。如果您拥有Redgate Toolbelt,则包括这些。
SQLdatacompare.exe有一个/ include开关,允许您指定所需的表。您可以指定many other options。
如果只需要同步表中的某些记录,则可以设置WHERE子句,但这不能作为命令行开关完成。相反,您需要在SQL数据比较UI中保存比较项目,并将其用作命令行的输入参数。
例如sqldatacompare.exe /project:mysavedproject.sdc
SQL Compare用于同步模式(表,列,过程等)。它有a similar command line。
如果您需要其他帮助,请随时通过support@red-gate.com与我们的支持团队联系
答案 1 :(得分:0)
如果您已经在使用SSDT,那么 就不是了。我认为你分别对待数据“复制”和模式“复制”是正确的(“复制”在两个地方都用引号!)。
假设您构建了dacpac
,反映了Express数据库的所需状态,则选项为:
在每次构建后,为每个“客户端”提供推送更改的方法。这可能意味着维护服务器的中央寄存器以推送到某个地方 - 如果由于其他原因你已经这样做了,那么迭代列表并将dacpac部署到每个服务器上应该不会太难。
允许每个客户端在启动时拉出某些合适触发器的更新?按计划?在这种情况下,您不需要中央寄存器,只需要客户端可以看到的文件位置,以便他们可以下载dacpac并将其部署到自己。
上述两个选项之一的一些变体,但使用Powershell DSC,Puppet,Ansible等工具,可以单独使用,也可以相互组合使用。有了这么多服务器,您就会想要担心单独推送架构更改。