我正在尝试在我公司的备份服务器上的postgres中创建一个新数据库。
我尝试了pgadmin和命令行,但是我收到以下错误:
Error: could not read file "base/1/1187" : Input/Output error
在服务器上运行OS是Ubuntu服务器版。
答案 0 :(得分:0)
此错误是由于Postgresql崩溃或磁盘故障造成的。
您可以尝试查看内核日志以查看是否还有其他信息
在做任何事之前先阅读:
https://wiki.postgresql.org/wiki/Corruption
完成后,您可以查看可能的维修工作。您可能会有一些重要的数据丢失,因此您的目标应该是让它工作到可以pg_dump损坏的数据库,重新initdb和重新加载。
如果您有最近的备份,现在是考虑使用它的好时机。
答案 1 :(得分:0)
模板数据库template1
中有一个PostgreSQL无法访问的文件。
也许有人搞砸了数据目录,也许在完整性问题摆脱它之后进行文件系统检查。最近有什么不寻常的事情发生了崩溃吗?
/var/log/messages
或PostgreSQL服务器日志中的任何内容?
文件存在吗?如果是,ls -l 1187
会显示什么?
要找出受影响的表,可以安装contrib并运行
oid2name -d template1 -f 1187