본문 바로가기

mongodb

[Kubernetes StatefulSet] Mongodb Replicaset by StatefulSet(2/5) Mongodb Replicaset을 구현하는 방법은 여러 가지(sidecar, init-container 방식 등)이 있지만, 여기서는 docker.io의 mongo 3.4 ~ mongo:3.7 까지의 범용 이미지를 사용한 Replicaset 구현 방법을 다루어 보고자 한다. Mongodb Replicaset 구현 & 기능 검증 [Prerequisites] Running k8s cluster with persistent storage(glusterfs class, etc.)Tested kubernetes version: 1.9.x, 1.11.x [Deployment resources - mongodb-service.yaml] # Service/endpoint for load balancing the cl.. 더보기
mongodb ttl collection 사용에 관하여(pymongo 추가) [mongodb client UI] MongoDB 2.2.x 2.1.2 부터 TTL(Time To Live) 기능이 제공되고 있다. IT에 익숙한 분이라면 icmp, DNS, cache server 등의 프로토콜이나 설정/작동 방법상에서 자주 나타나는 용어라는 것을 알 수 있으리라. mongodb에서의 이 기능은 단순하게 설명하자면, 지정된 시간 이전의 레코드를 자동으로 지우는(purging, removing) 기능이다. 주로 통계성 데이터나 모니터링 데이터 등 시계열 데이터가 저장되어 있을 경우나 일정 시간 동안만 저장되어야 하는 session 정보 등을 저장하는데 유용하게 사용할 수 있겠다. 중요한 주의사항 몇 가지를 아래에 정리해 두고 테스트를 진행해 본다. mongodb의 Date 에 해당하는 날.. 더보기
PHP5 + lighttpd fastcgi + mongodb + mysql(openeuse 12.1) 개발/운영 환경 설정 Opensuse 12.1 환경에서 PHP5 + lighttpd fastcgi + mongodb + mysql 개발/운영 환경 설정* howtoforge.com 내용 참조, 테스트 실행 & 보완 1. Lighttpd & php5 환경 설정 # zypper in -y lighttpd# systemctl enable lighttpd.service# systemctl start lighttpd.service * 기존의 php5 fastcgi 가 php5-fpm 패키지로 통합 업그레이드 되었고 별도 daemon으로 동작한다.# zypper in -y php5-fpm # mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf# chmod 1733 /var.. 더보기
PHP5 + lighttpd fastcgi + mongodb + mysql(openeuse 11.3) 개발/운영 환경 설정 Opensuse 11.3, 12.1 각각에 대해 2회에 걸쳐서 정리* howtoforge.com 내용 참조, 테스트 실행 & 보완 1. Lighttpd & php5 환경 설정 # zypper in -y lighttpd# chkconfig --add lighttpd# chkconfig lighttpd on# service lighttpd start # zypper in -y php5-fastcgi * 아래 라인을 찾아서 un-comment# vi /etc/php5/fastcgi/php.ini cgi.fix_pathinfo=1 * 아래 라인을 찾아서 un-comment# vi /etc/lighttpd/modules.confinclude "conf.d/fastcgi.conf" server.modules = (.. 더보기
MongoDB 백업(dump)와 복구(restore) MongoDB를 백업하는 방법에는 Journaling을 지원하는 Block 장치일 경우 snapshot, lock & fsync, mongodump & mongorestore 등의 여러 가지가 있다. mongo.org 에 의하면 증분 백업(incremental backup)을 지원하지는 않고 있으며, 아직까지 이러한 기능을 수행하는 도구 또한 존재하지 않는 상황이다. 데이터베이스 엔진이 중단되지 않아야 하는 상황의 경우 dump & restore를 통한 방법이 일반적이므로 아래에 그 사용법에 대해 정리해 둔다. 이 방식은 쉽게 표현하자면 단순히 레코드 단위로 백업(dump)을 받고, 복구시에도 레코드 단위로 insert를 반복적으로 수행하게 된다. [mongodump] # 전체 데이터베이스 Full ba.. 더보기
MongoDB Replica set 활용(v2.0+ 기준) Mongo DB를 사용한 Replication은 그 조합과 목적에 따라 여러 가지 구조로 구현된다. Master-Slave 이중화 및 다중화, Master-Master 이중화, Master-Master Circular 구조의 다중화, Cluster 기술이 적용된 Replica Set 등, ... 결국은 데이터베이스의 고가용성을 갖추기 위한 목적은 같지만 말이다. 가장 대표적이고 단순한 것은 Master-Slave이다. 이를 통해서 Data redundancy는 구현되지만, Fail-over 문제, 자원의 비효율적 사용 때문에 Master-Master 구조를 선호하는 것이 일반적이다. 또한 그 구조도 비교적 단순하며 Fail-over 를 통한 Availability 뿐 아니라 Read/Write 부하의 분.. 더보기
Building mongodb r1.4.4 [Getting ready] * Install spidermonkey(js.lib) # curl -O ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz # tar zxvf js-1.7.0.tar.gz # cd js/src # export CFLAGS="-DJS_C_STRINGS_ARE_UTF8" # make -f Makefile.ref # JS_DIST=/usr make -f Makefile.ref export * install scons, pcre-devel # zypper in scons # zypper in pcre-devel * Packages needed for building mongo git, tcsh, scons, gcc-c++, glib.. 더보기
mongoDB 보안 설정하기(1.2.2 기준) mongo db는 몽고 라는 나라와 전혀 상관이 없다. Humongous 하는 단어에서 만들어진 것. 설치후 아무런 제약 없이 ./mongo 만 치면 db에 접속된다. 개발환경이라면 문제 없지만 개념 없이 쓰다가 큰 일 ㅡ_-? 이 날지도... 우선 mongod를 기동시킬 때 --auth 옵션을 추가해 두자. 다음 글에서 mongod 를 시스템 스타트시에 기동되도록 설정하는 방법을 정리할 것이다. ubuntu, centos, suse 등 거의 모든 linux 머신에서 특정 App을 기동시키는 일반적인 방법이 되겠다. 각설하고, mongo db는 system 영역 내에 admin 이라는 DB 관리를 위한 스키마 영역(database)를 가진다. * 메서드 Name에 대소문자 구분 주의 # ./mongo #.. 더보기
Lightweigh DB - Linux에서 MongoDB c++ 어플리케이션 개발하기 개발도구는 Sun Studio 12.1 로 해 보자(NetBeans 6.8도 가능) 개발을 위한 컴파일러는 gcc 4.1* 이상이어야 한다. 우선 mongoDB 다운로드 & 설치 - www.mongodb.org 에서 mongodb binary 또는 소스를 받아서 설치한다 - 소스 설치시는 의존성에 걸리는 빌드도구들을 여러가지 받아서 설치해야한다. 특히 scons 가 필수인데 Ubuntu, centOS에서는 숫한 삽질을 통해 scons 소스를 컴파일해서 빌드한 기억이 난다. 우여곡절 끝에 mongodb를 다음과 같이 빌드할 수 있다 # scons --prefix /usr/service/mongo install - mongodb 는 rpm 같은 패키징이 없이 tar.gz binary 압축해제/복사 또는 so.. 더보기