Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 Microsoft Sync Framework将客户端数据库标记为最新_Sql Server 2008_Synchronization_Microsoft Sync Framework - Fatal编程技术网

Sql server 2008 Microsoft Sync Framework将客户端数据库标记为最新

Sql server 2008 Microsoft Sync Framework将客户端数据库标记为最新,sql-server-2008,synchronization,microsoft-sync-framework,Sql Server 2008,Synchronization,Microsoft Sync Framework,我已经使用Microsoft Sync Framework 2.1 SDK开发了一个应用程序,目前的部署方法是: 从开发计算机备份未配置的数据库,并将其恢复到服务器上 设置服务器,然后设置客户端 同步数据库 在开发计算机上备份同步数据库,并将其用于客户端安装。它作为SQL/Server备份包含在InstallShield软件包中,我将其恢复到客户端计算机上 这是可行的,但在客户机上,现在我还想使用相同的SQL/Server备份创建一个单独的测试数据库,而不需要将安装规模增加一倍。这也行得通,但当

我已经使用Microsoft Sync Framework 2.1 SDK开发了一个应用程序,目前的部署方法是:

  • 从开发计算机备份未配置的数据库,并将其恢复到服务器上

  • 设置服务器,然后设置客户端

  • 同步数据库

  • 在开发计算机上备份同步数据库,并将其用于客户端安装。它作为SQL/Server备份包含在InstallShield软件包中,我将其恢复到客户端计算机上

  • 这是可行的,但在客户机上,现在我还想使用相同的SQL/Server备份创建一个单独的测试数据库,而不需要将安装规模增加一倍。这也行得通,但当然,因为客户端测试版本不再与服务器上的测试版本同步,所以它会尝试下载所有记录,这会在较慢的Internet连接上花费许多小时

    因为测试数据库的完整性并不重要,我想知道是否有一种方法可以在没有太多网络流量的情况下,在客户机上将其标记为“最新的”


    在查看了跟踪表的工作方式之后,我不确定在不导致其他客户端上传或下载所有内容的情况下,这是否可能实现。也许有一个选项可以只从我错过的客户端上传?这很适合此目的。

    每次备份已配置的数据库并将其还原以初始化另一个客户端或副本时,确保在还原后和首次同步之前运行PerformPostRestoreFixup。

    每次备份已配置的数据库并将其还原以初始化另一个客户端或副本时,请确保在还原后和首次同步之前运行PerformPostRestoreFixup。

    在进一步分析了sync Framework使用的数据结构后,我确定,如果不在客户端和服务器之间发送大量数据,就无法达到我要求的结果接近进行“正确”同步所需的内容


    相反,我最终在部署过程中包含了一个单独的测试数据库备份,这样通常的PerformPostRestoreFixup可以执行,然后以正常方式进行同步,就像我处理实时数据库一样。

    在进一步分析了sync Framework使用的数据结构之后,我确定不会出现任何问题实现我所寻求的结果的可接受方法,而不必在客户端和服务器之间发送大量数据,这些数据将接近进行“正确”同步所需的数据量


    相反,我在部署过程中加入了一个单独的测试数据库备份,这样通常的PerformPostRestoreFixup可以在执行之后以正常方式进行同步,就像我处理实时数据库一样。

    您好,June,谢谢,但我在这两种情况下都这样做。在我知道该怎么做之前,我最初就遇到了问题,所以我相信它的执行情况是正常的。如果以前同步过,客户端不应该下载所有记录。您正在设置新的作用域吗?数据库的实时副本已同步,没有下载任何内容。它只是从同一数据库备份在客户端上还原的测试版本,因为即使数据相同,它也没有与服务器测试数据库同步。我知道这不是一件标准的事情,但我正在寻找一种“欺骗”的方法,让它认为测试数据库是最新的,而不同步所有内容。我还尝试在设置后复制live以进行测试,但在恢复后修复之后,它似乎仍然意识到这是不同的,并下载了所有东西。如果我了解您的场景,您有prod server和prod client,这很好。您需要一个测试客户机和测试服务器设置,只需备份prod客户机或prod服务器,恢复到测试客户机和测试服务器,performpostrestorefixup,然后同步。您好,June,可以。只是数据库相当庞大,如果可能的话,我尽量避免在客户端下载两个备份-一些用户使用慢速卫星互联网等。如果不可能的话,我将不得不这样做。如果您想更新您的答案,以反映如果没有其他建议出现,我将在几天内接受。测试数据库还将用于培训新用户,因此在每台客户机上都需要它。嗨,June,谢谢,但我在这两种情况下都这么做。在我知道该怎么做之前,我最初就遇到了问题,所以我相信它的执行情况是正常的。如果以前同步过,客户端不应该下载所有记录。您正在设置新的作用域吗?数据库的实时副本已同步,没有下载任何内容。它只是从同一数据库备份在客户端上还原的测试版本,因为即使数据相同,它也没有与服务器测试数据库同步。我知道这不是一件标准的事情,但我正在寻找一种“欺骗”的方法,让它认为测试数据库是最新的,而不同步所有内容。我还尝试在设置后复制live以进行测试,但在恢复后修复之后,它似乎仍然意识到这是不同的,并下载了所有东西。如果我了解您的场景,您有prod server和prod client,这很好。您需要一个测试客户机和测试服务器设置,只需备份prod客户机或prod服务器,恢复到测试客户机和测试服务器,performpostrestorefixup,然后同步。您好,June,可以。只是数据库相当庞大,如果可能的话,我尽量避免在客户端下载两个备份-一些用户使用慢速卫星互联网等。如果不可能的话,我将不得不这样做。如果您想更新您的答案,以反映如果没有其他建议出现,我将在几天内接受。测试数据库