Sql server SQL到SQL数据复制
我在一台服务器上有一个300 GB MSSQL 2016生产数据库,我需要在另一台服务器上复制该数据库,以便进行报告 在生产数据库上,存在正常的聚集/非聚集索引,并且每天都会执行读写操作 在报告方面,我将使用相同的数据库表和列存储索引,因此我将有机会比实时数据库更快地获得报告查询结果 这个想法很好,直到我找不到合适的方法来复制这两个数据库并使它们保持同步(比如最大5个MNT) 我尝试了一些日志传送拓扑,但效果不好 我已经尝试过在这两个数据库之间进行SQL复制,但它不能提供%100数据一致性,并且不能容忍出现错误,例如在表中添加或删除列时,或者在向报表数据库传递新表时等 P.P.S.我会考虑在同步中有一个PROD数据库的副本(除了报告数据库)(像日志传输只读二级)。因此,如果我能找到一个合适的拓扑结构,我准备为辅助复制数据库(1-prod、1-replica、1-reporting)创建另一个服务器(总共3个服务器) 你认为对我来说最好的办法是什么Sql server SQL到SQL数据复制,sql-server,replication,sql-server-2016,log-shipping,Sql Server,Replication,Sql Server 2016,Log Shipping,我在一台服务器上有一个300 GB MSSQL 2016生产数据库,我需要在另一台服务器上复制该数据库,以便进行报告 在生产数据库上,存在正常的聚集/非聚集索引,并且每天都会执行读写操作 在报告方面,我将使用相同的数据库表和列存储索引,因此我将有机会比实时数据库更快地获得报告查询结果 这个想法很好,直到我找不到合适的方法来复制这两个数据库并使它们保持同步(比如最大5个MNT) 我尝试了一些日志传送拓扑,但效果不好 我已经尝试过在这两个数据库之间进行SQL复制,但它不能提供%100数据一致性,并且
提前谢谢 如果希望复制DDL更改,则需要使用某种日志传送或镜像,这意味着您需要在只读副本上拥有相同的数据库(一直到页面级别)。您将不能有不同的索引定义 如果希望索引定义不同,则需要找到一种复制数据的方法——手动脚本可能是最好的选择,但要跟踪生产数据库中哪些记录是新的、更新的,尤其是删除的,这是很棘手的(添加rowversion列并确保所有表上的主键都有用)。还必须手动将DDL更改从生产数据库克隆到只读副本中;并更新数据复制脚本以匹配 我建议使用一种可用的镜像技术(log shipping,AG with a read-only mirror,等等),并保持数据库完全相同