POSTGRES could not remove file pg wal
replication 에러 상황에서 postgresql 컨테이너를 강제로 재기동 했더니 저런 로그가 뜨면서 DB접속이 안된다. 당연히 replication도 계속 에러상황이다.
2020-07-07 11:02:55.161 GMT [59] LOG: could not remove file "pg_wal/000000010000002A0000003A": Device or resource busy
2020-07-07 11:02:56.969 GMT [59] LOG: could not remove file "pg_wal/0000000100000004000000DF": Device or resource busy
2020-07-07 11:02:56.969 GMT [303434] ERROR: requested WAL segment 000000010000000300000064 has already been removed
가장 간단한 해결법은 pg_resetwal
명령어를 이용해 트렌젝션로그를 마지막 정상 시점으로 초기화 해주는 것이다. 에러 시점 근처로 일부 데이터 손실이 있을 수 있지만, 별도의 백업 dump가 없는 상황에서 가장 간편하게 DB를 정상상태로 복원할 수 있는 방법이었다.
pg_resetwal [데이터 디렉토리] -f
단, 해당 명령어는 postgresql 서비스가 종료된 상태에서 실행해야 한다.
반응형