몽고 db - 백업 / 복구 후에 인덱스 다시 생성시 오류 (in kubernetes)
몽고db 데이터를 이전하기 위해 mongodump / mongorestore 로 백업 / 복구 하였다.
그런데, 원래 그런지, 어떤 설정이 있는 것인지 인덱스 가 생성되지 않았다.
> ( 기본은 인덱스가 재 생성 되는 듯 한데, --noIndexRestore 을 주면 인덱스 미생성 )
dump / restore 중에 뭔가 이상이 있는 것인가? 또는 --gzip / --archive 옵션으로 하면 생성이 안되는 것일까?
정확한 이유는 체크해봐야 할 듯 하다.
암튼 그래서 createIndex 로 생성하려하는데, 다음과 같은 에러가 발생하였다.
2020-04-18T06:14:45.987+0000 I NETWORK [js] DBClientConnection failed to receive message from 127.0.0.1:27017 - HostUnreachable: Connection closed by peer
command terminated with exit code 137
몽고db - POD 에 접속을 못하는 듯 하다. 좀더 체크해보니 인덱스 생성도중에 mongod POD 가 중지 Down 되어 버린다.
해당 이슈에 대한 검색으로는 특별한 원인을 찾지 못했다. 몽고db 리플리카 셋은 kubernetes(microk8s) 로 세팅하였다.
예상되는 부분은 restore 과정중에 뭔가 데이터가 깨진것이 아닌가 예상이 된다.
그래서 pvc 를 삭제하면, 리플리카 셋이 자동으로 재생성(초기화) 되면서 pod 가 재실행되도록 하였다.
위 조치로 해결이 되었다. (일단 예상은 맞는 듯 하다)
그런데, 근본적인 작업이었던 백업 / 복구 방식이 문제였을까? ( mongodump => mongorestore )
그냥 데이터 디렉토리를 그대로 복사하는 방법으로 해야할까? 좀더 테스트를 해봐야 겠다.
[추가]
좀더 체크해보니, mongorestore 메시지에 이상이 있었다. (몽고db - pod 가 이상이 있어서 인덱스 생성 실패 케이스)
[정상]
2020-04-20T00:16:08.550+0900 restoring indexes for collection test.product from metadata
2020-04-20T00:19:35.655+0900 finished restoring test.product (5522171 documents, 0 failures)
2020-04-20T00:19:35.655+0900 restoring users from archive '/restore/restore/restore-archive.gz'
2020-04-20T00:19:35.881+0900 5522171 document(s) restored successfully. 0 document(s) failed to restore.
[이상있는 경우]
2020-04-18T07:11:49.926+0900 restoring indexes for collection test.product from metadata
2020-04-18T07:12:44.169+0900 finished restoring test.product (5522171 documents, 0 failures)
2020-04-18T07:12:44.170+0900 Failed: test.product: error creating indexes for test.product: createIndex error: connection(mongod-2.mongodb-service:27017[-11]) incomplete read of message header: EOF
2020-04-18T07:12:44.170+0900 5522171 document(s) restored successfully. 0 document(s) failed to restore.
'알아둘일' 카테고리의 다른 글
vuejs 의 라우터 url 로 직접 접속 가능하도록 해보자 (1) | 2020.05.07 |
---|---|
우분투 , 모니터 없는 서버 vnc 접속시 해상도 조정 (0) | 2020.05.01 |
mount error(127): Key has expired - 우분투(리눅스)에서 윈도우 공유폴더 연결시 에러 (0) | 2020.03.10 |
docker image 를 사용해 서비스를 배포한다 (in microk8s) (0) | 2020.02.23 |
golang 을 사용해서 api 앱을 만든다. (0) | 2020.02.21 |
WRITTEN BY
- 1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.