# 前言在逻辑复制过程中,如果在复制过程中出现任何冲突,如主键冲突,逻辑复制都会停止。这时候需要我们手动去解决。# 问题分析修复冲入的方法共有两种:1. 在订阅端手动找到冲突的数据并删除,然后重新让订阅继续... 在订阅端的错误日志中,会有如下报错:````undefinedERROR,23505,duplicate key value violates unique constraint "pgbench_tellers_pkey",Key (tid)=(12) already exists.,,,,,,,_bt_check_unique, nbtinsert.c:...
# **问题现象**数据量在没有发生变化的情况下,发现存储空间不断增长,我们该如何解决此类问题。# **根因描述**Replication Slot 是 PostgreSQL 数据库中的一种机制,replication Slot 用于提高数据复制的效率和可靠性,避免 WAL 日志丢失或重复消费。在常见的场景中,如果 PostgreSQL 中有处于非 active 的 slot,会导致WAL日志不断堆积,占用大量存储空间,甚至可能写满磁盘导致业务受损。如果有其他的下游消费组件,未能及时提交 ...
# 前言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 实例在使用上的限制。 约束项 使用约束 实例参数 可以使用控制台或 API 修改实例参数,出于安全和稳定性考虑,当前仅支持修改部分参数。 账号权限 不提供 SuperUser 权限。 数据库备份 仅支持通过控制台或 API 进行物理备份。 数据库恢复 仅支持通过控制台或 API 进行物理恢复。 数据库复制 PostgreSQL 提供主备复制架构,其中的备节点不对用户开放,用户应用不能直接访问。 实例重启 必须通过控制台或 API ...
由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数据库迁移PostgreSQL 提供了原生的迁移工具 pg_dump,适用于数据量小的一次性迁移,最大的缺点就是业务停机时... 反观逻辑复制,可以实现实时的增量迁移,业务上停机时间更短。## 场景三:数据库升级在数据库版本升级升级过程中,除了就地升级和逻辑的导入导出,由于逻辑复制可以跨大版本的特性,也可以作为数据库版本升级的方案。...
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(如火山引擎版 PostgreSQL 或自建 PostgreSQL)时,支持的数据库以及使用限制详情。 支持的数据库 源库 目标库 支持版本 迁移类型 火山引擎版 PostgreSQL 火山引... 以便于创建逻辑复制槽。 目标库账号需要具有创建 schema 权限,如果目标库 schema 已存在,则迁移账号需要具备目标 schema 的 owner 权限。 源库的操作限制如下: 在库表结构迁移和全量迁移阶段,请勿执行库或表结构...
# 问题描述我的 RDS for PostgreSQL 占用的存储空间不符合预期,我该如何排查此类问题?# 问题分析RDS for PostgreSQL 消耗的存储空间主要包含如下方面:1. 数据文件2. WAL 日志3. 未消耗的 replication slot... 我们可以执行与以下查询以确认复制槽存在及其大小:````undefinedpostgres=# select slot_name, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(),restart_lsn)) as replicationSlotLag, active from pg_re...
本文介绍如何在数据库传输服务 DTS 控制台创建公网自建 PostgreSQL 同步至公网自建 PostgreSQL 任务。 前提条件已注册火山引擎账号并完成实名认证。关于账号的创建方法和实名认证,请参见如何进行账号注册和实名认证... 数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失...
# 问题描述我的 RDS for PostgreSQL 占用的存储空间不符合预期,我该如何排查此类问题?# 问题分析RDS for PostgreSQL 消耗的存储空间主要包含如下方面:1. 数据文件2. WAL 日志3. 未消耗的 replication slot... 我们可以执行与以下查询以确认复制槽存在及其大小:```Plain Textpostgres=# select slot_name, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(),restart_lsn)) as replicationSlotLag, active from pg_re...
本文介绍如何在数据库传输服务 DTS 创建火山引擎 ECS 自建 PostgreSQL 同步至火山引擎专有网络 PostgreSQL 任务。 前提条件已注册火山引擎账号并完成实名认证。详细操作,请参见如何进行账号注册和实名认证。 按需... 数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失...
# 问题描述在使用 CREATE DATABASE 语句时,报错 "ERROR: source database "template1" is being accessed by other users"# 问题分析根据官网描述可以知道,这是 PostgreSQL 的预期行为,当从 template1 复制数据的时候,如果存在连接的话,就会失败报错> The principal limitation is that no other sessions can be connected to the source database while it is being copied. CREATE DATABASE will fail if any other conne...