我在一个实例中安装了sql服务器数据库(mainserver),在其他实例中安装了RerportServer的sql服务器数据库.将数据从mainServer复制到报表服务器的最佳方法是什么? mainServer中的数据经常更改,ReportSever中的实际信息非常重要.
有很多方法可以做到这一点:
>镜像
>运输日志
>事务复制
>合并复制
>快照复制
有关于此的一些最佳做法吗?
谢谢
解决方法
您的案例需要事务复制.这就是为什么你不需要其他4个案例:
镜像
>这通常用于提高数据库服务器的可用性,并在发生灾难时提供自动故障转移.
>通常,即使您拥有多个数据库副本(建议位于不同的服务器实例上),但一次只有一个是活动的,称为主服务器.
>此服务器实例上的每个操作都会在其他操作上连续(尽快)镜像,因此这不适合您的用例.
记录运输
>在这种情况下,除了生产数据库服务器之外,您还有额外的故障转移服务器,以便生产服务器的数据库,差异和数据库的备份.事务日志会自动发送(复制)到故障转移并恢复.
>此处的复制相对安排在比其他机制更长的时间间隔,通常从一小时到几小时不等.
>这还可以在生产站点发生灾难时手动准备好故障服务器.
>这也不适合您的使用案例.
合并复制
>此与其他实体之间的主要区别在于,复制的数据库实例可以与不同的客户端应用程序进行通信,而与彼此进行的更改无关.
>例如,北美的数据库服务器由美洲和美国的客户更新.欧洲和澳大利亚的另一个由亚太地区的客户更新,然后这些变化相互融合.
>同样,它不适合您的用例.
快照复制
>发布数据库的整个快照以复制到辅助数据库(不同于要复制的日志文件.)
>然而,最初,对于每种类型的复制,生成快照以初始化订阅数据库,即仅一次.
为什么要使用事务复制?
>您可以选择要连续复制的对象(表,视图等),因此如果只有一部分表用于报告,则可以节省大量带宽.这在镜像和日志传送中是不可能的.>您可以将流量从应用程序重定向到报告服务器以获取所有读取和报告(您也可以在其他人中执行此操作,顺便说一下).>您可以使用独立的批处理作业生成报告服务器上运行的一些更常用的报告,如果主服务器具有非常频繁的插入,更新或删除,则会减少主服务器上的负载.