# 前言PostgreSQL 在 9.0 之前并未支持流式复制,备库总是落后主库一个 WAL log,在 9.0 之后 PostgreSQL 提供了流式复制,备库不断从主库同步相应的数据,并应用每个 WAL record。在 PostgreSQL 9.4 开始,PostgreSQL 提供了逻辑流复制功能,至此,PostgreSQL 拥有了更加完备的数据同步方式,解决了物理流复制无法覆盖的一些场景。本章内容将介绍物理复制与逻辑复制的一些差别。## 参数配置差异我们知道在 PostgreSQL 中如果想要实...
# 前言在配置好逻辑复制之后,我们需要了解逻辑复制相关信息,如复制延迟,replication slot 相关位点信息。PostgreSQL 为我们提供了丰富的表/视图,方便我们进行监控。## 检查逻辑复制的基本配置信息在订阅端查看基本配置信息:从下述信息来看,subname 为订阅者名称,subconninfo 为发布者相关的连接信息。````undefinedrudonx=# select * from pg_subscription;-[ RECORD 1 ]---+--------------------------------------------...
本章内容主要聚焦于逻辑复制的使用场景,当了解了适用场景后,会使得业务架构更加灵活。## 场景一:数据汇总与拆分当多个独立的业务库需要将数据汇总到数据仓库,以便于进行后续分析的场景,逻辑复制是非常适合的。一是不需要额外的组件来支撑,二是可以做到实时同步。对于数据拆分的场景,由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数据库迁移PostgreSQL 提供了原生的迁移...
# 前言在逻辑复制过程中,如果在复制过程中出现任何冲突,如主键冲突,逻辑复制都会停止。这时候需要我们手动去解决。# 问题分析修复冲入的方法共有两种:1. 在订阅端手动找到冲突的数据并删除,然后重新让订阅继续... [https://www.postgresql.org/docs/current/logical-replication-conflicts.html](https://www.postgresql.org/docs/current/logical-replication-conflicts.html)**如果您有其他问题,欢迎您联系火山引擎**[技术...
本文介绍使用 PostgreSQL 实例在使用上的限制。 约束项 使用约束 实例参数 可以使用控制台或 API 修改实例参数,出于安全和稳定性考虑,当前仅支持修改部分参数。 账号权限 不提供 SuperUser 权限。 数据库备份 仅支持通过控制台或 API 进行物理备份。 数据库恢复 仅支持通过控制台或 API 进行物理恢复。 数据库复制 PostgreSQL 提供主备复制架构,其中的备节点不对用户开放,用户应用不能直接访问。 实例重启 必须通过控制台或 API ...
我们讲述了如何排查数据占用大小,本节内容会提到下面的几种可能性。# 解决方案### WAL 日志和其他数据库类似,PostgreSQL 也采用了日志先行的方法,即在持久化数据文件前,保证之前的事务日志已经写到磁盘,以此来保证事务的持久性。下列情况可能会导致事务日志磁盘使用量增加:1. 高数据库负荷(数据库有频繁的写入操作)2. 只读副本为存储已满状态(在主实例上保留事务日志)3. 复制槽这是需要检查是否由于高负载导致 WAL 日志...
我们讲述了如何排查数据占用大小,本节内容会提到下面的几种可能性。# 解决方案### WAL 日志和其他数据库类似,PostgreSQL 也采用了日志先行的方法,即在持久化数据文件前,保证之前的事务日志已经写到磁盘,以此来保证事务的持久性。下列情况可能会导致事务日志磁盘使用量增加:1. 高数据库负荷(数据库有频繁的写入操作)2. 只读副本为存储已满状态(在主实例上保留事务日志)3. 复制槽这是需要检查是否由于高负载导致 WAL 日志...
本文介绍当迁移的目标库类型为 PostgreSQL(如火山引擎版 PostgreSQL 或自建 PostgreSQL)时,支持的数据库以及使用限制详情。 支持的数据库 源库 目标库 支持版本 迁移类型 火山引擎版 PostgreSQL 火山引... 以便于创建逻辑复制槽。 目标库账号需要具有创建 schema 权限,如果目标库 schema 已存在,则迁移账号需要具备目标 schema 的 owner 权限。 源库的操作限制如下: 在库表结构迁移和全量迁移阶段,请勿执行库或表结构...
PostgreSQL是一个功能非常强大、开源的对象关系型数据库管理系统,本文介绍如何在Linux实例上搭建并使用PostgreSQL。 PostgreSQL可靠性高,支持NoSQL数据类型(JSON/XML/hstore)、GIS地理信息处理,适用于位置应用系统... 初始化PostgreSQL。/usr/pgsql-11/bin/postgresql-11-setup initdb 执行以下命令,启动PostgreSQL服务。systemctl start postgresql-11 执行以下命令,设置PostgreSQL服务开机自启动。systemctl enable postgresql...
# 前言PostgreSQL 中的逻辑流复制与消息队列中的发布者/订阅者模型非常相似,在发布者端将 WAL 日志流解析成一定格式的数据流,订阅者节点收到后进行应用,以此来达到数据同步的目的。本章内容将介绍如何使用逻辑流复制进行数据同步,可用于数据迁移等场景。# 先决条件在源库需要预先配置项如下:1. wal_level = logical2. max_replication_slots: 每个订阅需要消耗一个 slot。建议根据情况来进行设置。3. max_wal_senders,每...
PostgreSQL 是一种常用的关系型数据库,数据集成同步任务为您提供读取和写入 PostgreSQL 数据源的双向通道能力。本文为您介绍 DataSail 的 PostgreSQL 数据源配置、同步任务可视化和脚本模式(DSL)配置能力,实现与不... 支持列裁剪:列可以挑选部分列进行导出。 支持列换序:列可以不按照表 Schema 信息顺序进行导出。 column 必须显示指定同步的列集合,不允许为空。 支持函数、常量形式添加列:函数:PostgreSQL Reader 支持您输入 now...
本文介绍如何在数据库传输服务 DTS 控制台创建火山引擎专有网络 PostgreSQL 同步至公网自建 PostgreSQL 任务。 前提条件已注册火山引擎账号并完成实名认证。详细操作,请参见如何进行账号注册和实名认证。 按需设置... 数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失...
本文介绍如何在数据库传输服务 DTS 创建火山引擎 ECS 自建 PostgreSQL 同步至火山引擎专有网络 PostgreSQL 任务。 前提条件已注册火山引擎账号并完成实名认证。详细操作,请参见如何进行账号注册和实名认证。 按需... 数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失...