안녕하세요 여러분, 다음 날 mongo를 시작할 때 mongodb에 저장된 데이터가 mongod.lock을 삭제한 다음 모든 데이터가 손실된 이유는 무엇입니까?
黄舟2017-04-27 09:04:59
먼저 mongod.lock
는 mongo
서버가 시작된 후 하드디스크에 생성되는 잠금 파일입니다. mongod
서비스를 정상적으로 종료하시면 해당 파일이 존재하더라도 다음 서비스에는 영향을 주지 않습니다. 스타트업 mongod
서비스. 동시에 이 파일은 작동 중 mongod의 일부 상태도 기록하므로 서비스가 정상적으로 다시 시작될 때 예외 정보 프롬프트를 얻을 수 있습니다.
참고: 일반적으로 mongod
파일은 mongod.lock
서비스를 비정상적으로 종료한 경우에만 삭제하면 됩니다. 정상적으로 종료되므로 삭제할 필요가 없습니다.
이제 데이터가 손실되었으니 비정상적으로 종료되어야 합니다. 즉, 데이터베이스가 충돌하는 것입니다. 开启journal
이 없으면 데이터의 무결성을 보장할 방법이 없습니다.
그래서 일반적으로 开启journal
프로덕션 환경에서는 그렇습니다.
데이터가 백업되지 않은 경우 mongod에 내장된 복구만 사용할 수 있습니다. mongod
와 --repair
옵션을 실행하세요.
mongod.lock
파일을 삭제하시겠습니까? mongod가 정상적으로 종료되면 mongod.lock 파일이 지워집니다. 다음에 다시 시작하면 지난번에 완전히 종료되었음을 알 수 있습니다. 반대로 잠금 파일이 지워지지 않으면 mongod는 정상적으로 종료되지 않습니다.
mongod가 정상적으로 종료되지 않은 것을 감지하면 다시 시작할 수 없게 되며, 시작 시 마지막 비정상 종료에 대한 정보를 인쇄하고 데이터를 복사하도록 요구합니다. 그러나 일부 사람들은 잠금 파일을 삭제하면 이 검사를 우회할 수 있다는 것을 깨달았습니다. 그래서 이 파일을 삭제한 이유가 있습니다. 시작 시 잠금 파일을 삭제하면 데이터가 손상되었는지 알 수 없거나 신경 쓰지 않는다는 의미입니다. mongod를 시작할 수 없는 경우 잠금 파일을 삭제하는 대신 데이터를 복구하십시오.