replSetInitiate
์ด ํ์ด์ง์ ๋ด์ฉ
์ ์
replSetInitiate
replSetInitiate
๋ช ๋ น์ ์ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.ํ
mongosh
์์ ์ด ๋ช ๋ น์rs.initiate()
ํฌํผ ๋ฉ์๋๋ฅผ ํตํด์๋ ์คํ ์ ์์ต๋๋ค.ํฌํผ ๋ฉ์๋๋
mongosh
์ฌ์ฉ์์๊ฒ ํธ๋ฆฌํ์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ๋ น๊ณผ ๋์ผํ ์์ค์ ์ ๋ณด๋ฅผ ๋ฐํํ์ง ๋ชปํ ์ ์์ต๋๋ค. ํธ์๊ฐ ํ์ํ์ง ์๊ฑฐ๋ ์ถ๊ฐ ๋ฆฌํด ํ๋๊ฐ ํ์ํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค.replSetInitiate
๋ฅผ ์คํํ๋ ค๋ฉดdb.runCommand( { <command> } )
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.์ฐธ๊ณ
๋ณต์ ๋ณธ ์ธํธ์ ๋ํ
mongod
์ธ์คํด์ค ์ค ํ๋์์๋ง ๋ช ๋ น์ ์คํํ์ญ์์ค.
ํธํ์ฑ
์ด ๋ช ๋ น์ ๋ค์ ํ๊ฒฝ์์ ํธ์คํ ๋๋ ๋ฐฐํฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MongoDB Atlas: ํด๋ผ์ฐ๋์์์ MongoDB ๋ฐฐํฌ๋ฅผ ์ํ ์์ ๊ด๋ฆฌํ ์๋น์ค
์ค์
์ด ๋ช ๋ น์ M0, M2, M5 ๋ฐ M10ํด๋ฌ์คํฐ ์ด์์์ ์ง์๋์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ง์๋์ง ์๋ ๋ช ๋ น์ ์ฐธ์กฐํ์ธ์.
MongoDB Enterprise: MongoDB์ ๊ตฌ๋ ๊ธฐ๋ฐ ์์ฒด ๊ด๋ฆฌ ๋ฒ์
MongoDB Community: MongoDB์ ์์ค ์ฌ์ฉ ๊ฐ๋ฅ ๋ฌด๋ฃ ์์ฒด ๊ด๋ฆฌ ๋ฒ์
๊ตฌ๋ฌธ
๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ๊ฐ์ง๋๋ค:
db.runCommand( { replSetInitiate : <config_document> } )
<config_document>
๋ ๋ณต์ ๋ณธ ์ธํธ์ ๊ตฌ์ฑ์ ์ง์ ํ๋ ๋ฌธ์ ์
๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์์ ๊ฐ๋จํ 3๋
ธ๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ๋ง๋ค ์ ์๋ config ๋ฌธ์์
๋๋ค.
{ _id : <setname>, members : [ {_id : 0, host : <host0>}, {_id : 1, host : <host1>}, {_id : 2, host : <host2>}, ] }
์ค์
๋ณ๊ฒฝ๋ IP ์ฃผ์๋ก ์ธํด ๊ตฌ์ฑ์ด ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด IP ์ฃผ์ ๋์ DNS ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ํนํ ๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ์ ๋๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์์ ๊ตฌ์ฑํ ๋ IP ์ฃผ์ ๋์ DNS ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
IP ์ฃผ์ ๋์ ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์คํ๋ฆฟ ๋คํธ์ํฌ ํธ๋ผ์ด์ฆ ์ ๋ฐ์ ๊ฑธ์ณ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ์ธ์. MongoDB 5.0๋ถํฐ IP ์ฃผ์๋ก๋ง ๊ตฌ์ฑ๋ ๋ ธ๋๋ ์คํํธ์ ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ๋ฉฐ ์์๋์ง ์์ต๋๋ค.
IP ๋ฐ์ธ๋ฉ
๊ฒฝ๊ณ
์ธ์คํด์ค๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ IP ์ฃผ์์ ๋ฐ์ธ๋ฉํ๊ธฐ ์ ์ ๋ฌด๋จ ์ ๊ทผ์ผ๋ก๋ถํฐ ํด๋ฌ์คํฐ๋ฅผ ๋ณดํธํด์ผ ํฉ๋๋ค. ๋ณด์ ๊ถ์ฅ ์ฌํญ์ ์ ์ฒด ๋ชฉ๋ก์ ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ์ ๋ํ ๋ณด์ ๊ฒ์ฌ ๋ชฉ๋ก์ ์ฐธ์กฐํ์ธ์. ์ต์ํ ์ธ์ฆ์ ํ์ฑํํ๊ณ ๋คํธ์ํฌ ์ธํ๋ผ๋ฅผ ๊ฐํํ๋ ๊ฒ์ ๊ณ ๋ คํฉ๋๋ค.
2} ๋ฐmongod
MongoDB mongos
๋ฐ์ด๋๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ก์ปฌ ํธ์คํธ์ ๋ฐ์ธ๋ฉ๋ฉ๋๋ค. ๋ฐ์ด๋๋ฆฌ์ ๋ํด net.ipv6
๊ตฌ์ฑ ํ์ผ ์ค์ ๋๋ --ipv6
๋ช
๋ น์ค ์ต์
์ด ์ค์ ๋์ด ์์ผ๋ฉด ๋ฐ์ด๋๋ฆฌ๊ฐ ๋ก์ปฌ ํธ์คํธ IPv6 ์ฃผ์์ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ธ๋ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ก์ปฌ ํธ์คํธ์ ๋ฐ์ธ๋ฉ๋ mongod
๋ฐ mongos
๋ ๋์ผํ ์ปดํจํฐ์์ ์คํ ์ค์ธ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ๋ง ํ์ฉํฉ๋๋ค. ์ด ๋ฐ์ธ๋ฉ ๋์์๋ mongosh
๋ฐ ๋ณต์ ๋ณธ ์งํฉ ๋๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ค๋ฅธ ๋ฉค๋ฒ๊ฐ ํฌํจ๋ฉ๋๋ค. ์๊ฒฉ ํด๋ผ์ด์ธํธ๋ ๋ก์ปฌ ํธ์คํธ์๋ง ๋ฐ์ธ๋ฉ๋ ๋ฐ์ด๋๋ฆฌ์๋ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ๋ฐ์ธ๋ฉ์ ์ฌ์ ์ํ๊ณ ๋ค๋ฅธ IP ์ฃผ์์ ๋ฐ์ธ๋ฉํ๋ ค๋ฉด net.bindIp
๊ตฌ์ฑ ํ์ผ ์ค์ ๋๋ --bind_ip
๋ช
๋ น์ค ์ต์
์ ์ฌ์ฉํ์ฌ ํธ์คํธ ์ด๋ฆ ๋๋ IP ์ฃผ์ ๋ชฉ๋ก์ ์ง์ ํฉ๋๋ค.
๊ฒฝ๊ณ
MongDB ๋ถํฐ 5.0 ์์, ๋ถํ ์ํ DNS IP ์ฃผ์๋ก๋ง ๊ตฌ์ฑ๋ ๋
ธ๋๋ ์์ ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ๊ณ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. disableSplitHorizonIPCheck
๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋ฅผ ๋ค์ด ๋ค์ mongod
์ธ์คํด์ค๋ ๋ก์ปฌ ํธ์คํธ์ IP ์ฃผ์ 198.51.100.1
์ ์ฐ๊ฒฐ๋ ํธ์คํธ๋ช
My-Example-Associated-Hostname
์ ๋ชจ๋ ๋ฐ์ธ๋ฉ๋ฉ๋๋ค.
mongod --bind_ip localhost,My-Example-Associated-Hostname
์ด ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์๊ฒฉ ํด๋ผ์ด์ธํธ๊ฐ ํธ์คํธ ์ด๋ฆ ๋๋ ๊ด๋ จ IP ์ฃผ์ 198.51.100.1
๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
mongosh --host My-Example-Associated-Hostname mongosh --host 198.51.100.1
์์
๊ตฌ์ฑ ๋ฌธ์๋ฅผ ๋ณ์์ ํ ๋นํ ๋ค์ ๋ฌธ์๋ฅผ rs.initiate()
๋์ฐ๋ฏธ์ ์ ๋ฌํฉ๋๋ค.
config = { _id : "my_replica_set", members : [ {_id : 0, host : "rs1.example.net:27017"}, {_id : 1, host : "rs2.example.net:27017"}, {_id : 2, host : "rs3.example.net", arbiterOnly: true}, ] } rs.initiate(config)
์ค์
๋ณ๊ฒฝ๋ IP ์ฃผ์๋ก ์ธํด ๊ตฌ์ฑ์ด ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด IP ์ฃผ์ ๋์ DNS ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ํนํ ๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ์ ๋๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์์ ๊ตฌ์ฑํ ๋ IP ์ฃผ์ ๋์ DNS ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
IP ์ฃผ์ ๋์ ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์คํ๋ฆฟ ๋คํธ์ํฌ ํธ๋ผ์ด์ฆ ์ ๋ฐ์ ๊ฑธ์ณ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ์ธ์. MongoDB 5.0๋ถํฐ IP ์ฃผ์๋ก๋ง ๊ตฌ์ฑ๋ ๋ ธ๋๋ ์คํํธ์ ์ ํจ์ฑ ๊ฒ์ฌ์ ์คํจํ๋ฉฐ ์์๋์ง ์์ต๋๋ค.
ํฌํธ๋ฅผ ์๋ตํ๋ฉด ํธ์คํธ๊ฐ ๊ธฐ๋ณธ ํฌํธ 27017์ ์ฌ์ฉํฉ๋๋ค. ๋ํ ์ด ์์์๋ arbiterOnly
์ค์ ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ต์
์ ๊ตฌ์ฑ ๋ฌธ์์์ ์ง์ ํ ์ ์์ต๋๋ค.