sql-server - 事务复制有什么用?

标签 sql-server sql-server-2008

什么是事务复制?我似乎按照本教程创建了事务复制:

http://www.sql-server-performance.com/2010/transactional-replication-2008-r2/

而且我知道当我更改某些对象(即任何 DML 或 DDL 语句)时,这些更改将反射(reflect)到我进行复制的其他服务器。但我不清楚为什么我们应该使用事务复制。当主实例失败时,SQL Server 是否会自动启动使用完成复制的第二台服务器?或者我们是否必须在第一个实例失败的情况下从完成复制的服务器手动恢复数据库?

提前致谢:)

最佳答案

您可以使用事务复制来维护热备用 SQL 服务器。事务复制将一台服务器(发布者)上的数据复制到另一台服务器(订阅者),其延迟比日志传送更短。

您可以在数据库对象级别(例如表级别)实现事务复制。因此,Microsoft 建议您在需要保护的数据较少时使用事务复制,并且必须有快速的数据恢复计划。

此解决方案很容易受到发布者和订阅者同时失败的影响。在这种情况下,您无法保护您的数据。在所有其他情况下,例如分发者或订阅者发生故障,最好将订阅者中的数据与发布者中的数据重新同步。

仅当您未实现架构更改或未对数据库实现其他更改(例如复制不支持的安全更改)时,才应使用事务复制来维护热备用 SQL Server。

注意复制并不是为维护热备用服务器而设计的。通过复制,您可以在订阅者处使用复制的数据来生成报告。您还可以将复制用于其他一般用途,而无需在相对繁忙的发布商上执行处理。

缺点

  1. 在以下位置执行的架构更改或安全更改 建立复制后的发布者将不可用 订户。事务复制中的分发器使用 开放数据库连接 (ODBC) 连接或 OLE 数据库 (OLEDB) 连接来分发数据。然而,日志传送使用 RESTORE TRANSACTION 低级 Transact-SQL 语句 分发事务日志。 RESTORE TRANSACTION 语句是 比 ODBC 连接或 OLEDB 连接快得多。

  2. 通常,切换服务器会删除复制配置。 因此,您必须配置复制两次:
    A。当您切换到订阅者时。
    b.当您切换回发布商时。

  3. 如果发生灾难,您必须通过以下方式手动切换服务器: 将所有应用程序重定向到订阅者。

在此处了解更多信息 http://sqlserverdatarecovery.com/transactional_replication.html

关于sql-server - 事务复制有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10086433/

相关文章:

sql-server - SQL Server 全文搜索前导通配符

sql-server - 使用带有子命名空间的 SQL Server 生成 xml

sql-server - 在 SQL Server 中处理带空格的列名

c# - 如何在数据库表中查找连接的组合框中所选项目的索引

sql-server - Service Broker : Sys. Conversation_endpoints 在使用 With Cleanup 时填充 CO/CONVERSING 消息

sql-server - 使用 CASE 更新表,收到奇怪的错误

sql - SQL SERVER 如何创建临时表?

sql-server - sql中NULL的数学运算

SQL Server Like 查询不区分大小写

sql - 查找一个月内的不同记录