Debian 8.5 서버에서 실행되는 MongoDB를 사용하는 상당히 오래된 웹 애플리케이션 설정이 있습니다. 불행하게도 최근 MongoDB가 서버에서 업그레이드되어 애플리케이션이 충돌했습니다. MongoDB가 2.4.10 버전으로 업그레이드되었으며 시작 중에 이 오류가 발생했습니다.
need to upgrade database admin with pdfile version 4.22, new version: 4.5
업그레이드 관리 데이터베이스를 실행하려고 하면 다음과 같은 메시지가 나타납니다.
error: exception cloning object in admin.system.users system.users entry must have either a 'pwd' or a 'userSource' field, but not both
기본적으로 데이터베이스를 업그레이드할 수 없습니다. 데이터베이스 복구를 시도했지만 작동하지 않습니다. 데이터베이스의 중복된 사용자로 인해 문제가 발생한 것 같습니다. 가능한 해결책 중 하나는 중복 항목을 제거하는 것이지만 mongod가 실행되지 않으므로 어떻게 해야 할지 모르겠습니다.
apt를 통해 mongodb를 다운그레이드하려고 시도했지만 apt에서 인식되는 버전을 찾을 수 없습니다. 예를 들어
sudo apt-get install mongodb=2.2.7
생산하다
E: version '2.2.7' for 'mongodb' was not found
인터넷 검색 후 mongodb 2.6에는 동일한 문제가 없는 것 같습니다. 불행히도 현재 2.4.10보다 새로운 것을 설치할 수 없습니다. apt-get update를 실행했는데 apt-cache 정책에 따르면 후보 버전이 설치된 버전과 동일하다고 표시됩니다.
기본적으로 이 사이트를 다시 시작하고 실행할 수 있는 세 가지 방법이 있습니다.
- 최근 설치된 MongoDB 버전과 작동하도록 관리 데이터베이스를 성공적으로 업그레이드했습니다.
- MongoDB를 2.2.7로 다운그레이드
- MongoDB를 2.6.x로 업그레이드
내가 어떻게 이런 일이 일어나게 할 수 있는지 아는 사람이 있나요?
답변1
2.2나 2.4보다 최신 버전을 사용하는 것이 좋습니다. MongoDB 용어로는 오래된 버전이고 오래 전에 업데이트 수신이 중단되었습니다. 설치할 최신 버전을 찾을 수 없는 이유는 공식 데비안 패키지가 전체 운영 체제 버전에 대해 주요 버전으로 잠겨 있기 때문입니다. 불행하게도 Debian OS 버전은 주요 MongoDB 릴리스보다 훨씬 뒤떨어져 있으며 Debian 버전이 릴리스되더라도 항상 최신 버전을 사용하는 것은 아닙니다.
보다 최신 버전의 MongoDB를 얻으려면 공식 MongoDB 저장소를 사용해야 합니다.버전 2.6이 시점에서는 꽤 오래된 것입니다. 넌 아직 할 수 있어고정 버전그러나 이를 통해 업그레이드 대상과 업그레이드 방법을 제어할 수 있으며 이는 좋은 옵션입니다. 다음 사이트에서 이전 2.2 버전을 구할 수도 있습니다.비슷한 방식으로.
관리 데이터베이스 오류를 수정하려면 다음 세 가지 옵션이 있습니다.
- 2.2.X(위 참조)로 다운그레이드하고 중복 항목을 제거한 후 다시 업그레이드하세요.
- 2.6 이상으로 업그레이드하여 문제가 해결되는지 확인하세요.
- 인증을 비활성화한 상태에서(일시적으로) MongoDB를 시작하고 관리 데이터베이스에서 중복 항목을 제거할 수 있는지 확인한 다음 정상적으로 다시 시작합니다.