[couchbase] couchbase server 4.0 업그레이드. 문제와 해결

3.0.1 을 쓰다가 4.0 으로 업그레이드했다. 새로 추가된 N1QL 기능을 써보려고 cbq 를 실행했는데 cbq-engine 에서 쓰는 8093 포트가 열려있지 않았다. cbq-engine이 일단 떠 있지 않아서

cbq-engine -datastore "http://xxxx:8091/"

로 띄우고 cbq 로 접속해서 test query 를 날렸는데 primary index를 만들어야 할 수 있다고 한다.

primary 인덱스를 만드려면 아래와 같이 실행해야 한다.

create primary index on default using GSI;

하지만 “Indexer not implemented GSI may not be enabled” 에러만 출력하고 index를 못 만들더라. 물론, 아래와 같이 view 를 이용해서 만들 수도 있는데, GSI(Global Secondary index)를 쓰는게 n1ql의 default 이고 문제가 뭔지도 알아보긴 해야 해서 계속 도전했다.

create primary index on default using view;

온갖 삽질(CBAUTH 어쩌구 세팅부터…결국은 다 필요없던것이었지만) 끝에 indexer 띄웠으나, index는 생성이 안되더라.

web console의 server nodes의 services 칼럼에서 index, query 항목이 보이는 게 정상이라고 하고, indexer 나 cbq-engine 은 수동으로 띄우는게 기본이 아니라는 글을 봐서 결국에는 3.0.1을 언인스톨하고 4.0.0 을 새로 설치하였다. windows task manager의 process 탭에서 설치한 후에 indexer.exe 와 cbq-engine.exe 가 떠 있는게 잘보인다. (3.0에서 마이그레이션할 때 안뜨는 건 버그인가보다.)

standalone 환경에서 문제가 없길래 팀 개발환경에 적용했다. 총 3대의 couchbase를 밀고 다시 설치하였다. 앞에서처럼 indexer와 cbq-engine 까지는 잘 뜨는데 index 만드는 부분에서 timeout으로 계속 에러가 발생했다. (select 해보면 Primary index #primary not online. 라고 나오기도 함) web console의 index 항목에 가보니 “We are having troubles communicating to the indexer process. The information might be stale.” 라고 경고가 나오는 걸 보고 indexer.log 파일을 기웃거렸다. 몇가지 못보던 포트가 나오길래 검색을 조금 했더니 질문하고 자답한 사람이 있었다. 9101-9105, 9998, 9999 포트가 새로 추가되었으니 방화벽에서 열어야 한다고 한다.

포트 모두 열고 나서 모두 작동하는 것을 확인함.

결론 : 나야 라이브 환경은 아니라서 bucket 다 밀고 4.0으로 업그레이드했는데, 4.0으로 업그레이드 하려는 분들은 index, query 서비스 설치와 bucket 데이터 문제없이 할 수 있도록 잘 조치하시길. couchbase 이놈들 추가로 필요한 포트는 문서화를 하던지 셋업 마지막에 알려주던지 해야지..아놔…