Config Database
์ด ํ์ด์ง์ ๋ด์ฉ
config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปฌ๋ ์
์ ๋ค์์ ์ง์ํฉ๋๋ค.
๋ ๋ฆฝํ, ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์ ๊ณผ ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ ์ฌ์๋ ๊ฐ๋ฅ ์ฐ๊ธฐ.
์ฐธ๊ณ
์ค๋ฉ๋ cluster๋ mongos
์ ์ฐ๊ฒฐํ๋์ง ๋๋
mongod
์ ์ฐ๊ฒฐํ๋์ง์ ๋ฐ๋ผ config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค๋ฅธ collection์ด ํ์๋ ์ ์์ต๋๋ค.
mongos
์์config
๋ฐ์ดํฐ๋ฒ ์ด์ค๋collections
๋๋chunks
์ ๊ฐ์ config ์๋ฒ์ ์๋ ์ปฌ๋ ์ ์ ํ์ํฉ๋๋ค.
mongod
์์config
๋ฐ์ดํฐ๋ฒ ์ด์ค๋migrationCoordinators
๋๋rangeDeletions
์ ๊ฐ์ด ์ง์ ๋ ์ค๋์ ๊ด๋ จ๋ ์ปฌ๋ ์ ์ ํ์ํฉ๋๋ค
config ์๋ฒ์ ์ค๋๊ฐ ๋์ผํ ๋
ธ๋์์ ํธ์คํ
๋๋ ๊ฒฝ์ฐ mongos
๊ฐ config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๋ถ ์ค๋ ๋ก์ปฌ collection์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ ํ ์ฌํญ
MongoDB 5.0๋ถํฐ๋ ๋ค์๊ณผ ๊ฐ์ ์ฝ๊ธฐ ๊ณ ๋ ค ์ฌํญ ๋ฐ ์ต์
์ด ์๋ config.transactions
์ปฌ๋ ์
์์ ํธ๋์ญ์
์ด ์๋ ์ฝ๊ธฐ๊ฐ ํ์ฉ๋์ง ์์ต๋๋ค.
"majority"
์ด๊ณafterClusterTime ์ต์ ์ด ์ค์ ๋์ด ์์ต๋๋ค.
์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด๋ ์ธ์ ๋ด์์ MongoDB ๋๋ผ์ด๋ฒ
๋ฐ
"majority"
๋ฅผ ์ฌ์ฉํ ๋
์ค์
config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง๋ ๋ด๋ถ์ ์ด๋ฉฐ, ๋ฆด๋ฆฌ์ค ๊ฐ์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. config
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ขฐํ ์ ์๋ API๊ฐ ์๋๋ฏ๋ก ์ฌ์ฉ์๋ ์ ์์ ์ธ ์ด์ ๋๋ ์ ์ง ๊ด๋ฆฌ ๊ณผ์ ์์ config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด์๋ ์ ๋ฉ๋๋ค.
์ฐธ๊ณ
๋ค์ค ๋ฌธ์ ํธ๋์ญ์
๋ด์์ config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปฌ๋ ์
์๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ์์
์ ์ํํ ์ ์์ต๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ด์์ ์ง์ํ๋ ์ปฌ๋ ์
config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ์ฌ ์ค๋ฉ ์์
์ ์ง์ํ๋ ์ปฌ๋ ์
๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด mongosh
๋ฅผ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ mongos
์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ค์์ ์คํํฉ๋๋ค.
use config show collections
์ฐธ๊ณ
์ก์ธ์ค ์ ์ด์ ํจ๊ป ์คํํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด listCollections
์กฐ์น๋ฅผ ๋ถ์ฌํ๋ ๊ถํ์ด ์๋์ง ํ์ธํ์ธ์.ํฉ๋๋ค.
config ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฃผ๋ก ๋ด๋ถ์ฉ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ์ผ๋ฐ์ ์ธ ์์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ฝ์ ํ๊ฑฐ๋ ์ ์ฅํด์๋ ์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ config ์๋ฒ์ ์ฐ๊ธฐ ๊ฐ์ฉ์ฑ์ ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ํด๋น ์ด๋ฆ์ ์ปฌ๋ ์ ์ด ์ด๋ฏธ ์กด์ฌํ์ง ์๋์ง ํ์ธํ ํ ํ ์คํธ ์ปฌ๋ ์ ์ ๋ฌธ์๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค.
๊ฒฝ๊ณ
์๋ ์ค์ธ ์์คํ
์์ config
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ ํ๋ฉด ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋ถ์์ ํด์ง๊ฑฐ๋ ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค. config
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ mongodump
๋ฅผ ์ฌ์ฉํ์ฌ config
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด ๋ฐฑ์
์ ๋ง๋ญ๋๋ค.
db.testConfigServerWriteAvail.insertOne( { a : 1 } )
์์ ์ด ์ฑ๊ณตํ๋ฉด config ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
ํฅํ ์๋ฒ ๋ฆด๋ฆฌ์ค์์๋ config ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค๋ฅธ ์ปฌ๋ ์ ์ด ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ํ ์คํธ ์ปฌ๋ ์ ์ ์ด๋ฆ์ ์ ํํ ๋ ์ฃผ์ํ์ธ์.
MongoDB๋ ์ค๋ฉ์ ์ง์ํ๊ธฐ ์ํด config
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ค์ ์ปฌ๋ ์
์ ์ฌ์ฉํฉ๋๋ค.
config.changelog
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
changelog
์ปฌ๋ ์ ์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๊ฐ ๋ฉํ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค.์์
๋ค์ ์์์์๋
changelog
์ปฌ๋ ์ ์์ ๋ถํ ๋ ์ฒญํฌ์ ๋จ์ผ ๋ ์ฝ๋๋ฅผ ํ์ํฉ๋๋ค.{ "_id" : "<hostname>-<timestamp>-<increment>", "server" : "<hostname><:port>", "clientAddr" : "127.0.0.1:63381", "time" : ISODate("2012-12-11T14:09:21.039Z"), "what" : "split", "ns" : "<database>.<collection>", "details" : { "before" : { "min" : { "<database>" : { $minKey : 1 } }, "max" : { "<database>" : { $maxKey : 1 } }, "lastmod" : Timestamp(1000, 0), "lastmodEpoch" : ObjectId("000000000000000000000000") }, "left" : { "min" : { "<database>" : { $minKey : 1 } }, "max" : { "<database>" : "<value>" }, "lastmod" : Timestamp(1000, 1), "lastmodEpoch" : ObjectId(<...>) }, "right" : { "min" : { "<database>" : "<value>" }, "max" : { "<database>" : { $maxKey : 1 } }, "lastmod" : Timestamp(1000, 2), "lastmodEpoch" : ObjectId("<...>") }, "owningShard" : "<value>" } } changelog
์ปฌ๋ ์ ์ ๊ฐ ๋ฌธ์์๋ ๋ค์ ํ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.config.changelog.clientAddr
ํด๋ผ์ด์ธํธ์ ์ฃผ์๋ฅผ ๋ณด์ ํ๋ ๋ฌธ์์ด๋ก, ์ด ๋ณ๊ฒฝ์ ์์ํ๋
mongos
์ธ์คํด์ค์ ๋๋ค.
config.changelog.time
๋ณ๊ฒฝ์ด ๋ฐ์ํ ์์ ์ ๋ฐ์ํ๋ ISODate ํ์์คํฌํ์ ๋๋ค.
config.chunks
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
config.chunks
์ปฌ๋ ์ ์ ํด๋ฌ์คํฐ์ ๊ฐ ์ฒญํฌ์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ค์ ์์๋ ๋ฌธ์๋ฅผ ๋ณด์ฌ์ค๋๋ค.{ _id: ObjectId('65a954c0de11596e08e7c1dc'), uuid: UUID('a4479215-a38d-478f-a82b-e5e95d455e55'), min: { a: Long('121204345') }, max: { a: Long('993849349') }, shard: 'shard01', lastmod: Timestamp({ t: 1, i: 0 }), history: [ { validAfter: Timestamp({ t: 1705596095, i: 14 }), shard: 'shard01' } ] } ๋ฌธ์์์ ๋ค์์ ์ํํฉ๋๋ค.
_id
๋ ์ฒญํฌ ์๋ณ์์ ๋๋ค.min
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋๋ก ๋ช ์์ ์ผ๋ก ์์ํ๋ฉฐmax
์(๋) ์ฒญํฌ์ ์ค๋ ํค์ ๋ํ ๊ฐ ๋ฒ์์ ๋๋ค.shard
์(๋) ํด๋ฌ์คํฐ์ ์ฒญํฌ๋ฅผ ์ ์ฅํ๋ ์ค๋์ ์ด๋ฆ์ ๋๋ค.
ํ
์ปฌ๋ ์ ์์ ์ฒญํฌ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด
config.collections
์ปฌ๋ ์ ์์ ์ปฌ๋ ์ ์
uuid
์๋ณ์๋ฅผ ์กฐํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์
uuid
๋ฅผ ์ฌ์ฉํ์ฌconfig.chunks
์ปฌ๋ ์ ์์ ๋์ผํuuid
๋ฅผ ๊ฐ์ง ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์กฐํํฉ๋๋ค.
config.collections
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
MongoDB 8.0๋ถํฐ
config.collections
๋moveCollection
์ผ๋ก ์ด๋๋ ๋ชจ๋ ์ค๋ฉ๋ ์ปฌ๋ ์ ๋ฐ ์ค๋ฉ๋์ง ์์ ์ปฌ๋ ์ ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
8.0 ์ด์ ์ MongoDB ๋ฒ์ ์์
config.collections
๋ ์ค๋ฉ๋ ์ปฌ๋ ์ ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ง ์ ์ฅํฉ๋๋ค.config.collections
์(๋) ์ปฌ๋ ์ ์ ์ ์ฅ๋ ๋ฌธ์๊ฐ ์๋ ์ปฌ๋ ์ ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ง ์ ์ฅํฉ๋๋ค.records
๋ฐ์ดํฐ๋ฒ ์ด์ค์pets
๋ผ๋ ์ปฌ๋ ์ ์ด ์๋ ๊ฒฝ์ฐcollections
์ปฌ๋ ์ ์ ๋ฌธ์๋ ๋ค์๊ณผ ์ ์ฌํฉ๋๋ค.{ "_id" : "records.pets", "lastmod" : ISODate("2021-07-21T15:48:15.193Z"), "timestamp": Timestamp(1626882495, 1), "key" : { "a" : 1 }, "unique" : false, "lastmodEpoch" : ObjectId("5078407bd58b175c5c225fdc"), "uuid" : UUID("f8669e52-5c1b-4ea2-bbdc-a00189b341da") }
config.csrs.indexes
๋ฒ์ 7.0์ ์ถ๊ฐ.
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
indexes
์ปฌ๋ ์ ์ ์ค๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ ๊ธ๋ก๋ฒ ์ธ๋ฑ์ค์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค.์ปฌ๋ ์ ์ ๊ฐ ๋ฌธ์์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
ํ๋๋ฐ์ดํฐ ์ ํ์ค๋ชname
๋ฌธ์์ด
๊ธ๋ก๋ฒ ์ธ๋ฑ์ค์ ์ด๋ฆ์ ๋๋ค.
keyPattern
๋ฌธ์
์ธ๋ฑ์ค ํค ์ฌ์์ ๋๋ค.
options
๋ฌธ์
์ธ๋ฑ์ค๊ฐ ๊ธ๋ก๋ฒ ์ธ๋ฑ์ค์ธ์ง ์ฌ๋ถ ๋ฑ ์ง์ ๋ ์ธ๋ฑ์ค ์ต์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
lastmod
ํ์์คํฌํ
์ธ๋ฑ์ค๊ฐ ๋ง์ง๋ง์ผ๋ก ์์ ๋ ์์ ๊ณผ ์ธ๋ฑ์ค ๋ฒ์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ํ์์คํฌํ์ ๋๋ค.
collectionUUID
UUID
์ค๋ฉ๋ ์ปฌ๋ ์ ์ UUID.
indexCollectionUUID
UUID
๊ธ๋ก๋ฒ ์ธ๋ฑ์ค๋ฅผ ์ถ์ ํ๋ ์ธ์ปจ๋๋ฆฌ ์ปฌ๋ ์ ์ UUID.
config.databases
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
databases
์ปฌ๋ ์ ์ ํด๋ฌ์คํฐ์ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค.๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ํด๋น ๋ฌธ์์๋ ์ด๋ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋ ๋ฐ ๋ฒ์ ์ด ํ์๋ฉ๋๋ค.
{ "_id" : "test", "primary" : "shardA", "version" : { "uuid" : UUID("516a5f79-5eb9-4844-8ee9-b8e9de91b760"), "timestamp" : Timestamp(1626894204, 1), "lastMod" : 1 } } { "_id" : "hr", "primary" : "shardA", "version" : { "uuid" : UUID("8e39d61d-6259-4c33-a5ed-bcd2ae317b6f"), "timestamp" : Timestamp(1626895015, 1), "lastMod" : 1 } } { "_id" : "reporting", "primary" : "shardB", "version" : { "uuid" : UUID("07c63242-51b3-460c-865f-a67b3372d792"), "timestamp" : Timestamp(1626895826, 1), "lastMod" : 1 } } sh.status()
๋ฉ์๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์น์ ์ ์ด ์ ๋ณด๋ฅผ ๋ฐํํฉ๋๋ค.
config.migrationCoordinators
migrationCoordinators
์ปฌ๋ ์ ์ ๊ฐ ์ค๋์ ์กด์ฌํ๋ฉฐ ์ด ์ค๋์์ ๋ค๋ฅธ ์ค๋๋ก ์งํ ์ค์ธ ๊ฐ ์ฒญํฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ฌธ์๋ฅผ ์ค๋์ ๋ณต์ ๋ณธ ์ธํธ์ ์๋ ๋๋ถ๋ถ์ ๋ ธ๋์ ์ธ ์ ์๋ ๊ฒฝ์ฐ ์ฒญํฌ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์คํจํฉ๋๋ค.๋ง์ด๊ทธ๋ ์ด์ ์ด ์๋ฃ๋๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ์ ์ค๋ช ํ๋ ๋ฌธ์๊ฐ ์์ ์ญ์ ๋ฉ๋๋ค.
config.mongos
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
mongos
์ปฌ๋ ์ ์ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ๋ ๊ฐmongos
์ธ์คํด์ค์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค. ํด๋ฌ์คํฐ๋ ๋ณด๊ณ ๋ชฉ์ ์ผ๋ก ์ด ์ปฌ๋ ์ ์ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค.mongos
์ปฌ๋ ์ ์ ๊ฐ ๋ฌธ์์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.ํ๋๋ฐ์ดํฐ ์ ํ์ค๋ช_id
๋ฌธ์์ด
mongos
์คํ ์ค์ธ ํธ์คํธ ์ด๋ฆ ๋ฐ ํฌํธ์ ๋๋ค. ํ์์_id
<hostname>:<port>
๋ก ์ง์ ๋ฉ๋๋ค.advisoryHostFQDNs
๋ฌธ์์ด ๋ฐฐ์ด
mongos
์ ์ ๊ทํ๋ ๋๋ฉ์ธ ์ด๋ฆ (FQDN) ์ ๋ฐฐ์ด.created
๋ ์ง
mongos
๊ฐ ์์๋ ์๊ฐ์ ๋๋ค.๋ฒ์ 5.2์ ์ถ๊ฐ๋์์ต๋๋ค.
mongoVersion
๋ฌธ์์ด
mongos
๊ฐ ์คํ ์ค์ธ MongoDB ๋ฒ์ ์ ๋๋ค.ping
๋ ์ง
mongos
์ธ์คํด์ค๋ 30์ด๋ง๋ค ๊ตฌ์ฑ ์๋ฒ์ ping์ ๋ณด๋ ๋๋ค. ์ด ํ๋๋ ๋ง์ง๋ง ํ ์๊ฐ์ ๋ํ๋ ๋๋ค.up
NumberLong
๋ง์ง๋ง ํ์ ๊ธฐ์ค์ผ๋ก
mongos
๊ฐ ์๋ํ ์๊ฐ (์ด) ์ ๋๋ค.waiting
๋ถ์ธ
์ด ํ๋๋ ํญ์
true
์ด๋ฉฐ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ํด์๋ง ํฌํจ๋ฉ๋๋ค.๋ค์ ๋ฌธ์๋
example.com:27017
์์ ์คํ๋๋
mongos
์ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
[ { _id: 'example.com:27017', advisoryHostFQDNs: [ "example.com" ], created: ISODate("2021-11-22T16:32:13.708Z"), mongoVersion: "5.2.0", ping: ISODate("2021-12-15T22:09:23.161Z"), up: Long("2007429"), waiting: true } ]
config.rangeDeletions
rangeDeletions
์ปฌ๋ ์ ์ ๊ฐ ์ค๋์ ์กด์ฌํ๋ฉฐ ๊ณ ์ ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฐ ์ฒญํฌ ๋ฒ์์ ๋ํ ๋ฌธ์๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ฌธ์๋ฅผ ์ค๋์ ๋ณต์ ๋ณธ ์ธํธ์ ์๋ ๋๋ถ๋ถ์ ๋ ธ๋์ ์ธ ์ ์๋ ๊ฒฝ์ฐ ์ฒญํฌ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์คํจํฉ๋๋ค.๋ถ๋ฆฌ๋ ์ฒญํฌ ๋ฒ์๊ฐ ์ ๋ฆฌ๋๋ฉด ๋ฒ์๋ฅผ ์ค๋ช ํ๋ ๋ฌธ์๊ฐ ์ปฌ๋ ์ ์์ ์ญ์ ๋ฉ๋๋ค.
config.settings
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
settings
์ปฌ๋ ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฉ ๊ตฌ์ฑ ์ค์ ์ด ์์ต๋๋ค.๋ฒ์ ํฌ๊ธฐ. ๋ฒ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ค๋ฉ๋ ํด๋ฌ์คํฐ์์ ๋ฒ์ ํฌ๊ธฐ ์์ ์ ์ฐธ์กฐํ์ธ์. ์ง์ ํ
chunksize
๊ฐ์ ๋ฉ๊ฐ๋ฐ์ดํธ ๋จ์์ ๋๋ค.๋ฐธ๋ฐ์ ์ค์ . ๋ฐธ๋ฐ์ ์ํ๋ฅผ ํฌํจํ ๋ฐธ๋ฐ์ ์ค์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ฐธ๋ฐ์ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Autosplit:
MongoDB 6.0.3๋ถํฐ ์๋ ์ฒญํฌ ๋ถํ ์ด ์ํ๋์ง ์์ต๋๋ค. ์ด๋ ๋ฐธ๋ฐ์ฑ ์ ์ฑ ๊ฐ์ ๋๋ฌธ์ ๋๋ค. ์๋ ๋ถํ ๋ช ๋ น์ด ์ฌ์ ํ ์กด์ฌํ์ง๋ง ์์ ์ ์ํํ์ง ์์ต๋๋ค.
6.1 ์ด์ MongoDB ๋ฒ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
balancerStart
์(๋) ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ ์๋ ๋ถํ ๋ ํ์ฑํํฉ๋๋ค.balancerStop
์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํ ์๋ ๋ถํ ๋ ๋นํ์ฑํํฉ๋๋ค.์๋ ๋ถํ ํ๋๊ทธ๋ฅผ ํ์ฑํ ๋๋ ๋นํ์ฑํํ๋ ค๋ฉด ํด๋น
sh.enableAutoSplit()
๋ฉ์๋ ๋๋sh.disableAutoSplit()
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
settings
์ปฌ๋ ์ ๋ด์ ์์ ๋ฌธ์์ ๋๋ค.{ "_id" : "chunksize", "value" : 64 } { "_id" : "balancer", "mode" : "full", "stopped" : false }
config.shards
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
shards
์ปฌ๋ ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํด๋ฌ์คํฐ์ ๊ฐ ์ค๋๋ฅผ ๋ณ๋์ ๋ฌธ์๋ก ๋ํ๋ ๋๋ค.{ "_id" : "shard0000", "host" : "localhost:30000", "state" : 1 } ์ค๋๊ฐ ๋ณต์ ๋ณธ ์ธํธ์ธ ๊ฒฝ์ฐ
host
ํ๋์๋ ๋ค์ ์์ ๊ฐ์ด ๋ณต์ ๋ณธ ์ธํธ์ ์ด๋ฆ๊ณผ ์ฌ๋์, ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ณต์ ๋ณธ ์ธํธ์ ๊ฐ ๋ฉค๋ฒ์ ํธ์คํธ ์ด๋ฆ ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.{ "_id" : "shard0001", "host" : "shard0001/localhost:27018,localhost:27019,localhost:27020", "state" : 1 } ์ค๋์ ๊ตฌ์ญ์ด ํ ๋น๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์์๋ ๋ค์ ์์ ๊ฐ์ด ๊ตฌ์ญ์ด ํ ๋น๋ ๊ตฌ์ญ์ ๋ฐฐ์ด์ด ํฌํจ๋
tags
ํ๋๊ฐ ์์ต๋๋ค.{ "_id" : "shard0002", "host" : "localhost:30002", "state" : 1, "tags": [ "NYC" ] }
config.tags
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
tags
์ปฌ๋ ์ ์ ํด๋ฌ์คํฐ์ ๊ฐ ์์ญ ๋ฒ์์ ๋ํ ๋ฌธ์๋ฅผ ๋ณด์ ํฉ๋๋ค.tags
์ปฌ๋ ์ ์ ๋ฌธ์๋ ๋ค์๊ณผ ์ ์ฌํฉ๋๋ค.{ "_id" : { "ns" : "records.users", "min" : { "zipcode" : "10001" } }, "ns" : "records.users", "min" : { "zipcode" : "10001" }, "max" : { "zipcode" : "10281" }, "tag" : "NYC" }
config.version
ํ
๋ด๋ถ MongoDB ๋ฉํ๋ฐ์ดํฐ
๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ฆฌ์๋ ์ ์์ ์ธ ์ด์ ๊ณผ์ ์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์์ ํ๊ฑฐ๋ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
version
์ปฌ๋ ์ ์๋ ํ์ฌ ๋ฉํ๋ฐ์ดํฐ ๋ฒ์ ๋ฒํธ๊ฐ ์์ต๋๋ค. ์ด ์ปฌ๋ ์ ์๋ ๋ฌธ์๊ฐ ํ๋๋ง ํฌํจ๋์ด ์์ต๋๋ค. ์์:{ "_id" : 1, "minCompatibleVersion" : 5, "currentVersion" : 6, "clusterId" : ObjectId("5d8bc01a690d8abbd2014ddd") } version
์ปฌ๋ ์ ์ ์ก์ธ์คํ๋ ค๋ฉดdb.getCollection()
๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ปฌ๋ ์ ์ ๋ฌธ์๋ฅผ ์กฐํํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.db.getCollection("version").find()
์ธ์ ์ ์ง์ํ๋ ์ปฌ๋ ์
config
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋
๋ฆฝํ, ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํด ์ธ๊ณผ์ ์ผ๋ก ์ผ๊ด์ ์ธ ์ธ์
๊ณผ ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํด ์ฌ์๋ ๊ฐ๋ฅ ์ฐ๊ธฐ ๋ฐ ํธ๋์ญ์
์ ์ง์ํ๊ธฐ ์ํ ๋ด๋ถ ์ปฌ๋ ์
์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ฒฝ๊ณ
์ด๋ฌํ ์ปฌ๋ ์ ์ ์๋์ผ๋ก ์์ ํ๊ฑฐ๋ ์ ๊ฑฐํ์ง ์๋๋ก ํฉ๋๋ค.
mongod
๋๋ mongos
์ธ์คํด์ค์ ๋ํด ์ด๋ฌํ ์ปฌ๋ ์
์ ์ก์ธ์คํ๋ ค๋ฉด mongosh
๋ฅผ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
config.system.sessions
system.sessions
์ปฌ๋ ์ ์ ๋ฐฐํฌ์ ๋ชจ๋ ๋ฉค๋ฒ๊ฐ ์ฌ์ฉํ ์ ์๋ ์ธ์ ๋ ์ฝ๋๋ฅผ ์ ์ฅํฉ๋๋ค.์ฌ์ฉ์๊ฐ
mongod
๋๋mongos
์ธ์คํด์ค์์ ์ธ์ ์ ๋ง๋ค๋ฉด ์ธ์ ์ฒ์์๋ ์ ๊ธฐ๋ก์ด ์ธ์คํด์ค์ ์ธ๋ฉ๋ชจ๋ฆฌ์๋ง ์กด์ฌํฉ๋๋ค. ์ธ์คํด์ค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์บ์๋ ์ธ์ ์system.sessions
์ปฌ๋ ์ ์ ๋๊ธฐํํ๋ฉฐ, ์ด ๋ ๋ฐฐํฌ์ ๋ชจ๋ ๋ฉค๋ฒ๊ฐ ํด๋น ์ธ์ ์ ๋ณผ ์ ์์ต๋๋ค.system.sessions
์ปฌ๋ ์ ์ ๋ ์ฝ๋๋ฅผ ๋ณด๋ ค๋ฉด$listSessions
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฒฝ๊ณ
system.sessions
์ปฌ๋ ์ ์ ์๋์ผ๋ก ์์ ํ๊ฑฐ๋ ์ ๊ฑฐํ์ง ์๋๋ก ํฉ๋๋ค.์ค๋ฉ๋ ํด๋ฌ์คํฐ์์๋
system.sessions
collection์ด ์ค๋ฉ๋ฉ๋๋ค.์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ค๋๋ฅผ ์ถ๊ฐํ ๋, ์ถ๊ฐํ ์ค๋์ ์์ฒด
system.sessions
์ปฌ๋ ์ ์ด ์ด๋ฏธ ํฌํจ๋์ด ์์ผ๋ฉด MongoDB๋ ์ถ๊ฐ ํ๋ก์ธ์ค ์ค์ ์ ์ค๋์system.sessions
์ปฌ๋ ์ ์ ์ ๊ฑฐํฉ๋๋ค.
config.transactions
์ปฌ๋ ์ ์ ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์
transactions
๋ํด ์ฌ์๋ ๊ฐ๋ฅ ์ฐ๊ธฐ ๋ฐ ํธ๋์ญ์ ์ ์ง์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ก์ ์ ์ฅํฉ๋๋ค.๊ฒฝ๊ณ
transactions
์ปฌ๋ ์ ์ ์๋์ผ๋ก ์์ ํ๊ฑฐ๋ ์ ๊ฑฐํ์ง ์๋๋ก ํฉ๋๋ค.