📜  DBMS 中的数据复制(1)

📅  最后修改于: 2023-12-03 15:00:22.059000             🧑  作者: Mango

DBMS 中的数据复制

简介

在 DBMS 中,数据复制是指在不同的数据库实例之间同步数据。通常情况下,数据复制是指将主服务器上的数据复制到备份服务器或者集群中的其他服务器上。这样做的目的是提高系统的可用性和可扩展性。

复制方式
主从复制

主从复制是最常见的数据复制方式,也是最基本的数据复制方式。主从复制指的是数据库管理员将主服务器上的操作日志(binlog)传输到备份服务器或集群中的其他服务器(从服务器)上。这个过程中,主服务器上的所有操作都会被记录在操作日志中,并且会被从服务器上的数据库实例执行。

主从复制的优点是简单易用,可靠性高。在主服务器上的数据发生变化时,从服务器可以非常快速地同步这些变化。不足之处是主从复制的读写性能受限于主服务器,从服务器只能读取数据。

主从链式复制

主从链式复制是主从复制的进化版。和主从复制不同的是,主从链式复制中的从服务器可以成为其他从服务器的主服务器,并且可以将操作日志传输给其他从服务器。这样,任何一个服务器都可以是主服务器和从服务器。

主从链式复制的优点是具有更好的可扩展性和可用性。不足之处是链式复制的性能可能受到中间层服务器的影响。

全局性复制

全局性复制是一种高级的数据复制方式。在全局性复制中,任何一个节点都可以处理读写操作,并且会将操作同步到其他节点。这种方式比主从复制和主从链式复制更加灵活,但是也更加复杂。

数据同步方式
基于行的复制

基于行的复制是指在主服务器上,每当有行级别的数据改变时,都会记录到 binlog 中。在从服务器上,操作日志中的行级别信息会被解析,然后和从服务器的数据进行比较,不同的部分会被同步过去。

基于行的复制的优点是可以减少网络传输的数据量,精细控制数据同步。不足之处是记录 binlog 会对主服务器的性能产生影响。

基于语句的复制

基于语句的复制是指在主服务器上,对于每一个执行的活动(SQL 语句),都会记录到 binlog 中。在从服务器上,操作日志的语句会被解析后在从服务器上执行。

基于语句的复制的优点是可以减少网络传输的数据量。不足之处是可能存在一些不同的字符集,在语句复制时会存在问题,而且涉及到由于策略改变而不同的查询执行。

混合复制

混合复制是指同时使用基于行和基于语句的复制方式。在混合复制中,会优先使用基于行复制,当主服务器的语句结构无法满足条件时(例如使用了非确定性函数),则会使用基于语句复制。

混合复制的优点是可以在大多数情况下获得基于行的优势,同时在特殊情况下使用基于语句的复制。不足之处是更加复杂,可能会导致数据同步产生问题。

总结

数据复制是 DBMS 中非常重要的一项功能,可以提供更好的可扩展性和可用性。不同的数据复制方式和数据同步方式都有其优缺点,需要根据具体情况进行选择。