1. 서버 설정/정보 확인하기

/* 서버 빌드 정보 (버전 포함) */
db.serverBuildInfo();

/* 서버 런타임 정보 (시스템 정보) */
db.serverStatus();

/* 실행 옵션 (MongoDB 설정) */
db.serverCmdLineOpts();

/* 해당 DB 의 Storage 정보 (간략 정보) */
db.stats();


2. Replica Set 정보 확인하기

/* Replica Set 멤버 설정 */

rs.conf();


/* Replica Set 멤버 상태 */

rs.status();



Posted by jungtae17
,

1. 설정 파일에 ReplicaSet 옵션을 추가한다.

replication:
  replSetName: {ReplicaSet이름}

2. MongoDB 서버 실행 후 Primary 가 될 MongoDB 서버로 접속한다.

   a. ReplicaSet 초기화한다.
rs.initiate();

   b. Primary 이름을 변경한다.
conf = rs.conf();

conf.members[0].host = "IP주소:포트";

rs.reconfig(conf);
   참고> MongoDB 는 hostname 을 기본 값으로 사용하기 때문에 문제가 생기는 경우가 있음.

3. ReplicaSet 멤버를 추가한다.

/* 일반 멤버 추가 */
rs.add("IP주소:포트");

/* Arbiter 멤버 추가 */
rs.addArb("IP주소:포트");


4. Delayed 멤버를 설정해야 될 경우

conf = rs.conf();

conf.members[{멤버번호}].hidden = true;
conf.members[{멤버번호}].priority = NumberInt(0);
conf.members[{멤버번호}].slaveDelay = NumberLong({지연시간(초)});

rs.reconfig(conf);



Posted by jungtae17
,

1. Collection Export

mongoexport \
  --host {ReplicaSet이름}/{호스트:포트,...} \
  --readPreference primary \
  --username {사용자계정} \
  --password {비밀번호} \
  --authenticationDatabase admin \
  --db {DB이름} \
  --collection {Collection이름} \
  --out {출력파일}



2. Collection Import

mongoimport \
  --host {ReplicaSet이름}/{호스트:포트,...} \
  --writeConcern 1 \
  --username {사용자계정} \
  --password {비밀번호} \
  --authenticationDatabase admin \
  --db {DB이름} \
  --collection {Collection이름} \
  --drop \
  --file {입력파일}



Posted by jungtae17
,

1. DB 또는 Collection 백업하기

mongodump \

  --host={호스트:포트} \

  --readPreference=secondary \

  --username={관리자계정} \

  --password={비밀번호} \

  --authenticationDatabase=admin \

  --db={DB이름} \

  --collection={Collection이름} \

  --query='{DB 쿼리 조건}' \

  --gzip \

  --out={결과가 저장될 경로명}

  --archive={결과가 저장될 파일명}


옵션> --out--archive 옵션은 중복 사용할 수 없음


참고> https://docs.mongodb.com/manual/reference/program/mongodump/


2. 복원하기

mongorestore ^

  --host={호스트:포트} ^

  --db={DB이름} ^

  --collection={Collection이름} ^

  --drop ^

  --gzip ^

  {복원될 데이터가 있는 경로명}

  --archive={복원될 데이터가 있는 파일명}


옵션> 복원할 경로명--archive 옵션은 중복 사용할 수 없음


참고> https://docs.mongodb.com/manual/reference/program/mongorestore/


Posted by jungtae17
,

1. munin-node 패키지 설치하기


sudo apt-get -y install munin-node


sudo /etc/init.d/munin-node stop


2. iostat 관련 플러그인 설정하기


sudo ln -s /usr/share/munin/plugins/iostat /etc/munin/plugins/iostat

sudo ln -s /usr/share/munin/plugins/iostat_ios /etc/munin/plugins/iostat_ios


sudo vi /etc/munin/plugin-conf.d/munin-node


[iostat]
env.SHOW_NUMBERED 1

<or>

sudo echo -e "\n[iostat]\nenv.SHOW_NUMBERED 1\n" \
    >> /etc/munin/plugin-conf.d/munin-node


sudo touch /var/lib/munin-node/plugin-state/iostat-ios.state

sudo chown -R root:root /var/lib/munin-node/plugin-state/

sudo chmod -R 766 /var/lib/munin-node/plugin-state/


3. 접속 허용 IP 설정하기


sudo vi /etc/munin/munin-node.conf


allow ^192\.168\.0\.[0-9]+$

<or>

sudo echo -e "\n# Allow Local Network\nallow ^192\.168\.0\.[0-9]+$\n" \
    >> /etc/munin/munin-node.conf


4. munin-node 실행하기


sudo /etc/init.d/munin-node start


5. 접속 테스트


telnet {호스트주소} 4949



Posted by jungtae17
,

새로운 DB로 백업 DB를 전체 복구하는 방법


1. 새로운 DB 설치를 위하여 MongoDB 서버를 실행한다. (DB 생성, 인증 생략)

mongod.exe ^
  --port 27017 ^
  --dbpath "{새로운 DB 경로}" ^
  --directoryperdb ^
  --noauth ^
  --rest

2. 백업된 DB를 복구한다. (전체 복구)

mongorestore.exe ^
  /port 27017 ^
  /drop ^
  "{백업 DB 경로}"

3. 재시작을 위하여 MongoDB 서버를 종료한다.


4. 운영을 위한 MongoDB 서버를 실행한다. (인증 포함)

mongod.exe ^

  --port 27017 ^

  --dbpath "{새로운 DB 경로}" ^

  --directoryperdb ^

  --auth ^

  --rest



Posted by jungtae17
,

MongoDB 처음 설치 후 관리자를 등록하는 방법(보안 설정)


1. MongoDB 서버 실행

접근 제어 없이 실행

mongod.exe --port 27017 --dbpath "DB 경로"


2. MongoDB 클라이언트 실행

: 로그인 없이 MongoDB 서버 접속

mongo.exe --port 27017


3. 관리자 등록

use admin;


db.createUser({

    user: "관리자 ID",

    pwd: "관리자 암호",

    roles: [ { role: "root", db: "admin" } ]

});


4. MongoDB 서버 재실행

: 접근 제어 설정 (--auth 옵션)

mongod.exe --auth --port 27017 --dbpath "DB 경로"


5. MongoDB 클라이언트 실행

: 등록한 관리자 정보로 연결

mongo.exe --port 27017 -u "관리자ID" -p "관리자암호" "admin"


6. 작업용 사용자 추가



참고1> https://docs.mongodb.org/manual/tutorial/enable-authentication/#add-users-before-enabling-access-control


참고2> https://docs.mongodb.org/manual/tutorial/enable-authentication/#add-users-after-enabling-access-control



Posted by jungtae17
,

1. 설정 파일 만들기 (예: D:\DB\mongod.conf)

systemLog:

  destination: file

  path: "D:\\DB\\mongod.log"

  logAppend: true


storage:

  dbPath: "D:\\DB"

  directoryPerDB: true


setParameter:

  enableLocalhostAuthBypass: false


net:

  http:

    enabled: true

    RESTInterfaceEnabled: true


security:

  authorization: enabled


2. Windows 서비스 등록하기

mongod ^

  --install ^

  --serviceName "MongoDB" ^

  --serviceDisplayName "MongoDB(개발용)" ^

  --serviceDescription "개발용 MongoDB 입니다." ^

  --config "D:\DB\mongod.conf"


3. MongoDB 서비스 시작하기

NET START MongoDB



Posted by jungtae17
,