

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 事务复制
<a name="trans-rep"></a>

事务复制是一种 SQL Server 技术，用于在两个数据库之间复制更改。这些更改可能包括数据库对象，例如表（需要主键）、存储过程、视图等，以及数据。复制过程涉及*发布者*（发布数据的主体数据库）、*订阅者*（接收复制数据的辅助数据库）和*分发服务器*（存储用于事务复制的元数据和事务的服务器）。您可以对亚马逊 EC2 上的 SQL Server 使用事务复制，对于 SQL Server 数据库实例使用亚马逊 RDS。

事务复制会在您的本地（发布）数据库中创建对象和数据的快照，并将其发送到订阅者数据库。将快照应用于订阅者后，发布者所做的所有后续数据更改和架构修改都会在发生时发送给订阅者。然后，数据更改将按照发布者发生的相同顺序持续应用于订阅者。

同步完成后，您可以对目标 SQL Server 数据库实例进行验证。当两个数据库同步时，您可以停止本地数据库上的活动，确保复制已完成，然后直接割接到目标 SQL Server 数据库实例。您之后可以停止推送订阅，将其删除，然后开始使用 Amazon RDS for SQL Server。

订阅者数据库也可以用作只读数据库。建议将记录同步作业的分发服务器放在单独的服务器上。如果您的目标数据库位于 Amazon RDS for SQL Server 上，则可以设置推送订阅以将更改传递给订阅者。

我们建议您在以下情况下使用事务复制：
+ 将您的数据一次性迁移到 Amazon RDS 或亚马逊 EC2。
+ 将架构级或表级对象迁移到。 AWS
+ 将数据库的一部分迁移到 AWS。
+ 通过添加更多订阅者，使用现有 SQL Server 复制策略，在最短停机时间内进行迁移。

如果您计划使用事务复制将数据一次性迁移到 Amazon RDS for SQL Server，我们建议您为复制设置单可用区配置。复制过程完成后，您可以将环境转换为多可用区架构以实现高可用性。

下图显示了 Amazon RDS 和 Amazon 上数据库的事务复制过程。 EC2

 ![\[SQL Server migration process with transactional replication\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-sql-server/images/sql-migration-transactional-replication.png) 

有关事务复制的更多信息，请参阅[微软 SQL Server 文档](https://docs.microsoft.com/en-us/sql/relational-databases/replication/transactional/transactional-replication)和 AWS 数据库博客上的 “[如何使用事务复制迁移到 Amazon RDS for SQL Server](https://aws.amazon.com/blogs/database/how-to-migrate-to-amazon-rds-for-sql-server-using-transactional-replication/)” 一文。