我们目前有一个SQL Server 2016企业版实例,其中包含一个从网站中提取的数据表 - 每个记录大约有30个字段,其中两个包含段落值非结构化数据。 (每条记录都有一个唯一的标识符,但请继续阅读,看看为什么这对我没有好处)。我的任务是创建第二个SQL Server实例,它将作为第一个的精确副本启动。但实例1和2只是第1天的精确副本。
从那里开始,实例1将有许多每日写入和删除,而实例2将仅作为所有写入实例1的记录的保留存档。
因此,我需要设置一个每日任务,只有在实例2中不存在记录时才将记录从实例1复制到实例2.由于该表有一些非结构化数据字段,我相信实现此目的的唯一方法是将传入实例2的记录中的每个字段与每个现有记录的每个字段进行比较,作为重复检查器,然后仅记录该记录(如果该记录尚不存在)。
然而,真正变得棘手的是Instance 1每天都进行完全擦除/替换 - 因此写入实例1的记录很可能已经写入(实际上,大部分都有)。因此,实例1上的集成变更跟踪对我没有好处。
这是实现这一点的唯一方法吗?我上面提到的逐个检查重复的想法?我不是要求别人为我写这些陈述,而只是需要一些关于我从哪里开始的指导。我甚至对可能存在的第三方解决方案持开放态度。我想我们不能成为第一家尝试这样做的公司,必须有一个合理的解决方案(我们最大的警告是我们的数据非结构化)。
非常感谢。
答案 0 :(得分:0)
我想说你最好的选择是Replication。
有时可能有点毛茸茸的可怕。但它坚如磐石且非常可靠。
对于较小的数据库,您可以轻松地使用Snapshot复制,在某种形式的间歇性循环中运行。这会在每次实例化时从订阅者的新创建的快照重新初始化订阅者。
如果数据库有任何比例,我建议Transactional复制,它将解析您的日志文件并将新的交易发送给订阅者。