postgresql - PostgreSQL 说:MultiXactId 1085002 尚未创建——明显的环绕
问题描述
我在 AWS 上通过 Aurora PostgreSQL 写入我的 Postgres 数据库时遇到了一个奇怪的错误
PostgreSQL 版本 9.6.11
我尝试在表 admin_user 上解决该问题
Vacuum admin_user
Vacuum Freeze admin_user
我无法重新创建该表,因为它已连接到所有其他表并且会造成大混乱
更新问题
我无法访问该表
解决方案
由于我们在这里可能无法理解的原因(可能是 9.6.19 可能已修复的 PostgreSQL 软件错误,也可能是硬件问题),您遭受了数据损坏。
由于您使用的是托管数据库,并且只能通过 SQL 访问数据库,因此您的选择是有限的。
最好的方法可能是使用子事务从表中提取尽可能多的数据(test
在此示例中调用):
/* will receive salvaged rows */
CREATE TABLE test_copy (LIKE test);
您可以运行以下代码:
DO
$$DECLARE
c CURSOR FOR SELECT * FROM test;
r test;
cnt bigint := 0;
BEGIN
OPEN c;
LOOP
cnt := cnt + 1;
/* block to start a subtransaction for each row */
BEGIN
FETCH c INTO r;
EXIT WHEN NOT FOUND;
EXCEPTION
WHEN OTHERS THEN
/* there was data corruption fetching the row */
RAISE WARNING 'skipped corrupt data at row number %', cnt;
NOVE c;
CONTINUE;
END;
/* row is good, salvage it */
INSERT INTO test_copy VALUES (r.*);
END LOOP;
END;$$;
祝你好运。
推荐阅读
- javascript - 如何基于 javascript 中的变量执行递归 JSON?
- newline - How to specify line endings (CRLF)
- javascript - 如何在进度条百分比中添加菱形标记?
- node.js - 如何保存猫鼬虚拟
- .net-core - 将 ClaimsPrincipal 从控制器传递到服务
- swift - How to change the default Alamofire cache time if possible?
- string - Trying to post jmeter request using parameters but its giving me response as a Required String parameters Status Code 400
- python - Python 3.x: Why idle prints escape character \r as ♪?
- amazon-s3 - JMeter 4.0 | AWS S3 Bucket | Non HTTP response message
- sql - get all product list return with entry array list inside of product