为什么我建材商店都是干什么显示都是LOOKUP FAILED

pg_dump一致性备份以及cache lookup failed错误的原因分析
PostgreSQL逻辑备份,如何保证备份数据的一致性呢,例如备份的同时,数据被纂改或者有新增的数据,如何保证在全库视角,备份出来的数据是在备份开始时看到的一致数据。
一致性逻辑备份分析
可以追溯到1999年的代码,早期PostgreSQL通过serializable隔离级别来保证备份的一致性。
PostgreSQL逻辑备份,如何保证备份数据的一致性呢,例如备份的同时,数据被纂改或者有新增的数据,如何保证在全库视角,备份出来的数据是在备份开始时看到的一致数据。
一致性逻辑备份分析
可以追溯到1999年的代码,早期PostgreSQL通过serializable隔离级别来保证备份的一致性。
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 is specified.
* Start serializable transaction to dump consistent data
res = PQexec(g_conn, "begin");
if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
fprintf(stderr, "BEGIN command failed.
Explanation from backend: '%s'.\n", PQerrorMessage(g_conn));
exit_nicely(g_conn);
PQclear(res);
res = PQexec(g_conn, "set transaction isolation level serializable");
if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
fprintf(stderr, "SET TRANSACTION command failed.
Explanation from backend: '%s'.\n", PQerrorMessage(g_conn));
exit_nicely(g_conn);
PQclear(res);
9.1 开始,PostgreSQL改进并支持了SSI隔离级别,比SQL92标准更加苛刻。
同时支持transaction snapshot,一致性备份不再需要serializable,使用repeatable read即可。
所以pg_dump.c改成如下
* Start transaction-snapshot mode transaction to dump consistent data.
ExecuteSqlStatement(AH, "BEGIN");
if (AH-&remoteVersion &= 90100)
* To support the combination of serializable_deferrable with the jobs
* option we use REPEATABLE READ for the worker connections that are
* passed a snapshot.
As long as the snapshot is acquired in a
* SERIALIZABLE, READ ONLY, DEFERRABLE transaction, its use within a
* REPEATABLE READ transaction provides the appropriate integrity
* guarantees.
This is a kluge, but safe for back-patching.
if (dopt-&serializable_deferrable && AH-&sync_snapshot_id == NULL)
ExecuteSqlStatement(AH,
"SET TRANSACTION ISOLATION LEVEL "
"SERIALIZABLE, READ ONLY, DEFERRABLE");
ExecuteSqlStatement(AH,
"SET TRANSACTION ISOLATION LEVEL "
"REPEATABLE READ, READ ONLY");
else if (AH-&remoteVersion &= 70400)
/* note: comma was not accepted in SET TRANSACTION before 8.0 */
ExecuteSqlStatement(AH,
"SET TRANSACTION ISOLATION LEVEL "
"SERIALIZABLE READ ONLY");
ExecuteSqlStatement(AH,
"SET TRANSACTION ISOLATION LEVEL SERIALIZABLE");
逻辑备份cache lookup failed错误分析
除了考虑数据的一致性备份,还需要考虑结构的一致性。
某些获取数据结构的调用是snapshot now的,所以可能有很小的窗口期可能被执行DDL,从而导致relcache变化。
如果pg_dump发现relcache变化,则会爆出cache lookup failed的错误,导致备份失败。
Note that pg_dump runs in a transaction-snapshot mode transaction,
so it sees a consistent snapshot of the database including system
catalogs. However, it relies in part on various specialized backend
functions like pg_get_indexdef(), and those things tend to run on
SnapshotNow time, ie they look at the currently committed state.
it is possible to get 'cache lookup failed' error if someone
performs DDL changes while a dump is happening. The window for this
sort of thing is from the acquisition of the transaction snapshot to
getSchemaData() (when pg_dump acquires AccessShareLock on every
table it intends to dump). It isn't very large, but it can happen.
所以应该避免在使用逻辑备份期间执行DDL。
如果系统无法避免,建议使用物理备份。
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@ 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
基于全网公开发布数据、传播路径和受众群体画像,利用语义分析、情感算法和机器学习,分析公众对品牌形象、热点事件和公...
阿里巴巴自主研发的海量数据实时高并发在线分析云计算服务,使得您可以在毫秒级针对千亿级数据进行即时的多维分析透视和...
阿里云推出的一款移动App数据统计分析产品,为开发者提供一站式数据化运营服务
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
Loading...再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
威锋网7月10日消锋网7月10日消息,《植物大战僵尸2》 如今...
威锋网7月10日消息,《植物大...
近日,开发商 Esquilax Games ..
说到方块游戏,相信有很多朋友应该还会记得 Gavina Games 早...
威锋网7月10日消息,《植物大...
近日,开发商 Esquilax Games ..
说到方块游戏,相信有很多朋友应该还会记得 Gavina Games 早...
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
再吸金!SE推出《最终幻想:全员勇者》钥匙扣
您需要通过验证再能继续浏览 3秒后开始验证
威锋旗下产品
Hi~我是威威!
 粤公网安备 11号
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!2014年10月 Java大版内专家分月排行榜第二2014年9月 Java大版内专家分月排行榜第二2014年8月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第三2014年12月 Java大版内专家分月排行榜第三2014年11月 Java大版内专家分月排行榜第三
2014年10月 Java大版内专家分月排行榜第二2014年9月 Java大版内专家分月排行榜第二2014年8月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第三2014年12月 Java大版内专家分月排行榜第三2014年11月 Java大版内专家分月排行榜第三
2014年10月 Java大版内专家分月排行榜第二2014年9月 Java大版内专家分月排行榜第二2014年8月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第三2014年12月 Java大版内专家分月排行榜第三2014年11月 Java大版内专家分月排行榜第三
2014年10月 Java大版内专家分月排行榜第二2014年9月 Java大版内专家分月排行榜第二2014年8月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第三2014年12月 Java大版内专家分月排行榜第三2014年11月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 kindle商店都是英文 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信