跳至主要内容

什么是数据复制?

什么是数据复制?

数据复制是指将数据从一个位置复制到另一个位置,从而生成同一数据的多个同步副本的过程。这些副本可以位于不同的存储系统、数据库或地理位置中。组织采用数据复制是为了确保最终用户的数据可用性、支持灾难恢复工作以及满足合规性要求。数据复制策略多种多样,从实时同步复制到按计划进行的异步复制,具体选择取决于使用场景。

数据复制是如何工作的?

数据复制是指将数据复制并同步到多个位置(即副本服务器)的过程。尽管存在多种实现方式,但核心复制过程包含五个基本阶段:

源识别

数据复制过程始于确定需要复制的源系统或数据集。常见的复制对象包括数据库表、文件系统和虚拟机。源识别过程还包括确定哪些组件无需复制,这有助于降低带宽占用并节省存储成本。

变更检测

通过对数据来源进行监测以识别变更,从而确保副本能随每次变更进行更新。在数据库领域,这一阶段被称为变更数据捕获(CDC)。在此阶段,数据复制服务会识别源数据中哪些变更需要复制到副本服务器。

您可以通过多种方式进行配置:

  • 基于日志的检测:监控事务日志(例如数据库的预写式日志/WAL),以便在变更发生时实时捕获。这种方法在数据库场景中首选,因为它效率高且能以低延迟捕获变更。
  • 事件驱动型触发器:数据库或系统中的事件驱动触发器会在数据库更新时通知复制服务。当您无法使用基于日志的检测方法时,通常会采用这种方式。
  • 基于时间戳的检测:您的复制系统利用文件或记录的时间戳(例如数据库表中的“最后修改时间”列)来跟踪修改情况。

数据传输

一旦识别出变更,系统便会将相关数据从源端传输到目标系统。对于任务关键型数据,传输可采用同步方式;若追求更高性能且能容忍一定风险,则可采用异步批量传输方式。

复制系统通常会压缩数据以优化带宽利用率。此外,在数据从源端传输至副本服务器之前,系统还可以对其进行加密,以增强安全性。

目标更新

在目标端,复制系统将变更应用到副本上。例如,这可能涉及数据库记录的插入、更新或删除操作。也可能涉及在云存储中创建新的对象版本。

一致性验证

复制过程中可能会因网络问题、存储损坏或其他错误而出现数据不一致的情况。在此阶段,复制系统会验证副本上的更新数据是否与主数据来源一致。

通过网络逐字节比较数据通常效率低下,尤其是在许多组织所采用的数据复制规模下。因此,系统通常会针对特定的数据块生成并比较校验和或密码学哈希(例如 MD5 或 CRC32)。如果主服务器上的哈希与副本上的哈希匹配,系统即确认数据完全一致。如果系统检测到差异,它会精确定位不匹配数据的具体范围,并启动新的更新操作。

数据复制技术有哪些类型?

Amazon RDS 数据复制示意图

您可以采用多种方式进行数据复制,每种方式都适用于不同的使用场景。

同步复制

在同步复制中,相同的数据会同时写入源系统和所有副本系统。只有当所有副本系统都确认更新后,源系统才会认为写入操作已完成。组织使用同步复制来确保关键任务资源(如核心数据库系统)的数据完整性。不过,这种方式对网络延迟问题较为敏感,因为只有当最慢的副本返回确认信息时,写入操作才会完成。

异步复制

异步复制是指数据首先写入源系统,随后在某个时间点复制到副本服务器。源系统无需等待副本的确认即可继续执行后续操作。异步复制存在一定的延迟,对于关键任务系统而言,这种延迟可能无法接受。异步复制对网络延迟的容忍度较高,但分阶段复制过程中数据丢失的风险略有增加。它常用于跨区域数据迁移(用于备份)以及数据汇总(用于分析)。

半同步复制

半同步复制可在全同步复制和异步复制之间取得平衡。主服务器将数据复制到至少一个副本,并等待该副本确认接收,然后才确认写入操作成功,而无需等待所有副本确认。与异步复制相比,这种方法能更好地防止数据丢失;与全同步模式相比,它对延迟问题的敏感度要低得多。对于需要在可靠性和性能之间取得平衡的应用场景,这种方法非常实用。

基于快照的复制

快照复制会捕获数据定期的、单一时间点的副本,并将其传输到一个或多个副本实例。这种方法实现起来相对简单,适用于初始数据加载或静态工作负载。然而,由于快照之间的数据变化不会被捕获,因此它不适用于需要近乎实时恢复的场景。Amazon EBS 快照 等 AWS 服务使用这种方法备份卷,以实现灾难恢复。

Amazon RDS 快照复制示意图

基于日志的复制

基于日志的复制通过读取数据库日志,在事务层面跟踪数据变更。只有特定的变更(而非整个数据集)会以近乎实时的方式进行复制。与基于快照的复制相比,这种方法效率极高,且网络占用较少。这种方法广泛应用于企业数据库管理中,用于复制正在进行的事务。

常见的复制使用场景

以下是复制的一些常见使用场景:

数据库复制

在多个实例之间复制表、架构和事务。这种方法通常用于维持高可用性或实现读取扩展(例如 Amazon RDS 多可用区部署和只读副本)。

存储复制

这种方法复制整个卷或文件系统,以减轻区域性中断(可能导致重要服务离线)带来的影响。Amazon EBS 会执行此类复制。

应用程序数据复制

在多个环境之间复制用户数据和会话数据。这通常是为了通过增强容错能力来提高应用程序的可用性。

跨区域复制

跨 AWS 区域复制数据,以满足灾难恢复、延迟和合规性要求。

为什么数据复制很重要?

数据复制可确保重要数据在网络或系统故障期间依然可用。它还能通过将工作负载分散到多台服务器上来帮助防止瓶颈,从而提升系统性能和用户体验。此外,它还能帮助您将数据物理上更靠近全球用户,以降低延迟。

高可用性

跨地理位置分散的多个系统复制数据有助于确保全球用户始终能够访问数据,无论某个特定节点受到何种局部中断的影响。

灾难恢复

通过在不同地理位置分布数据副本,一旦某个区域发生故障,您可以更轻松地恢复服务。例如,如果火灾或洪水影响了某个数据中心,您的故障转移机制可以将用户请求重定向到下一个可用的副本。

性能优化

复制功能允许您将读取流量分散到多台服务器,而不是将所有请求都路由到单个数据库。例如,每个请求都可以发送到地理位置最近且负载最低的服务器。

数据位置

将数据保持在更靠近最终用户的位置可缩短访问延迟,从而提高应用程序的响应速度。例如,通过在关键市场附近的边缘站点或 AWS 区域部署副本,您可以提升游戏、金融交易或面向客户的 SaaS 平台等实时应用程序的性能。

合规性和治理

数据隐私法规可能要求将数据存储在特定的地理管辖区内,采用特定的安全配置,或保留特定的时长。您的组织可能需要遵守的法规包括欧盟的 GDPR 数据隐私法规和美国的 HIPAA 医疗保健数据法规。在相关管辖区内保留数据或应用程序的额外副本有助于更轻松地遵守此类法规。

数据复制有哪些关键考量因素?

部署兼顾成本、性能和安全性的数据复制策略需要周密的规划。组织若能考量多种因素,将有助于确定最适合其业务场景的方案。

设定恢复点目标(RPO)和恢复时间目标(RTO)有助于明确整体风险承受能力,进而确定可接受的成本范围。

恢复点目标 (RPO)

RPO 定义组织所能容忍的最大数据丢失量,通常以时间为单位进行衡量。如果 RPO 值较小(即仅允许秒级或分钟级的数据丢失),则可能需要采用同步复制或基于日志的复制方式。如果 RPO 值较大(即允许数小时级的数据丢失),则可以使用快照或异步复制方式。

恢复时间目标 (RTO)

RTO 定义了组织在发生服务中断后所能接受的最长停机时间。如果 RTO 值较小,则需要确保拥有可用性高且数据最新的副本,并建立完善的失效转移机制。

费用分析

复制操作会产生存储、数据传输和计算方面的成本。如果您要进行跨区域复制,还可能因将数据移出本地区域而产生数据流出费用。

带宽利用率

复制过程可能会占用大量网络资源,尤其是在跨区域传输数据或处理大规模数据集时。优化带宽的策略包括压缩数据、执行快照或增量更新,以及限制传输速度。您可以根据风险和成本因素来权衡这些策略。

数据一致性要求

风险承受能力和数据一致性要求也会影响您选择的复制方案。例如,关键业务数据库可能需要同步复制以确保高度的事务完整性,此时使用 Amazon Relational Database Service(Amazon RDS)等服务可能更为适宜。Web 分析平台可能需要高性能,但不一定要求同等程度的实时一致性,因此采用某种形式的异步复制可能更具成本效益。

AWS 如何满足您的数据复制需求?

AWS 提供多种解决方案,可满足您在数据库、存储和应用程序之间进行数据复制的需求:

立即创建免费账户,开始在 AWS 上使用数据复制功能。

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

正在加载
正在加载
正在加载
正在加载
正在加载

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages