【发布时间】:2012-08-13 14:23:52
【问题描述】:
我有几台计算机使用相同的数据库 (SQL Server 2008)
我正在尝试使用数据库在所有这些计算机之间同步任务。
每个任务都由一个 guid 表示,该 guid 是 lock-id(如果与 Mutex 比较,那就是 Mutex 名称)
我有一些想法,但我认为它们是一种黑客行为,并希望这里有人能提供更好的解决方案:
- 创建一个新表“锁定”每行包含一个 guid,将表行以独占方式锁定在事务中 - 并在完成后完成/恢复事务。
- 在锁定名称为锁定 ID GUID 的事务中使用
sp_getapplock
我认为保持事务运行不太好......我想也许有一个解决方案不需要我保持打开的事务或会话?
【问题讨论】:
-
我知道将人们推荐给 Google 并不是一个好习惯,但我认为这是一个有效的例外。如果 OP 选择这样做,他可以谷歌“分布式同步”并找到很多关于该主题的好资源。
-
感谢您的回复,但是这个主题通常非常复杂,并且与服务器之间的同步数据(复制、合并等)有关。我只想在这些计算机之间持有一个排他锁。
标签: sql-server sql-server-2008 synchronization locking