Category: Databases



MongoDB 기준필드가 다른 도큐먼트 동시에 업데이트

  MongoDB 기준필드가 다른 도큐먼트 동시에 업데이트   MongoDB는 Insert 작업을 하거나 Update를 하거나 할때 여러개의 도큐먼트를 동시에 처리할 수 있는 insertMany, updateMany라는 명령어가 있습니다. 다수의 도큐먼트에 업데이트시 $set 연산자를 이용하여 기준 필드는 정하고 updateMany 명령을...

MongoDB의 데이터베이스, 컬렉션, 도큐먼트

  MongoDB의 데이터베이스, 컬렉션, 도큐먼트 데이터베이스는 컬렉션과 인덱스의 물지적인 모음이며, 동시에 네임스페이스입니다. 데이터베이스 구조는 데이터베이스 > 컬렉션 > 도큐먼트 형식으로 데이터베이스안에 컬렉션, 컬렉션안에 도큐먼트가 있는 구조로 되어있습니다. 도큐먼트안에 실직적인 데이터가 기록되어 있습니다.   데이터베이스 생성...

MongoDB Shard Cluster 구성하기

  MongoDB Shard Cluster 구성하기 MongoDB를 선택하는 큰 이유중에 하나는 바로 클라우드 환경에서 Scale-Out을 통한 부하 분산을 처리하기 위한 것이죠. MongoDB는 제 지인 말로 샤딩에, 샤딩을 위한, 샤딩에 의한! 데이터베이스라고 합니다. 자체적으로 Shard Cluster 기능을...

MongoDB 복제 아키텍처

    MongoDB 복제 아키텍처 MongoDB는 Secondary가 Primary에서 OpLog를 가져온 다음 OpLog를 재생해서 데이터를 동기화합니다. Secondary멤버는 Primary뿐만 아니라 다른 Secondary 멤버의 OpLog를 재생할 수도 있습니다.   OpLog OpLog는 Operation Log의 약자로, MongoDB의 복제를 위해서만 사용됩니다....

MongoDB의 wiredTiger 스토리지 엔진

  MongoDB의 wiredTiger 스토리지 엔진 WiredTiger 스토리지 엔진 WiredTiger 스토리지 엔진은 내부적인 Lock 경합 최소화를 위해서 Hazard-Pointer나 Skip-List와 같은 많은 신기술을 채택하고 있으며, 최신 RDBMS들이 가지고 있는 MVCC와 데이터 파일 압축, 암호화 기능등을 갖추고 있습니다....

MongoDB Replica Set에 Arbiter 추가 및 멤버 제거

  MongoDB Replica Set에 Arbiter 추가 및 멤버 제거 아비터 추가하기 mongodb를 사양이 낮은 남는 서버나 다른 용도의 서버에 mongod을 띄웁니다. 한 노드에 여러개의 mongod를 포트만 다르게 해서 구동할 수 있습니다. 아비터로 쓸 mongod의 config...

MongoDB Replica Set 세부 설정값 조정하기

  Replica Set 세부 설정값 조정하기 복제에 관련된 설정된 값들, 현재 적용된 값을 확인하기 위해 지난 포스팅(MongoDB Replica Set 구성하기)에서 rs.conf() 명령어를 사용하면 된다고 했습니다. rs0:PRIMARY> rs.conf() { “_id” : “rs0”, “version” : 1, “term”...

MongoDB Replica Set 구성하기

MongoDB 레플리카 셋 구성하기 MongoDB의 레플리카 셋 구성 기능은 데이터베이스의 고가용성 환경을 위해 필요한 기술입니다. DB 노드의 장애가 발생하거나, DB에 문제가 발생하는 경우에도 빠르게 장애에 대응하여 복구하는 시간을 줄일수 있는 장점을 갖게 합니다. MongoDB는 자체적인...

PostgreSQL 12 설치 및 PostGIS 설치 (+ pgbouncer 설정)

  오랜만에 포스팅입니다. 늦은 나이에 대학 수업에 직장 야근이 늘다보니 번아웃이 와서 한참 손을 놔버렸었습니다… 학기가 끝나니까 뭔가 빡세게 공부했던 하루하루가 확 풀어져 버려서 느슨하게 되어 버렸네요. 다시금 달려봐야 할것 같네요.   PostGIS 요즘은 새...

MongoDB Document 조회하기

  MongoDB 도큐먼트 조회하기 find() 명령은 컬렉션 안에 도큐먼트들을 넣었으면, 필요할 때 조회를 할 수 있어야 합니다. 조회를 할때 사용하는 명령입니다. > db.COLLECTION_NAME.find( <query>, <projection> ) Parameter Type Describtion query document Optional. 쿼리 연산자를 이용해...