6.0 ๋ณต์ ๋ณธ ์ธํธ๋ฅผ 5.0์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋
์ด ํ์ด์ง์ ๋ด์ฉ
๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์๋ํ๊ธฐ ์ ์ ์ด ํ์ด์ง์ ๋ด์ฉ์ ์์งํฉ๋๋ค.
๋ค์ด๊ทธ๋ ์ด๋ ๊ฒฝ๋ก
์ค์
๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ธฐ ์ ์ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ตฌ์ฑ์์ด ์์๋ ๋๊น์ง ์ ๊ทธ๋ ์ด๋ ๋๋ ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ์๋ฃ๋์ง ์์ต๋๋ค.
6.0์์ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ต์ ํจ์น ๋ฆด๋ฆฌ์ค์ธ 5.0์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ์ธ์.
MongoDB๋ ๋จ์ผ ๋ฒ์ ๋ค์ด๊ทธ๋ ์ด๋๋ง ์ง์ํฉ๋๋ค. ํ์ฌ ๋ฆด๋ฆฌ์ค๋ณด๋ค ์ด์ ๋ฒ์ ์ธ ๋ฆด๋ฆฌ์ค๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, 6.0 ์๋ฆฌ์ฆ๋ฅผ 5.0 ์๋ฆฌ์ฆ ๋ฐฐํฌ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค. ํ์ง๋ง 5.0 ์๋ฆฌ์ฆ ๋ฐฐํฌ๋ฅผ 4.4 ์๋ฆฌ์ฆ ๋ฐฐํฌ๋ก ํ ๋จ๊ณ ๋ ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ ์ง์๋์ง ์์ต๋๋ค.
์ก์ธ์ค ์ ์ด
๋ณต์ ๋ณธ ์ธํธ์ ์ก์ธ์ค ์ ์ด๊ฐ ํ์ฑํ๋์ด ์๋ ๊ฒฝ์ฐ ๋ค์ด๊ทธ๋ ์ด๋ ์ฌ์ฉ์ ๊ถํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด์์ ์ธ๋ฑ์ค๋ฅผ ๋์ดํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๊ถํ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. root
์ญํ ์ ๊ฐ์ง ์ฌ์ฉ์์๊ฒ๋ ํ์ํ ๊ถํ์ด ์์ต๋๋ค.
์ ์ ์กฐ๊ฑด
๋ค์ด๊ทธ๋ ์ด๋ ์ ์ฐจ๋ฅผ ์์ํ๊ธฐ ์ ์ ๋ค์ ์ฌ์ ํ์ ๋จ๊ณ๋ฅผ ์๋ฃํด์ผ ํฉ๋๋ค.
๋ฐฑ์ ์์ฑ
์ ํ ์ฌํญ์ด์ง๋ง ๊ถ์ฅ๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฑ์ ์ ๋ง๋ญ๋๋ค.
๋ฐฑ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ์์ฒด ๊ด๋ฆฌ ๋ฐฐํฌ์๋ฒ๋ฅผ ์ํ ๋ฐฑ์ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๊ธฐ๋ฅ ์ ๊ฑฐ
6.0์์ 5.0์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ค๋ฉด 5.0๊ณผ ํธํ๋์ง ์๋ 6.0 ๊ธฐ๋ฅ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ํธํ๋์ง ์๋ ๊ธฐ๋ฅ ๋ชฉ๋ก๊ณผ ํด๋น ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์ด๊ทธ๋ ์ด๋ ๊ณ ๋ ค ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๊ธฐ๋ฅ ํธํ์ฑ ๋ฒ์ (fCV) ๋ค์ด๊ทธ๋ ์ด๋
๋ณต์ ๋ณธ ์ธํธ์ fCV ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
์ด๊ธฐ ๋๊ธฐํ๊ฐ ์งํ ์ค์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ด๊ธฐ ๋๊ธฐํ๊ฐ ์งํ ์ค์ผ ๋
setFeatureCompatibilityVersion
๋ช ๋ น์ ์คํํ๋ฉด ์ด๊ธฐ ๋๊ธฐํ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ ์
newlyAdded
ํ๋๊ฐ ์๋ ๋ ธ๋๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๋ณต์ ๋ณธ ์ธํธ์ ๊ฐ ๋ ธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ ์ด๋ฅผ ํ์ธํฉ๋๋ค.use local db.system.replset.find( { "members.newlyAdded" : { $exists : true } } ); newlyAdded
ํ๋๋ ์ด๊ธฐ ๋๊ธฐํ ์ค๊ณผ ์ด๊ธฐ ๋๊ธฐํ ์งํ ๋ ธ๋์ ๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ ๋ฌธ์์ ๋ํ๋ฉ๋๋ค.ROLLBACK
๋๋RECOVERING
์ํ์ ์๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐํฉ๋๋ค.featureCompatibilityVersion
์"5.0"
๋ก ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } ) setFeatureCompatibilityVersion
๋ช ๋ น์ ๋ด๋ถ ์์คํ collection์ ๋ํ ์ฐ๊ธฐ๋ฅผ ์ํํ๋ฉฐ ๋ฉฑ๋ฑ์์ ๋๋ค. ๋ช ๋ น์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์ง ์์ผ๋ฉด ํ๋ผ์ด๋จธ๋ฆฌ์์ ๋ช ๋ น์ ๋ค์ ์๋ํฉ๋๋ค.๋ณต์ ๋ณธ ์ธํธ์ ๋ชจ๋ ๋ฉค๋ฒ์ ์ ๋ฐ์ดํธ๋
featureCompatibilityVersion
์ด(๊ฐ) ์๋์ง ํ์ธํ๋ ค๋ฉด ๊ฐ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ์ฐ๊ฒฐํ์ฌfeatureCompatibilityVersion
์(๋ฅผ) ํ์ธํฉ๋๋ค.db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) ๋ชจ๋ ๋ฉค๋ฒ๋ ๋ค์์ ํฌํจํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
"featureCompatibilityVersion" : { "version" : "5.0" } ๋ฉค๋ฒ๊ฐ
"6.0"
์featureCompatibilityVersion
๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ๊ณ์ํ๊ธฐ ์ ์ ๋ฉค๋ฒ๊ฐ ๋ฒ์ "5.0"
์ ๋ฐํํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
๋ฐํ๋ featureCompatibilityVersion
๊ฐ์ ๋ํ ์์ธํ ๋ด์ฉ์ FeatureCompatibilityVersion ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ด๊ทธ๋ ์ด๋ ์ ์ฐจ
๊ฒฝ๊ณ
๋ค์ด๊ทธ๋ ์ด๋ ์ ์ฐจ๋ฅผ ์งํํ๊ธฐ ์ ์ ์ง์ฐ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ฅผ ํฌํจํ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์๊ฒ ํ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ํ์ธํ์ธ์. ์ด๋ ๊ฒ ํ๋ ค๋ฉด featureCompatibilityVersion
ํ์ธํ๊ณ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ธฐ ์ ์ ๊ฐ ๋
ธ๋์ ๋ํด ํธํ๋์ง ์๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํฉ๋๋ค.
์ต์ 5.0 ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
ํจํค์ง ๊ด๋ฆฌ์๋ ์๋ ๋ค์ด๋ก๋๋ฅผ ์ฌ์ฉํ์ฌ 5.0 ์๋ฆฌ์ฆ์ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 5.0 ๋ฐ์ด๋๋ฆฌ์ ๋ํ ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋ค์ ์ค์ ๋ค์ด๊ทธ๋ ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์ํํฉ๋๋ค.
์ค์
๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ธฐ ์ ์ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ตฌ์ฑ์์ด ์์๋ ๋๊น์ง ์ ๊ทธ๋ ์ด๋ ๋๋ ๋ค์ด๊ทธ๋ ์ด๋๊ฐ ์๋ฃ๋์ง ์์ต๋๋ค.
6.0์์ ๋ค์ด๊ทธ๋ ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ต์ ํจ์น ๋ฆด๋ฆฌ์ค์ธ 5.0์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ์ธ์.
๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ๊ฐ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
๋ฉค๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
mongod
ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ค๋ฉดmongosh
๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ปจ๋๋ฆฌ์ ์ฐ๊ฒฐํ๊ณ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.db.adminCommand( { shutdown: 1 } ) ๋ฉค๋ฒ๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
mongod
ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค:mongod --dbpath </path-to-data-folder> mongod
ํ๋ก์ธ์ค ์์์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉดmongod
ํ๋ก์ธ์ค ์์์ ์ฐธ์กฐํ์ธ์.๋ฉค๋ฒ๊ฐ
SECONDARY
์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.๋ค์ ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ธฐ ์ ์ ๋ฉค๋ฒ๊ฐ ์ํ๋ก ๋ณต๊ตฌ๋ ๋๊น์ง
SECONDARY
๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ฉค๋ฒ์ ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉดmongosh
์์rs.status()
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.๋ฉค๋ฒ๊ฐ
SECONDARY
๋จ๊ณ๊ฐ ๋๋ฉด ๋ค์ ์ธ์ปจ๋๋ฆฌ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
์ค์ฌ์ ๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ์(์๋ ๊ฒฝ์ฐ)์ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ์ค์ฌ์๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ์ธ์.
๋ณต์ ๋ณธ ์ธํธ์ ์ค์ฌ์ ๋ฉค๋ฒ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
๋ฉค๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
์ค์ฌ์๋ฅผ ์ข ๋ฃํ๋ ค๋ฉด
mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ฌ์์ ์ฐ๊ฒฐํ๊ณ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.db.adminCommand( { shutdown: 1 } ) ์ค์ฌ์ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ์ญ์ ํฉ๋๋ค.
์ค์ฌ์
mongod
์ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐพ์ผ๋ ค๋ฉดstorage.dbPath
๊ตฌ์ฑ ์ค์ ๋๋--dbpath
๋ช ๋ น์ค ์ต์ ์ ํ์ธํ์ธ์.๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค:
rm -rf /path/to/mongodb/datafiles/* ์ค์ฌ์๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
mongod
ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค:mongod --dbpath </path-to-mongodb-datafiles> mongod
ํ๋ก์ธ์ค ์์์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉดmongod
ํ๋ก์ธ์ค ์์์ ์ฐธ์กฐํ์ธ์.๋ฉค๋ฒ๊ฐ
ARBITER
์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํ๊ธฐ ์ ์ ๋ฉค๋ฒ๊ฐ
ARBITER
์ํ๋ก ๋ณต๊ตฌ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ฉค๋ฒ์ ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉด ์์rs.status()
๋ฉ์๋๋ฅผmongosh
์ฌ์ฉํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋ค์ด๊ทธ๋ ์ด๋ํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ์ ๋ด๋ ค๋์ต๋๋ค.
mongosh
์์rs.stepDown()
๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋ฌผ๋ฌ๋๊ณ ์ผ๋ฐ์ ์ธ ํ์ผ์ค๋ฒ ์ ์ฐจ๋ฅผ ๊ฐ์ ์คํํฉ๋๋ค.rs.stepDown() ํ๋ผ์ด๋จธ๋ฆฌ๊ฐ ๋ฌผ๋ฌ๋ฌ๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค:
rs.status() ํ๋ผ์ด๋จธ๋ฆฌ๊ฐ ๋ฌผ๋ฌ๋๊ณ ๋ค๋ฅธ ๋ฉค๋ฒ๊ฐ
PRIMARY
์ํ๋ฅผ ์ทจํ๋์ง ํ์ธํฉ๋๋ค.์ด์ ํ๋ผ์ด๋จธ๋ฆฌ
mongod
์(๋ฅผ) ๊ต์ฒดํ๊ณ ๋ค์ ์์ํฉ๋๋ค.๋ฉค๋ฒ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
ํ๋ผ์ด๋จธ๋ฆฌ์ ์ข ๋ฃ๋ฅผ ์ํํ๋ ค๋ฉด
mongosh
๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ผ์ด๋จธ๋ฆฌ์ ์ฐ๊ฒฐํ๊ณ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.db.adminCommand( { shutdown: 1 } ) 5.0 ๋ฐ์ด๋๋ฆฌ๋ก
mongod
๋ฅผ ๋ค์ ์์ํฉ๋๋ค.mongod
ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค:mongod --dbpath </path-to-mongodb-datafiles> mongod
ํ๋ก์ธ์ค ์์์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉดmongod
ํ๋ก์ธ์ค ์์์ ์ฐธ์กฐํ์ธ์.