我不是DBA;但是,我的小公司正在使用SQL Server来处理我们正在开发的项目。在同一个SQL Server实例上有一个MS Great Plains(Dynamics GP)数据库 - 因为我们在两个数据库之间来回传递数据(主要是一个获取数据并将其传输到GP的划线过程)。
我们正在使用数据库复制(快照)作为同步我们的生产和开发(以及很快DR)环境的方法。现在它将在核心工作时间内每三个小时复制一次 - 主要是为了在我们工作的同时保持生产和开发的最新状态。
1)这是做这种事的正确方法吗?有没有更好的办法? 2)这是否会对服务器或SQL Server造成压力?这是GP数据库问题的可能原因,因为它们位于同一服务器和实例上吗? 3)复制只发生在非GP数据库上 - 这不应该影响GP数据库吗?
我们的数据库应该保持相当小。在执行快照时,我理解在复制过程中表会被锁定。在整个复制完成之前,表是否保持锁定状态,或者在过程继续完成后是否将它们卸载?
答案 0 :(得分:3)
有许多方法可以将SQL Server与另一个SQL Server同步。您正在使用复制,日志传送,备份/恢复,镜像和Always On来命名一些方法。
“最佳”方法取决于您的要求。如果您担心灾难恢复,快照复制不是一个很好的选择,我会查看AlwaysOn可用性组。
如果生产系统上的负载是一个问题,我会考虑每晚恢复生产系统的备份。
回答您的具体问题:
1)这是做这种事的正确方法吗?有更好的方法吗?
这个答案取决于您的确切要求
2)这是否会对服务器或SQL Server造成压力?
做事总是比什么都不做更有意义。这取决于许多因素,这可能会影响您的生产服务器。
3)复制只发生在非GP数据库上 - 这不应该影响GP数据库吗?
您的服务器只有有限的硬件资源。它可能会影响对GP数据库的查询性能
答案 1 :(得分:3)
我们发现,在升级和架构更改方面,复制到位也会增加复杂性。如果你必须让dev和prod同步(我会争辩的话)Always On或者log shipping将是我的首选技术。
DR是一个单独的问题。您必须确定恢复点目标(RPO)和恢复时间目标(RTO)并采用适当的技术来满足您的要求。