sharding 되어 있지 않은(shard key 설정이 안된) 데이타가 들어 있는 collection에 shard key 를 설정 하려고 했다.

 

명령어 :  sh.shardCollection("데이타베이스.컬렉션명",{_id:"hashed"});

결과 :

{
"ok" : 0,
"errmsg" : "Please create an index that starts with the proposed shard key before sharding the collection",
"code" : 72,
"codeName" : "InvalidOptions",
"operationTime" : Timestamp(1557813436, 4),
"$clusterTime" : {
"clusterTime" : Timestamp(1557813436, 4),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}

 

그래서 index 2개를 생성 하였다.

db.컬렉션명.createIndex({_id:1});
db.컬렉션명.createIndex({_id:"hashed"});

 

그리고 실행 

sh.shardCollection("데이타베이스.컬렉션명",{_id:"hashed"});

하니 잘되네~시간이 좀 걸리지만 점점 데이타가 맞춰진다.

 

Posted by 복태아빠
,

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+ MONGODB REPLICA SET AND SHARDING GUIDE
+ h/w 1개에 모두 설치. 예제. h/w 가 여러대이면, ip / port 만 바끼면됨.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

conf 파일 문법, YML -  띠어쓰기 간격 중요.

#CONTENTS
1.REPLICA SET 구성.
1.1 rs0 구성.
1.1.1 rs0/mongod1          port:30001
1.1.2 rs0/mongod2          port:30002
1.1.3 rs0/arbiter          port:30003
1.1.4 rs0 replica set 설정
1.1.5 rs0 Arbiter 추가
1.2 rs1 구성.
1.2.1 rs1/mongod1          port:30004
1.2.2 rs1/mongod2          port:30005
1.2.3 rs1/arbiter          port:30006
1.2.4 rs1 replica set 설정
1.2.5 rs1 Arbiter 추가
1.3 rs2 구성.
1.3.1 rs2/mongod1          port:30007
1.3.2 rs2/mongod2          port:30008
1.3.3 rs2/arbiter          port:30009
1.3.4 rs2 replica set 설정
1.3.5 rs2 Arbiter 추가
2.CONFIG SERVER 구성.
2.1 cs0 구성          port:30010
2.2 cs1 구성          port:30020
2.3 cs2 구성          port:30030
2.4 config server replica set 설정
3.MONGOS ROUTER 구성.
3.1 mongos 구성.          port:30000
3.2 sharding 설정.
4.전체 start/stop

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.1 rs0 구성.
1.1.1 rs0/mongod1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs0/mongod1/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs0/mongod1/mongod1.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs0/mongod1"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs0_mongod1.pid"
net:
   port: 30001
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs0"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.1 rs0 구성.
1.1.1 rs0/mongod2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs0/mongod2/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs0/mongod2/mongod2.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs0/mongod2"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs0_mongod2.pid"
net:
   port: 30002
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs0"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.1 rs0 구성.
1.1.3 rs0/arbiter
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs0/arbiter/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs0/arbiter/arbiter.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs0/arbiter"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs0_arbiter.pid"
net:
   port: 30003
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs0"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 #실행 rs0
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs0/mongod1/mongod.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs0/mongod2/mongod.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs0/arbiter/mongod.conf &
 
 #shutdown
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs0/mongod1/mongod.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs0/mongod2/mongod.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs0/arbiter/mongod.conf
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.1 rs0 구성.
1.1.4 rs0 replica set 설정
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 #rs0 replica Set 설정.
 #/home/mongo/mongodb/bin/mongo localhost:30001/admin 접속.(primary 만하면됨)
 #arbiter 를 제외
 rs.initiate(
           {
      _id: "rs0",
      version: 1,
      members: [
         { _id: 0, host : "127.0.0.1:30001" },
         { _id: 1, host : "127.0.0.1:30002" }
      ]
   })

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.1 rs0 구성.
1.1.5 rs0 Arbiter 추가
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 #primary shell 에서 Arbiter 추가.
 #/home/mongo/mongodb/bin/mongo localhost:30001/admin 접속.(primary 만하면됨)
  >rs.addArb("127.0.0.1:30003")
  >rs0:PRIMARY> rs.status()   
================================================================================rs0 구성 완료========================================================


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.2 rs1 구성.
1.2.1 rs1/mongod1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs1/mongod1/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs1/mongod1/mongod1.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs1/mongod1"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs1_mongod1.pid"
net:
   port: 30004
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs1"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.2 rs1 구성.
1.2.1 rs1/mongod2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs1/mongod2/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs1/mongod2/mongod2.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs1/mongod2"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs1_mongod2.pid"
net:
   port: 30005
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs1"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.2 rs1 구성.
1.2.3 rs1/arbiter
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs1/arbiter/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs1/arbiter/arbiter.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs1/arbiter"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs1_arbiter.pid"
net:
   port: 30006
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs1"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 #실행 rs1
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs1/mongod1/mongod.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs1/mongod2/mongod.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs1/arbiter/mongod.conf &
 
 #shutdown
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs1/mongod1/mongod.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs1/mongod2/mongod.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs1/arbiter/mongod.conf
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.2 rs1 구성.
1.2.4 rs1 replica set 설정
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 #rs1 replica Set 설정.
 #/home/mongo/mongodb/bin/mongo localhost:30004/admin 접속.(primary 만하면됨)
 #arbiter 를 제외
 rs.initiate(
           {
      _id: "rs1",
      version: 1,
      members: [
         { _id: 0, host : "127.0.0.1:30004" },
         { _id: 1, host : "127.0.0.1:30005" }
      ]
   })

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.2 rs1 구성.
1.2.5 rs1 Arbiter 추가
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 #primary shell 에서 Arbiter 추가.
 #/home/mongo/mongodb/bin/mongo localhost:30004/admin 접속.(primary 만하면됨)
  >rs.addArb("127.0.0.1:30006")
  >rs1:PRIMARY> rs.status()
  ================================================================================rs1 구성 완료========================================================


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.3 rs2 구성.
1.3.1 rs3/mongod1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs2/mongod1/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs2/mongod1/mongod1.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs2/mongod1"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs2_mongod1.pid"
net:
   port: 30007
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs2"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.3 rs2 구성.
1.3.1 rs2/mongod2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs2/mongod2/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs2/mongod2/mongod2.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs2/mongod2"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs2_mongod2.pid"
net:
   port: 30008
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs2"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.3 rs2 구성.
1.3.3 rs2/arbiter
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/rs2/arbiter/mongod.conf
## 내용 ##
systemLog:
   destination: file
   path: "/home/mongo/mongodb/db/log/rs2/arbiter/arbiter.log"
   logAppend: true
   logRotate: rename
storage:
   engine: wiredTiger
   directoryPerDB: true
   wiredTiger:
      engineConfig:
         journalCompressor: snappy
      collectionConfig:
         blockCompressor: snappy
      indexConfig:
         prefixCompression: true
   dbPath: "/home/mongo/mongodb/db/data/rs2/arbiter"
   journal:
      enabled: true
      commitIntervalMs: 300
processManagement:
   fork: true
   pidFilePath: "/tmp/mongo_rs2_arbiter.pid"
net:
   port: 30009
   bindIpAll: true
   maxIncomingConnections: 20000
   unixDomainSocket:
      enabled: false
replication:
    oplogSizeMB: 10240
    replSetName: "rs2"
setParameter:
    failIndexKeyTooLong: false
sharding:
    clusterRole: shardsvr
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 #실행 rs2
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs2/mongod1/mongod.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs2/mongod2/mongod.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs2/arbiter/mongod.conf &
 
 #shutdown
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs2/mongod1/mongod.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs2/mongod2/mongod.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs2/arbiter/mongod.conf
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.3 rs2 구성.
1.3.4 rs2 replica set 설정
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 #rs2 replica Set 설정.
 #/home/mongo/mongodb/bin/mongo localhost:30007/admin 접속.(primary 만하면됨)
 #arbiter 를 제외
 rs.initiate(
           {
      _id: "rs2",
      version: 1,
      members: [
         { _id: 0, host : "127.0.0.1:30007" },
         { _id: 1, host : "127.0.0.1:30008" }
      ]
   })

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.REPLICA SET 구성.
1.2 rs2 구성.
1.2.5 rs2 Arbiter 추가
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 #primary shell 에서 Arbiter 추가.
 #/home/mongo/mongodb/bin/mongo localhost:30007/admin 접속.(primary 만하면됨)
  >rs.addArb("127.0.0.1:30009")
  >rs2:PRIMARY> rs.status() 

================================================================================rs2 구성 완료========================================================  
================================================================================REPLICA SET 구성 완료================================================

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.CONFIG SERVER 구성.
2.1 cs0 구성          port:30010
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/confsvr/cs0/confsvr.conf
## 내용 ##
storage:
      dbPath: "/home/mongo/mongodb/db/data/cs0"
      journal:
          enabled: true
systemLog:
    destination: file
    path: "/home/mongo/mongodb/db/log/cs0/log.log"
    logAppend: true
processManagement:
    fork: true
net:
    bindIpAll: true
    port: 30010
replication:
    oplogSizeMB: 40960
    replSetName: "cs"
sharding:
    clusterRole: "configsvr"

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.CONFIG SERVER 구성.
2.2 cs1 구성          port:30020
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/confsvr/cs1/confsvr.conf
## 내용 ##
storage:
      dbPath: "/home/mongo/mongodb/db/data/cs1"
      journal:
          enabled: true
systemLog:
    destination: file
    path: "/home/mongo/mongodb/db/log/cs1/log.log"
    logAppend: true
processManagement:
    fork: true
net:
    bindIpAll: true
    port: 30020
replication:
    oplogSizeMB: 40960
    replSetName: "cs"
sharding:
    clusterRole: "configsvr"

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.CONFIG SERVER 구성.
2.3 cs2 구성          port:30030
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/confsvr/cs2/confsvr.conf
## 내용 ##
storage:
      dbPath: "/home/mongo/mongodb/db/data/cs2"
      journal:
          enabled: true
systemLog:
    destination: file
    path: "/home/mongo/mongodb/db/log/cs2/log.log"
    logAppend: true
processManagement:
    fork: true
net:
    bindIpAll: true
    port: 30030
replication:
    oplogSizeMB: 40960
    replSetName: "cs"
sharding:
    clusterRole: "configsvr"

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 #실행 confsvr
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/confsvr/cs0/confsvr.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/confsvr/cs1/confsvr.conf &
 /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/confsvr/cs2/confsvr.conf &
 
 #shutdown
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/confsvr/cs0/confsvr.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/confsvr/cs1/confsvr.conf
 /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/confsvr/cs2/confsvr.conf
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.CONFIG SERVER 구성.
2.4 config server replica set 설정
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#CONFIG SERVER 끼리 REPLICA SET 로 구성.
#/home/mongo/mongodb/bin/mongo localhost:30010/admin 접속.(primary 만하면됨)
 >rs.initiate(
  {
    _id: "cs",
    version: 1,
    members: [
       { _id: 0, host : "127.0.0.1:30010" },
       { _id: 1, host : "127.0.0.1:30020" },
       { _id: 2, host : "127.0.0.1:30030" }
    ]
  })
 >exit
 >재접속
 >rs.status()
================================================================================CONFIG SERVER 구성 완료=============================================  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3.MONGOS ROUTER 구성.
3.1 mongos 구성.          port:30000
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/home/mongo/mongodb/db/config/mongos/mongos.conf
## 내용 ##
sharding:
    configDB: "cs/127.0.0.1:30010,127.0.0.1:30020,127.0.0.1:30030"
systemLog:
    destination: file
    path: "/home/mongo/mongodb/db/log/mongos/mongos.log"
    logAppend: true
processManagement:
    fork: true
net:
    port: 30000
    bindIpAll: true
    maxIncomingConnections: 30000
setParameter:
        ShardingTaskExecutorPoolHostTimeoutMS : 3600000
        ShardingTaskExecutorPoolMaxSize : 20
        ShardingTaskExecutorPoolMinSize : 10

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!!명령어 mongos , mongod 아님!!!!
#실행 mongos
/home/mongo/mongodb/bin/mongos -f /home/mongo/mongodb/db/config/mongos/mongos.conf &
 
#shutdown
/home/mongo/mongodb/bin/mongos --shutdown -f /home/mongo/mongodb/db/config/mongos/mongos.conf
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3.MONGOS ROUTER 구성.
3.2 sharding 설정.          port:30000
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#접속
#/home/mongo/mongodb/bin/mongo localhost:30000/admin
#shard (replica_set) 추가. arbiter 제외.
#sh.addShard("/<:port>,<:port>,…");

>sh.addShard("rs0/127.0.0.1:30001,127.0.0.1:30002")
>sh.addShard("rs1/127.0.0.1:30004,127.0.0.1:30005")
>sh.addShard("rs2/127.0.0.1:30007,127.0.0.1:30008")

#shard db 등록 sharding 할 database
sh.enableSharding("test") 

#chunksize 설정.(default 64) 필요하면 하기.
>use config
#db.settings.save( { _id:"chunksize", value:  } )
>db.settings.save( { _id:"chunksize", value: 32 } )

 

 

ex) sharding key 

sh.shardCollection("test.collection명",{키:"hashed"},false,{numInitialChunks: 1})

sh.shardCollection("test.collection명",{키:1},false)

sh.shardCollection("test.collection명",{_id:"hashed"})

 

#중복된 데이타 제거 - 해당 mongod 에서 실행 해야함.-시간지나면 줄어듬. #primary 에서 해야함. db.runCommand( {cleanupOrphaned: "test.collection명"} ) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++4.전체 start/stop ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

start

/home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs0/mongod1/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs0/mongod2/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs0/arbiter/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs1/mongod1/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs1/mongod2/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs1/arbiter/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs2/mongod1/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs2/mongod2/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/rs2/arbiter/mongod.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/confsvr/cs0/confsvr.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/confsvr/cs1/confsvr.conf & /home/mongo/mongodb/bin/mongod -f /home/mongo/mongodb/db/config/confsvr/cs2/confsvr.conf &

/home/mongo/mongodb/bin/mongos -f /home/mongo/mongodb/db/config/mongos/mongos.conf &

 

stop

 

/home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs0/mongod1/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs0/mongod2/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs0/arbiter/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs1/mongod1/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs1/mongod2/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs1/arbiter/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs2/mongod1/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs2/mongod2/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/rs2/arbiter/mongod.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/confsvr/cs0/confsvr.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/confsvr/cs1/confsvr.conf /home/mongo/mongodb/bin/mongod --shutdown -f /home/mongo/mongodb/db/config/confsvr/cs2/confsvr.conf

#mongos 는 kill -9 pid 로

#/home/mongo/mongodb/bin/mongos --shutdown -f /home/mongo/mongodb/db/config/mongos/mongos.conf​

Posted by 복태아빠
,

예전에 프로젝트 하면서, 이미지를 여러가지 방법으로 가공, 처리 해야하는 경우가 있었다..


그때, 썸네일 화질을 높이기 위해서.. 고민고민 하다가.. 


나중에 어떤 사이트를 참고해서.. 개발한 lib 를 공유해 본다..


https://github.com/icksss/jikimThumbnail

Posted by 복태아빠
,