摘要:
create index的语法中,看到一个关键字concurrently。以下是对concurrently的解释: 当使用这个选项时,PostgreSQL在构建索引时不加任何阻止对表的并发插入、更新或删除的锁;而标准的索引构建会锁定表上的写操作(而不是读操作),直到完成。 在使用此选项时,有几个注意 阅读全文
随笔档案-2020年06月
PostgreSQL逻辑订阅中的复制状态查看
2020-06-28 23:14 by abce, 3426 阅读, 收藏, 编辑
摘要:
1.订阅端 pg_subscription_rel 查看订阅的每个表的复制状态。是多对多的映射。其中: srrelid:表示表的pg_class.oid srsubstate:状态码;i=初始化,d=正在复制数据,s=已同步,r =准备好(常规复制) srsublsn: s和r状态时的结束LSN。 阅读全文
pg因invalid primary checkpoint record无法启动
2020-06-28 22:13 by abce, 3455 阅读, 收藏, 编辑
摘要:
有个开发环境,因为磁盘空间满了,有人直接将pg_wal下的文件rm了,然后,重启报错 2020-06-28 18:13:59.148 CST [10387]: LOG: database system was shut down at 2020-06-28 18:12:41 CST 2020-06- 阅读全文
Python中Lock和Rlock
2020-06-26 19:15 by abce, 2014 阅读, 收藏, 编辑
摘要:
线程是进程中可以调度执行的实体。而且,它是操作系统中可以执行的最小处理单元。简单地说,一个线程就是一个程序中可以独立于其他代码执行的指令序列。为了简单起见,你可以假设线程只是进程的子集! Locks 锁是Python中用于同步的最简单的方式。锁有两种状态:上锁、释放锁。 锁是线程模块中的一个类,有两 阅读全文
PostgreSQL中的heap-only-tuples updates
2020-06-26 13:25 by abce, 1151 阅读, 收藏, 编辑
摘要:
由于MVCC的原因,pg并非是直接更新一行记录:它生成重复的记录并提供行的可见性映射信息。 为什么要这么做呢?因为数据库必须考虑一个关键问题:并发性。被更新的行可能还在被之前的事务使用。 为了解决这个问题:rdbms采用了不同技术: ·修改行,并将原来的行版本放置到另外一个地方。比如oracle中的 阅读全文
Python中的with语句
2020-06-05 09:12 by abce, 293 阅读, 收藏, 编辑
摘要:
考虑下面的代码: set things uptry: do somethingfinally: set things down 其中,set things up可以是打开一个文件、或获取一些外部资源;set things down可能是关闭文件、释放资源。try..finally..结构保证了set 阅读全文