복붙노트

[MONGODB] 왜 점점 오류가 죽은 mongod하지만 SUBSYS 잠겨 및 Linux 저널 파일에 대한 사용 가능한 공간이 부족?

MONGODB

왜 점점 오류가 죽은 mongod하지만 SUBSYS 잠겨 및 Linux 저널 파일에 대한 사용 가능한 공간이 부족?

나는 리눅스 CentOS는 서버에서 몽고-10gen 몽고-10gen 서버를 설치했습니다.

나는 링크의 단계를 따라.

나는로 /etc/mongod.conf를 구성 -

logpath=/var/log/mongo/mongod.log
port=27017
dbpath=/var/lib/mongo

나는 iptables에있는 몽고에 대해 포트 27017을 설정했습니다. 내가 명령을 사용 몽고 시작하려면 -

service mongod start and
mongo

그것은 잘 시작하지만 며칠 후 나는 오류를 얻고있다 -

Tue Jan 29 08:41:54 [initandlisten] ERROR: Insufficient free space for journal files
Tue Jan 29 08:41:54 [initandlisten] Please make at least 3379MB available in /var/lib/mongo/journal or use --smallfiles
Tue Jan 29 08:41:54 [initandlisten]
Tue Jan 29 08:41:54 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Tue Jan 29 08:41:54 dbexit:
Tue Jan 29 08:41:54 [initandlisten] shutdown: going to close listening sockets...
Tue Jan 29 08:41:54 [initandlisten] shutdown: going to flush diaglog...
Tue Jan 29 08:41:54 [initandlisten] shutdown: going to close sockets...
Tue Jan 29 08:41:54 [initandlisten] shutdown: waiting for fs preallocator...
Tue Jan 29 08:41:54 [initandlisten] shutdown: lock for final commit...
Tue Jan 29 08:41:54 [initandlisten] shutdown: final commit...
Tue Jan 29 08:41:54 [initandlisten] shutdown: closing all files...
Tue Jan 29 08:41:54 [initandlisten] closeAllFiles() finished
Tue Jan 29 08:41:54 [initandlisten] journalCleanup...
Tue Jan 29 08:41:54 [initandlisten] removeJournalFiles
Tue Jan 29 08:41:54 [initandlisten] shutdown: removing fs lock...
Tue Jan 29 08:41:54 dbexit: really exiting now

언제 명령을 실행 -

service mongod status

이 오류를 제공합니다 -

mongod dead but subsys locked

죽은 mongod의 문제를 해결하는 데 도움이되지만 SUBSYS는 종료를 고정 및 저널에 대한 사용 가능한 공간이 부족하세요

해결법

  1. ==============================

    1.실행할 때 당신은 설정 파일에 다음을 추가 할 수 있습니다 것이 제공 mongod --config mongod.conf

    실행할 때 당신은 설정 파일에 다음을 추가 할 수 있습니다 것이 제공 mongod --config mongod.conf

    MongoDB를 3.x를 (최신 버전)의 경우

    storage:
       mmapv1:
          smallFiles: true
    

    버전 2.6+의 경우

    storage:
       smallFiles: true
    

    버전 2.4 이하의 경우

    smallfiles = true
    

    그럼 그냥 설정 파일을 받아 mongod를 실행 (는 설정의 위치를 ​​가정하는 것은 여기 /etc/mongodb.conf입니다) :

    mongod -f /etc/mongodb.conf
    

    smallfiles 매개 변수에 대한 설명서 :

    Set to true to modify MongoDB to use a smaller default data file size. 
    Specifically, smallfiles reduces the initial size for data files and
    limits them to 512 megabytes. The smallfiles setting also reduces the
    size of each journal files from 1 gigabyte to 128 megabytes.
    
  2. ==============================

    2.시작은 다음 명령을 사용하여 인스턴스를 mongod

    시작은 다음 명령을 사용하여 인스턴스를 mongod

    mongod --dbpath /data/db --smallfiles
    
  3. ==============================

    3.나는 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/에서 공식 가이드를 따라했다

    나는 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/에서 공식 가이드를 따라했다

    사용 후

    $sudo service mongod start
    

    MongoDB를이 로그를 검토하여 성공적으로 시작했다면 나는 확인했다 :

    /var/log/mongodb/mongod.log
    

    이것은 내가 발견하는 문제입니다 :

    2014-11-11T12:54:05.808-0500 [initandlisten] ERROR: Insufficient free space for journal files
    2014-11-11T12:54:05.808-0500 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
    2014-11-11T12:54:05.808-0500 [initandlisten]
    2014-11-11T12:54:05.808-0500 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
    2014-11-11T12:54:05.808-0500 [initandlisten] dbexit:
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close listening sockets...
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to flush diaglog...
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close sockets...
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: waiting for fs preallocator...
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: lock for final commit...
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: final commit...
    2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: closing all files...
    2014-11-11T12:54:05.808-0500 [initandlisten] closeAllFiles() finished
    2014-11-11T12:54:05.808-0500 [initandlisten] journalCleanup...
    2014-11-11T12:54:05.808-0500 [initandlisten] removeJournalFiles
    2014-11-11T12:54:05.814-0500 [initandlisten] shutdown: removing fs lock...
    2014-11-11T12:54:05.814-0500 [initandlisten] dbexit: really exiting now
    

    해결책:

    I /etc/mongod.conf 파일의 끝에 다음 행을 추가 :

    smallfiles = true
    

    그 후, 나는 mongod 서비스를 다시 시작 :

    $sudo service mongod restart
    

    나는 로그를 검토 갔을 때 다음, 나는 모든 것이 완벽했다, 그리고 문제가 해결 된 것을 깨달았다 :

    2014-11-11T22:32:20.544-0500 ***** SERVER RESTARTED *****
    2014-11-11T22:32:20.552-0500 [initandlisten] MongoDB starting : pid=5200 port=27017 dbpath=/var/lib/mongodb 64-bit host=jaimemontoya-VirtualBox
    2014-11-11T22:32:20.552-0500 [initandlisten] db version v2.6.5
    2014-11-11T22:32:20.552-0500 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6
    2014-11-11T22:32:20.552-0500 [initandlisten] build info: Linux build8.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
    2014-11-11T22:32:20.552-0500 [initandlisten] allocator: tcmalloc
    2014-11-11T22:32:20.552-0500 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", smallFiles: true }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
    2014-11-11T22:32:20.564-0500 [initandlisten] journal dir=/var/lib/mongodb/journal
    2014-11-11T22:32:20.564-0500 [initandlisten] recover : no journal files present, no recovery needed
    2014-11-11T22:32:20.738-0500 [initandlisten] waiting for connections on port 27017
    2014-11-11T22:33:20.748-0500 [clientcursormon] mem (MB) res:36 virt:245
    2014-11-11T22:33:20.748-0500 [clientcursormon]  mapped (incl journal view):64
    2014-11-11T22:33:20.748-0500 [clientcursormon]  connections:0
    
  4. ==============================

    4.저널 파일을 생성 할 수 있도록 충분한 공간이 있음에도 불구하고이 문제를 가진 사람들을위한.

    저널 파일을 생성 할 수 있도록 충분한 공간이 있음에도 불구하고이 문제를 가진 사람들을위한.

    내 문제 : 저널 파일을 생성 할 수 있도록 내가 충분한 공간보다 더 많은했다. 몽고 나에게 연결 실패 문제를했다. 나는 다시 나에게 SUBSYS 문제를 준 mongod 프로세스를 죽이는 kill 명령을 사용했다. 여기에 나를 위해 일한 것입니다 :

    의 / var / 잠금 / SUBSYS 및 파일 삭제 mongod로 이동

    이제 서비스 mongod 서비스 mongod 시작 후 stopand

    시작 몽고는 이제 쉘 모든 것이 잘 실행 될 것으로 보인다.

  5. ==============================

    5.먼저

    먼저

    cd /usr/local/src/mongo/bin/<br>
    

    그때

    ./mongod --dbpath /usr/local/src/mongo/data/db/ --smallfiles
    
  6. ==============================

    6.저를 도와 그냥 참고. 몽고와 관련된 기술적 문제가 없었다하지만. 그것은 단지 시스템의 공간이 부족이었다. 시스템의 캐시를 지우면 나에게 근무 몽고 다시 원활하게 실행되었다.

    저를 도와 그냥 참고. 몽고와 관련된 기술적 문제가 없었다하지만. 그것은 단지 시스템의 공간이 부족이었다. 시스템의 캐시를 지우면 나에게 근무 몽고 다시 원활하게 실행되었다.

    yum clean all
    
  7. ==============================

    7.문제의 배경 : 나는 데이터베이스 서비스를 중지하지 않고 더 큰 인스턴스에 t2.micro에서 DB 서버를 업그레이드했습니다. 하는 대가로이 잠금 파일이 오류를 던지고을 만들어,  mongod 죽은하지만 SUBSYS 잠겨 이후 나는 몽고 쉘을 사용 할 수 없습니다.

    문제의 배경 : 나는 데이터베이스 서비스를 중지하지 않고 더 큰 인스턴스에 t2.micro에서 DB 서버를 업그레이드했습니다. 하는 대가로이 잠금 파일이 오류를 던지고을 만들어,  mongod 죽은하지만 SUBSYS 잠겨 이후 나는 몽고 쉘을 사용 할 수 없습니다.

    당신은 충분한 디스크 공간이있는 경우. 그런 다음, 다음 단계를 수행

    1.sudo mongod (아래 실패 찾을 경우 이유)

    Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted)
    
  8. from https://stackoverflow.com/questions/14584393/why-getting-error-mongod-dead-but-subsys-locked-and-insufficient-free-space-for by cc-by-sa and MIT license