PostgreSQL 使用如下步骤进行 reindex concurrently 操作 [2]:1. 在表上持有 SHARE UPDATE EXCLUSIVE 锁,创建新的索引,以_ccnew 结尾。设置新的索引 pg_index.indisready = TRUE,pg_index 中字段说明请参考 [3]2. 重新命名新旧索引,并设置旧索引 pg_index.indisvalid = FALSE,新索引设置为 TRUE3. 设置旧索引 pg_index.indisready 为 FALSE4. 删除旧索引,释放 SHARE UPDATE EXCLUSIVE 锁。# 使用举例创建测试数据:```sq...
# 问题描述数据库创建索引可能会锁住创建索引的表,这样阻塞业务在生产中一般是不被允许的,那么 PostgreSQL 如何解决这个问题哪?# 问题分析PostgreSQL 在 CREATE INDEX 命令中新增CONCURRENTLY 选项来实现索引的并发创建# 验证方法1. 创建测试表并插 3000000 条 数据```sqlpostgres=# CREATE TABLE demo(id int);CREATE TABLEpostgres=# INSERT INTO demo SELECT generate_series(1,3000000);INSERT 0 3000000```...
# 问题描述PostgreSQL 数据库中如果有长时间未提交的 2PC,会对数据库造成哪些影响。```Plain Textrudonx=> begin;BEGINrudonx=> insert into accounts values(1,100);INSERT 0 1rudonx=> prepare transacti... ## 影响一:长期持有锁运行 alter table,会发现阻塞。同样的,运行 vacuum full 也会阻塞。```Plain Textrudonx=> alter table accounts ADD COLUMN pc int;rudonx=> select * from pg_stat_activity\gx-[ REC...
# 问题描述尝试在RDS PostgreSQL实例上运行查询,发现查询语句长时间未返回结果,语句执行被阻塞。我该如何排查并解决这个问题?# 问题分析通常情况下,查询被阻塞是由于其他未提交的事务所导致的。当锁等待超时后,查询语句将返回失败。大量的阻塞会导致应用与数据库性能下降,应该引起我们的足够重视。# 解决方案### 1. 通过对pg_stat_activity [1]定位被阻塞的事务的当前状态```test=# SELECT * FROM pg_stat_activity...
本文汇总了使用云数据库 PostgreSQL 版备份恢复的常见问题。 为什么无法进行备份操作? 若您出现无法进行备份操作的问题,请根据如下建议进行排查: 确认 PostgreSQL 实例是否为运行中的状态。 确认备份期间未执行 DDL 操作,避免锁表导致备份失败。 若排查之后仍出现无法进行备份操作的问题,您可以提交工单联系技术支持。 备份类型是否支持逻辑备份? 当前仅支持物理备份,不支持逻辑备份。 可以对只读节点进行备份吗? 因为主节点已有...
# 问题描述PostgreSQL 数据库中如果有长时间未提交的 2PC,会对数据库造成哪些影响。```Plain Textrudonx=> begin;BEGINrudonx=> insert into accounts values(1,100);INSERT 0 1rudonx=> prepare transacti... ## 影响一:长期持有锁运行 alter table,会发现阻塞。同样的,运行 vacuum full 也会阻塞。```Plain Textrudonx=> alter table accounts ADD COLUMN pc int;rudonx=> select * from pg_stat_activity\gx-[ REC...
# 问题描述尝试在RDS PostgreSQL实例上运行查询,发现查询语句长时间未返回结果,语句执行被阻塞。我该如何排查并解决这个问题?# 问题分析通常情况下,查询被阻塞是由于其他未提交的事务所导致的。当锁等待超时后,查询语句将返回失败。大量的阻塞会导致应用与数据库性能下降,应该引起我们的足够重视。# 解决方案### 1. 通过对pg_stat_activity [1]定位被阻塞的事务的当前状态```test=# SELECT * FROM pg_stat_activity...
# 问题描述尝试在RDS PostgreSQL实例上运行查询,发现查询语句长时间未返回结果,语句执行被阻塞。我该如何排查并解决这个问题?# 问题分析通常情况下,查询被阻塞是由于其他未提交的事务所导致的。当锁等待超时后,查询语句将返回失败。大量的阻塞会导致应用与数据库性能下降,应该引起我们的足够重视。# 解决方案### 1. 通过对pg_stat_activity [1]定位被阻塞的事务的当前状态````undefinedtest=# SELECT * FROM pg_stat_acti...
本文介绍云数据库 PostgreSQL 版的各规格实例在 PostgreSQL 11 版本下性能测试的测试结果。 规格代码 最大连接数 表数量 单表数据量 线程数 SysBench 读取次数 SysBench 写入次数 QPS TPS rds.postgres.1c2g 200 64 10,000,000 32 1,452,332 414,950 11,520 576 rds.postgres.2c4g 400 64 10,000,000 32 3,520,888 1,005,968 27,932 1,396 rds.postgres.4c8g 800 64 10,000,000 32 7,283,878 2,081,106 57,793 2,889 rds.postgre...
数据库传输服务 DTS 创建或配置 PostgreSQL 的迁移或同步任务时,会先对数据库进行各项检查。本文介绍检查项的详细信息。 检查项 数据库类型 检查范围 级别 检查内容 备注 数据库连通性检查 源库 目标库 所有迁移 所有同步 数据订阅 Error 检查数据传输服务器是否能连通源库和目标库。 无 库表唯一性约束检查 源库 所有迁移 所有同步 Warning 检查源库中待迁移或同步表是否已设置主键或唯一键来保证唯一性。 无 复制槽...
本文介绍云数据库 PostgreSQL 版的各规格实例在 PostgreSQL 13 版本下性能测试的测试结果。 规格代码 最大连接数 表数量 单表数据量 线程数 SysBench 读取次数 SysBench 写入次数 QPS TPS rds.postgres.1c2g 200 64 10,000,000 32 1,415,834 404,523 11,229 561 rds.postgres.2c4g 400 64 10,000,000 32 3,285,996 938,854 26,075 1,303 rds.postgres.4c8g 800 64 10,000,000 32 7,261,814 2,074,804 57,630 2,881 rds.postgres....
本文介绍云数据库 PostgreSQL 版的各规格在 PostgreSQL 12 版本下性能测试的测试结果。 规格代码 最大连接数 表数量 单表数据量 线程数 SysBench 读取次数 SysBench 写入次数 QPS TPS rds.postgres.1c2g 200 64 10,000,000 32 1,440,824 411,664 11,431 571 rds.postgres.2c4g 400 64 10,000,000 32 3,409,182 974,052 27,054 1,352 rds.postgres.4c8g 800 64 10,000,000 32 7,322,420 2,092,120 58,111 2,905 rds.postgres.4c16...
# 前言PostgreSQL 在 9.1 中推出了一种特殊的表:unlogged table,使用 unlogged table 最大的特点是涉及到表的更新,删除等操作不会记录 WAL 日志,这样可以大大的提高性能。不过需要特别注意的是,在数据库异常宕机时,unlogged tables 中的数据可能会丢失。### unlogged table 使用场景1. 可以接受数据丢失的风险,数据可以从其他源进行导入。2. unlogged table 通常用于中间结果,频繁变更的会话数据### unlogged table 特性...