|
Post by account_disabled on Dec 2, 2023 23:01:13 GMT -5
个简单的逻辑 操作initdb 即可执行为集群创建基目录的物理操作。类似地,一个简单的逻辑 操作将执行在基目录中创建子目录的物理CREATE DATABASE 操作。 物理复制通常涉及文件和目录。它不知道这些文件和目录代表什么。这些方法用于维护单个集群中所有数据的完整副本(通常在另一台机器上),并在文件系统或磁盘级别运行并使用精确的块地址。逻辑复制是一种基于数据实体的复制标识(通常是主键)来重现数据实体及其更改的方法。与物理复制不同,它处理数据库、表和 DML 操作,并发生在数据库集群级别。它使用发布和订阅模型,其中一个或多个订阅者订阅发布者节点上的一个或多个发布。 复制过程首先拍摄发布者数据库上的数据快照,然后将其复制到订阅者。 订阅者从他们订阅的发布中提取数据,并可以稍后重新发布数据以启用级联 电话号码清单 复制或更复杂的配置。订阅者以与发布者相同的顺序应用数据,以确保单个订阅内发布的事务一致性,也称为事务复制。 逻辑复制的典型用例是: 将单个数据库(或数据库的子集)中发生的增量更改发送给订阅者。 跨多个数据库共享数据库的子集。 允许在到达订阅者时启动单独的更改。 将多个数据库合并为一个。 向不同的用户组提供对复制数据的访问。 订阅者数据库的行为与任何其他 PostgreSQL 实例类似,并且可以通过定义自己的发布来用作其他数据库的发布者。 如果应用程序将订阅者视为只读,则单个订阅不会产生冲突。另一方面,如果应用程序或其他订阅者对同一组表进行其他写入,则可能会出现冲突。 PostgreSQL 同时支持这两种机制。 逻辑复制允许对数据复制和安全性进行细粒度控制。 复制模式 PostgreSQL的复制模式主要有两种:同步和异步。同步复制允许数据同时写入主备服务器,而异步复制则确保数据先写入主机,然后复制到备服务器。 在同步模式复制中,仅当更改已复制到所有副本时,主数据库上的事务才被视为完成。副本服务器必须始终可用,以便主服务器上的事务能够完成。同步复制模式用于具有即时故障转移要求的高级事务环境。 在异步模式下,当仅在主服务器上进行更改时,可以声明主服务器上的事务已完成。这些更改稍后会复制到副本。复制服务器可能会在一段时间内保持不同步,称为复制滞后。如果发生崩溃,可能会发生数据丢失,但异步复制提供的开销很小,因此在大多数情况下是可以接受的(不会使主机过载)。从主数据库到辅助数据库的故障转移比同步复制需要更长的时间。 如何设置 PostgreSQL 复制 在本节中,我们将向您展示如何在 Linux 。
|
|