# 前言在逻辑复制过程中,如果在复制过程中出现任何冲突,如主键冲突,逻辑复制都会停止。这时候需要我们手动去解决。# 问题分析修复冲入的方法共有两种:1. 在订阅端手动找到冲突的数据并删除,然后重新让订阅继续... 在订阅端的错误日志中,会有如下报错:````undefinedERROR,23505,duplicate key value violates unique constraint "pgbench_tellers_pkey",Key (tid)=(12) already exists.,,,,,,,_bt_check_unique, nbtinsert.c:...
# 前言PostgreSQL 在 9.0 之前并未支持流式复制,备库总是落后主库一个 WAL log,在 9.0 之后 PostgreSQL 提供了流式复制,备库不断从主库同步相应的数据,并应用每个 WAL record。在 PostgreSQL 9.4 开始,PostgreSQ... 而且逻辑复制中,备库可读可写。## apply WAL 日志差异在物理复制中,不论是已经提交的事务还是回滚的事务,在备库上都需要全量进行应用。而在逻辑复制中,订阅端仅仅需要应用订阅表所产生的 WAL 日志解析后的数据即...
以避免阻塞其他会话在目标索引表上的 DML 操作。* 对于重建索引操作,在 PostgreSQL 12 及以上大版本,推荐使用 REINDEX CONCURRENTLY。PostgreSQL 11 及下大版本,使用 CONCURRENTLY 创建新索引成功后,再删除老索引... 在事务中运行 DDL 语句,建议将 DDL 封装在事务中执行,必要时可以回滚。需要提前明确 DDL 的影响,避免长时间的 rewrite table 影响 DML 操作。* 频繁创建或删除临时表可能增加系统资源消耗。谨慎使用 ON COMMIT DR...
由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数据库迁移PostgreSQL 提供了原生的迁移工具 pg_dump,适用于数据量小的一次性迁移,最大的缺点就是业务停机时... 反观逻辑复制,可以实现实时的增量迁移,业务上停机时间更短。## 场景三:数据库升级在数据库版本升级升级过程中,除了就地升级和逻辑的导入导出,由于逻辑复制可以跨大版本的特性,也可以作为数据库版本升级的方案。...
# 问题描述在使用 CREATE DATABASE 语句时,报错 "ERROR: source database "template1" is being accessed by other users"# 问题分析根据官网描述可以知道,这是 PostgreSQL 的预期行为,当从 template1 复制数据... 分别执行不同的命令复现报错问题会话1:连接到 template1 模板数据库中```sqlpostgres=# \c template1;You are now connected to database "template1" as user "postgres".```会话2:执行 CREATE DATABASE 语...
本文介绍当迁移的目标库类型为 PostgreSQL(如火山引擎版 PostgreSQL 或自建 PostgreSQL)时,支持的数据库以及使用限制详情。 支持的数据库 源库 目标库 支持版本 迁移类型 火山引擎版 PostgreSQL 火山引... 以便于创建逻辑复制槽。 目标库账号需要具有创建 schema 权限,如果目标库 schema 已存在,则迁移账号需要具备目标 schema 的 owner 权限。 源库的操作限制如下: 在库表结构迁移和全量迁移阶段,请勿执行库或表结构...
数据库传输服务 DTS 创建或配置 PostgreSQL 的迁移或同步任务时,会先对数据库进行各项检查。本文介绍检查项的详细信息。 检查项 数据库类型 检查范围 级别 检查内容 备注 数据库连通性检查 源库 目标库 所有迁移 所有同步 数据订阅 Error 检查数据传输服务器是否能连通源库和目标库。 无 库表唯一性约束检查 源库 所有迁移 所有同步 Warning 检查源库中待迁移或同步表是否已设置主键或唯一键来保证唯一性。 无 复制槽...
因此写入速度相较于普通表要快。2. 如果有 hot standby,备库中只有表结构而没有数据。3. 当数据库 crash 后,如运行 kill -9 postgresql_pid,数据库重启时自动清空unlogged table的数据。4. 如果正常关闭数据库,如(pg_ctl stop -D /home/pgsql11.5/data/ -m fast),再启动时,unlogged table 中是有数据的。同时,unlogged table 与临时表是有区别的,临时表会在事务/session 结束时进行删除,而 unlogged table 是不会的。# ...
因此写入速度相较于普通表要快。2. 如果有 hot standby,备库中只有表结构而没有数据。3. 当数据库 crash 后,如运行 kill -9 postgresql_pid,数据库重启时自动清空unlogged table的数据。4. 如果正常关闭数据库,如(pg_ctl stop -D /home/pgsql11.5/data/ -m fast),再启动时,unlogged table 中是有数据的。同时,unlogged table 与临时表是有区别的,临时表会在事务/session 结束时进行删除,而 unlogged table 是不会的。# unl...
本文介绍如何在数据库传输服务 DTS 控制台创建公网自建 PostgreSQL 同步至火山引擎版 PostgreSQL 任务。 前提条件已注册火山引擎账号并完成实名认证。关于账号的创建方法和实名认证,请参见如何进行账号注册和实名认... 需将命令中的 schema 和 table 替换成真实的 schema 名和表名。 增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史...
本文介绍使用 PostgreSQL 实例在使用上的限制。 约束项 使用约束 实例参数 可以使用控制台或 API 修改实例参数,出于安全和稳定性考虑,当前仅支持修改部分参数。 账号权限 不提供 SuperUser 权限。 数据库备份 仅支持通过控制台或 API 进行物理备份。 数据库恢复 仅支持通过控制台或 API 进行物理恢复。 数据库复制 PostgreSQL 提供主备复制架构,其中的备节点不对用户开放,用户应用不能直接访问。 实例重启 必须通过控制台或 API ...
本文介绍如何在数据库传输服务 DTS 控制台创建公网自建 PostgreSQL 同步至公网自建 PostgreSQL 任务。 前提条件已注册火山引擎账号并完成实名认证。关于账号的创建方法和实名认证,请参见如何进行账号注册和实名认证... 需将命令中的 schema 和 table 替换成真实的 schema 名和表名。 增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史...
实例关联安全组在入方向已放通TCP 5432端口。 第一步:搭建主节点远程连接云服务器并登录,具体操作请参考登录Linux实例小节。 执行以下命令,安装PostgreSQL。 yum update -yyum -y install https://mirrors.ivo... 初始化PostgreSQL。/usr/pgsql-11/bin/postgresql-11-setup initdb 执行以下命令,启动PostgreSQL服务。systemctl start postgresql-11 执行以下命令,设置PostgreSQL服务开机自启动。systemctl enable postgresql...