我需要同步(首先上传到远程数据库,然后下载到移动设备)来自移动设备的远程数据库的数据库表(可能会插入/更新/删除来自多个表的行)。
远程数据库根据上传的同步数据执行其他操作。当同步继续将数据下载到移动设备时,远程数据库仍在执行之前的任务并导致同步失败。类似'关键条件',其中'同步和数据库操作'都希望访问远程数据库。如何解决这个问题?是否可以同步数据库并同时对同一个数据库进行操作?
我使用 Sql server 2008 DB 和 mobilink 同步。
编辑: 我按顺序执行的操作:
1.一部装有使用 mobilink 同步数据的应用程序的 iPhone。
2.SYNC表示上传(从设备到远程数据库),然后下载(从远程数据库到设备)。
3.Remote DB是指Consolidated DB;设备数据库是Ultralite DB。
4.远程数据库有一些触发器会在某些表更新时触发。
5.同步上传完成后,从设备到远程的上传将触发触发器。
6.下一刻,上传完成,下载到设备开始。
7.数据库触发器将在同一时刻触发。
8.现在 DB SYNC(-DOWNLOAD) 和触发器(包含在其中的更新查询)操作之间发生死锁。
9.同步失败,错误提示无法访问某些表。
最佳答案
我在 Google 上做了很多工作!针对这个问题提出了一个简单的(?!)解决方案。 (虽然目前还无法解决确切的问题..我尽力了)。
- 跟踪所有进行同步的客户端(用户详细信息类型)。
- 创建一个 SQL 作业调度程序,其中包含用户同步时要执行的所有操作。
- 每天宣布一个“维护期”,以针对保存的用户/客户端同步详细信息执行 SQL 作业的任务。
- 每次跟踪客户详细信息的成本较高,但非常必要!
- 远程整合数据库仅在维护期后“完全更新”。
任何比这更好的方法将不胜感激!欢迎所有建议!
关于sql-server - 如何同时更新和同步数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23126559/