我是 sql server 的新手。我有一个 sql server,我有第二个 sql server(备份服务器)。我想将数据从 sql server 复制到第二个,我的所有事务创建更新删除必须立即真实反映在第二个服务器中时间。我的表中有非常大的数据,假设有数百万行。我怎样才能实现这一点。我没有使用第三方工具的优势。
3 回答
您可以尝试从这两个参考中获得一些帮助:
附带说明一下,在进行复制之前您需要计划的重要事情是您将用于复制的复制模型。
有一个您可以使用的复制模型列表:-
- 对等模型
- 中央发布者模型
- 具有远程分发者模型的中央发布者
- 中央订户模型
- 发布订阅者模型
以上每一项都有其自身的优势。根据您的需要检查它们。
此外,还有三种复制类型:-
您指定需要数据立即实时反映在第二台服务器上。
此要求将增加主服务器上发生的每个事务的延迟,因为每个操作都需要先在辅助服务器上提交,然后才能在主服务器上提交。
除了延迟之外,此要求还可能会降低您的可用性。如果辅助服务器不再能够从主服务器成功提交事务,那么主服务器也不能再提交事务,并且您的系统已关闭。
有关这些约束的更多信息,请参阅围绕该主题的广泛讨论(CAP 定理)。
如果您可以接受这些限制,则可以考虑使用同步数据库镜像(高安全模式)。
如果您对这些限制不满意,请调整/澄清您的要求。
查看有关 SQL Server 2008 复制的本教程:
既然您说“...立即实时反映在第二台服务器中”,这意味着您要使用事务复制。您仍然可以只选择复制某些表。
“数百万行”是否代表某种历史?如果是这样,请考虑迈克尔提到的风险......以及您是否需要第二台服务器中的所有历史记录,或者只是当前/最近的活动。如果它只是当前的/最近的,那么在 T-SQL 或 SSIS 中编写一些内容可能更安全且系统消耗更少,以便执行循环、读取和复制数据的作业。
这可以通过链接服务器和触发器来完成......但是迈克尔提到的关于防止主服务器提交事务的风险与触发器一样多或更多是一个问题......您可以使用自己的 T-SQL/ SSIS +工作。
希望有帮助...