![无法使用 TSQL(Ready-roll)更改发布数据库的架构:被强制停止复制](https://linux22.com/image/800060/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20TSQL%EF%BC%88Ready-roll%EF%BC%89%E6%9B%B4%E6%94%B9%E5%8F%91%E5%B8%83%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E6%9E%B6%E6%9E%84%EF%BC%9A%E8%A2%AB%E5%BC%BA%E5%88%B6%E5%81%9C%E6%AD%A2%E5%A4%8D%E5%88%B6.png)
我正在尝试使用 T-SQL(使用 Ready-Roll 数据库源代码控制工具和 Octopus Deployment)将架构更改应用于发布数据库,但它迫使我停止复制以运行脚本。如果重要的话,我正在运行事务复制。
这对自动化部署的真正目的提出了挑战,而且由于需要复制重置,成本非常高。
答案1
A事务处理SQL(TSQL) 是一种搜索和获取工具。它可用于更改数据库的架构。它通过复制命令来实现这一点。如果 TSQL 不起作用,则可能需要另一个步骤。您可能需要采用不同的方法重新启动该过程。
如果在更改发布数据库架构的过程中被迫停止复制,则必须考虑一个重要问题。数据库是否具有可自动冻结任何复制过程的安全标记。如果有,那么您必须采取必要的步骤来发现独特的数据库特性。这将使您能够辨别任何安全标记。
另一个需要考虑的选项是数据库的多样性。这个选项会带来一个问题:这是唯一一个 TSQL 工具无法工作的发布数据库吗?这个问题为解决问题提供了各种新的可能性和途径。首先,如果您偶然发现一个数据库向您显示“停止复制”消息,那么问题不是 TSQL,而是该数据库中的问题。
如果任何发布数据库上出现“停止复制”消息,则您必须考虑流程中的步骤。TSQL 被设计为复制器,它应该更改数据库的架构。但是,必须采取一些特定步骤。
一定要考虑分发参数。TSQL 是否与这些参数匹配。安装值是多少?它是否必须为零才能使复制过程具有适当的操作平台?您的事务处理是否需要很长时间?某些发布数据库具有最大事务保留期。最后,您的 TSQL 脚本文件在执行指定任务时是否遵循逻辑顺序?最后一个快速考虑。Transact-SQL 脚本编写者应考虑主题数据库脚本是否是手动配置的。