pg_dump一致性备份以及cache lookup failed错误的原因分析

本文分析了PostgreSQL逻辑备份中确保数据一致性的方法,探讨了从serializable隔离级别到SSI隔离级别的演变,以及如何利用repeatable read实现一致性。同时,文章指出了在备份过程中可能出现的'cache lookup failed'错误,该错误通常由于DDL操作导致relcache变化,建议避免在备份期间执行DDL,或选择物理备份作为替代方案。
摘要由CSDN通过智能技术生成

背景

PostgreSQL逻辑备份,如何保证备份数据的一致性呢,例如备份的同时,数据被纂改或者有新增的数据,如何保证在全库视角,备份出来的数据是在备份开始时看到的一致数据。

一致性逻辑备份分析

可以追溯到1999年的代码,早期PostgreSQL通过serializable隔离级别来保证备份的一致性。
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=bcb5aac81dec14d892fae18b446315367563be4c

Add keywords to implement Vadim's transaction isolation  
 and lock syntax as fully parsed tokens.  
Two keywords for isolation are non-reserved SQL92  
 (COMMITTED, SERIALIZABLE).  
All other new keywords are non-reserved Postgres (not SQL92)  
 (ACCESS, EXCLUSIVE, MODE, SHARE).  
Add syntax to allow CREATE [GLOBAL|LOCAL] TEMPORARY TABLE, throwing an  
 error if GLOBAL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值