【问题标题】:FATAL: bogus data in lock file "postmaster.pid" after repairing disk and changing the data folder location postgres docker致命:修复磁盘并更改数据文件夹位置 postgres docker 后锁定文件“postmaster.pid”中的虚假数据
【发布时间】:2020-04-17 11:00:52
【问题描述】:

我们的硬盘驱动器出现问题,其中包含用于 postgres 数据库的数据文件夹,我们修复了该硬盘并将数据文件夹移动到新硬盘驱动器,当我们尝试启动数据库容器时,出现以下错误。

db_1                | 
db_1                | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1                | 
db_1                | FATAL:  bogus data in lock file "postmaster.pid": ""

我尝试删除 postmaster.pid 文件,但随后出现以下错误,

db_1                | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1                | 
db_1                | LOG:  database system was interrupted; last known up at 2020-04-07 18:03:04 UTC
db_1                | LOG:  invalid primary checkpoint record
db_1                | LOG:  invalid secondary checkpoint record
db_1                | PANIC:  could not locate a valid checkpoint record
db_1                | LOG:  startup process (PID 28) was terminated by signal 6: Aborted
db_1                | LOG:  aborting startup due to startup process failure
app_db_1 exited with code 1

我们确实需要数据并且我们没有任何备份我们应该做什么我的docker-compose.yml包含以下db容器的内容,

db:
  image: postgres:9.4
  volumes:
    - /mnt/hdd4/postgresql/data:/var/lib/postgresql/data
    - ./tmp:/tmp/docker
  ports:
    - "5432"

如果需要额外信息,请告诉我。

【问题讨论】:

标签: postgresql docker ruby-on-rails-4 docker-compose containers


【解决方案1】:

您的数据库的重要部分似乎被磁盘问题破坏了。如果您有备份,那将是恢复它的时候了。如果没有,您最好聘请一位擅长从此类损坏的数据库中抢救数据的 PostgreSQL 顾问。

【讨论】:

  • 这不是我第一次看到 Docker 破坏 Postgres 安装。我想知道这是否是一个 Docker 问题。
  • 我可以通过使用pg_resetxlog 重置日志来启动泊坞窗,但我可以从一些表格中读取任何想法@laurenz?
  • 我确实有很多想法如何从损坏的 PostgreSQL 数据库中挽救数据(pg_resetxlogs 通常会增加更多数据损坏)。但这在 Stackoverflow 上的评论中无法传达。聘请专业人士。
猜你喜欢
  • 2016-07-25
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 2017-09-07
  • 1970-01-01
  • 2021-03-29
相关资源
最近更新 更多