数据库实例复制

最后更新时间:2021-05-24 11:41:32

    数据库实例复制是指通过为服务器配置一个或多个备份数据库的方式来进行数据同步,将 MySQL 的数据分布到多个系统上去。云数据库 MySQL 支持三种数据复制方式:

    说明:

    • Master 是指主数据库实例,Slave 是指备份数据库实例。
    • MySQL 5.6、5.7、8.0 版本支持三种复制方式:异步、半同步、强同步;5.5 版本支持异步方式。

    异步复制

    应用发起数据更新(含 insert、update、delete 操作)请求,Master 在执行完更新操作后立即向应用程序返回响应,然后 Master 再向 Slave 复制数据。

    数据更新过程中 Master 不需要等待 Slave 的响应,因此异步复制的数据库实例通常具有较高的性能,且 Slave 不可用并不影响 Master 对外提供服务。但因数据并非实时同步到 Slave,而 Master 在 Slave 有延迟的情况下发生故障则有较小概率会引起数据不一致。
    腾讯云数据库 MySQL 异步复制采用一主一备的架构。

    半同步复制

    应用发起数据更新(含 insert、update、delete 操作)请求,Master 在执行完更新操作后立即向 Slave 复制数据,Slave 接收到数据并写到 relay log 中(无需执行) 后才向 Master 返回成功信息,Master 必须在接受到 Slave 的成功信息后再向应用程序返回响应。

    仅在数据复制发生异常(Slave 节点不可用或者数据复制所用网络发生异常)的情况下,Master 会暂停(MySQL 默认10秒左右)对应用的响应,将复制方式降为异步复制。当数据复制恢复正常,将恢复为半同步复制。
    腾讯云数据库 MySQL 半同步复制采用一主一备的架构。

    强同步复制

    应用发起数据更新(含 insert、update、delete 操作)请求,Master 在执行完更新操作后立即向 Slave 复制数据,Slave 接收到数据并写到 relay log 中(无需执行) 后才向 Master 返回成功信息,Master 必须在接受到 Slave 的成功信息后再向应用程序返回响应。

    在数据复制发生异常(Slave 节点不可用或者数据复制所用网络发生异常)的情况下,复制方式均不会发生降级,为保障数据一致性,此时 Master 会暂停对应用的响应,直至异常结束。

    腾讯云数据库 MySQL 强同步复制采用一主两备的架构,仅需其中一台 Slave 成功执行即可返回,避免了单台 Slave 不可用影响 Master 上操作的问题,提高了强同步复制集群的可用性。