После того, как в моей резервной базе данных postgres произошел сбой питания, я получаю сообщение об ошибке:
XFS: Internal error XFS_WANT_CORRUPTED_GOTO
после перезагрузки системы, а также журнал ошибок postgres показывает:
ERROR: could not write block 1759002 in file "base/278425/1651445.13": Input/output error
CONTEXT: writing block 1759002 of relation base/278425/1651445
ERROR: could not write block 339174 in file "base/278425/1651495.2": Input/output error
CONTEXT: writing block 339174 of relation base/278425/1651495
PANIC: could not write to log segment 0000000100001423000000A9 at offset 149696, length 5952: Input/output error
Несколькими днями ранее в другой идентичной системе я получил ошибку postgres:
ERROR: could not write block 69511 in file "base/278425/539725": Structure needs cleaning
CONTEXT: writing block 69511 of relation base/278425/539725
WARNING: could not write block 69511 of base/278425/539725
DETAIL: Multiple failures --- write error might be permanent.
Файловая система 2 ТБ монтируется с использованием:
монтировать -t xfs -o rw, nobarrier, noatime, nodiratime / dev / md0 / postgres_data
Поскольку это том AWS ELB (GP2), я предполагаю, что он не имеет поддержки от батареи и поврежден, потому что я выбрал nobarrier
вариант?
Поскольку размер этой файловой системы составляет 2 ТБ, следует ли мне добавить параметр inode64
и может быть в этом проблема? Файловая система содержит 1,2 ТБ данных.
inode64
- это значение монтирования по умолчанию, поэтому ваша система уже должна его использовать.
С большой вероятностью проблема связана с nobarrier
вариант, связанный с кешем записи без BBU на стороне хоста.
Вам пришлось отключить файловую систему и запустить xfs_repair
против этого.