数据库复制,即:将数据复制到其他服务器上,并将其存储在多个节点上。在此过程中,数据库实例从一个节点转移到另一节点,并进行了精确的复制。数据复制用于提高数据可用性,这是 HA 的一项关键功能。通常有一个完整的数据库实例,或者一些经常使用或所需的对象被复制到另一台服务器。复制提供了数据库的多个一致副本,它不仅提供了高可用性,而且还提高了查询性能。
将数据写入磁盘时,有两种策略:“同步” 和 “异步”。
-
同步复制:意味着同时将数据写入主服务器和从服务器,换句话说,“同步复制” 意味着提交等待远程端的写入/刷新。同步复制用于具有即时故障转移要求的高端事务环境中。
-
异步复制:异步意味着首先将数据写入主机,然后再复制到从机。在崩溃的情况下,可能会发生数据丢失,但是异步复制提供的开销很小,因此在大多数情况下是可以接受的。它不会使主机负担过重。与同步复制相比,从主数据库到从数据库的故障转移需要更长的时间。
简而言之,同步和异步之间的主要区别在于何时将数据写入主服务器和从服务器。
-
单主复制:单主复制意味着仅允许在单个节点上修改数据,并将这些修改复制到一个或多个节点。只能在主节点上进行数据更新和插入。在这种情况下,应用程序需要将流量路由到主服务器,这会增加应用程序的复杂性。因为只有一个主节点负责写入数据,所以没有冲突的机会。在大多数情况下,单主复制对于应用程序来说就足够了,因为配置和管理起来并不那么复杂。
-
多主复制:多主复制意味着有多个节点充当主节点。数据在节点之间复制,并且可以在一组主节点上进行更新和插入。在这种情况下,数据有多个副本。该系统还负责解决并发更改之间发生的任何冲突。有多个主复制有两个主要原因。一个是高可用性,第二个是性能。在大多数情况下,某些节点专用于密集写入操作,而某些节点专用于某些节点或用于故障转移。
优点:
- 万一一个主机发生故障,另一个主机仍然能提供更新和插入服务。
- 主节点位于几个不同的位置,因此所有主节点发生故障的机会非常小。
- 可以在多台服务器上进行数据更新。
- 应用程序不需要将流量仅路由到单个主机。
缺点:
- 多主复制的主要缺点是它的复杂性。
- 解决冲突非常困难,因为可以同时在多个节点上进行写操作。
- 有时在发生冲突的情况下需要人工干预。
- 数据不一致的可能性。