我们在100公里范围内有2个分支B-1和B-2。这两个分支在各自的位置都有自己的SQL Server安装程序;具有相同的数据库名称,表和结构...意味着这两个服务器都具有相同的数据库和表Schema。
B-1自2017年开始运行。因此,我们将其视为Master Server,其中我们设计了数百份报告,并提供完整的统计信息和运营报告。
B-2是最近安装的,问题是这里的电源非常有限,实际上根本没有电力供应。因此,我们使用Generators运行服务器+用户PC(连续8小时)。 这两个分支的工作性质是相同的。
我的问题是,由于非VPN可用性,我很难合并这两个服务器,并且我很难从这两个位置撤回报告。我想转移新插入的/编辑的数据从B-2到B-1(主服务器)的数据库。由于安全问题,我们也不能使用公共IP。我拥有的资源只是互联网连接。
我计划的就像是将新添加/编辑的数据文件从B-2服务器(2个表)上传到FTP服务器,然后我想将FTP服务器中文件的内容插入到B-1中服务器并从FTP中删除该文件。
因此我需要:
注意:如果我满足上述需求,则将通过批处理文件或.NET / C#应用程序将其自动化以发送文件(来自B-2)并接收文件(位于B-1)
请注意:“源表”和“目标表”结构100%相同,没有任何区别。
请不要提供SSMS解决方案(因为我计划在没有用户帮助的情况下自动执行查询)
预先感谢。
由于.txt文件中没有阿拉伯字体,因此我切换到.csv文件。这是我的解决方法查询:
DeclARE @ExportSQL nvarchar(max);
SET @ExportSQL = 'EXEC ..xp_cmdshell ''bcp "SELECT TOP 5 * from Transport.dbo.Test_Table " queryout "D:\results4.csv" -T -c -t -S ABDULLAH-PCNEW'''
Exec(@ExportSQL)
我得到下面的CSV文件,但所有SQL表字段都在一个Excel列下。
感谢您的所有评论/建议。实际上,我不希望将其称为“同步请求”。相反,我可以说它是“推送并读取”从一个位置到另一个位置的数据(反之亦然)。 例如:假设 B-1服务器已经有100,000行。 B-2服务器中有5行。
工作日期:02-10-2020 B-1服务器=保存10个新行。 B-2服务器=保存200个新行。
一天结束时,我需要以下内容: B-1服务器= 100,210行 B-2服务器= 205行