postgresql - 转储损坏的 Postgres 数据库
问题描述
我有数据库,它的工作,但有一些问题。我需要将数据库迁移到新版本的 Postgres,所以当我尝试使用 pg_dump 或 pg_dumpall 进行转储时,我有这样的想法:
pg_dump: [archiver (db)] query failed: ERROR: unexpected chunk number 2 (expected 0) for toast value 78482 in pg_toast_2618
pg_dump: [archiver (db)] query was: SELECT pg_catalog.pg_get_viewdef('78478'::pg_catalog.oid) AS viewdef
但是,如果我只转储一个单独的表,它就可以工作。我想一点一点地转储。我已经获得了所有表的结构,用于创建实际索引的脚本。当我制作其他普通数据库的 pg_dumpall 时,我在转储文件中看到了类似的内容:
ALTER TABLE ONLY schema_name.table_name ALTER COLUMN id_column SET DEFAULT nextval('sequence_name'::regclass);
我需要编写为每个表设置序列的脚本,在哪里可以看到序列和表之间的匹配?有人有这种迁移的经验吗?以后有哪些问题等着我呢?有迁移数据库postgres的特殊工具吗?有什么不同的解决方案吗?
解决方案
推荐阅读
- jenkins - Jenkins HTML Publisher Plugin 和 HTML 报告文件中的相对路径存在问题
- android - 使用 Intent 时传递数组数据为空
- algorithm - 使用线性探测搜索条目的算法是什么?
- c - 通过 C HTTP 服务器发送 HTTP 响应时,图像不会在浏览器上加载
- sql - 寻找所有用户的相同序列
- aws-lambda - 如何在 2 个云函数之间传递值?
- javascript - 转换二维数组
- python - 递归计算矩阵的行列式
- java - 故障安全“运行”方法的机制
- mysql - Net Core 未在 Linux 生产环境中连接到 mysql