Docs Menu

์ž์ฒด ๊ด€๋ฆฌ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์˜ Oplog ํฌ๊ธฐ ๋ณ€๊ฒฝ

๊ฒฝ๊ณ 

local.oplog.rs ์ปฌ๋ ‰์…˜ ์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์ œํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ oplog ์ปฌ๋ ‰์…˜ ๋™์ž‘์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ์ ˆ์ฐจ๋Š” replSetResizeOplog ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ฐ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ oplog[1]์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉฐ, ์ด๋•Œ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ๊ฐ ์„ธ์ปจ๋”๋ฆฌ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ์ด ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์˜ oplog ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ์ด ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mongosh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

mongosh --host <hostname>:<port>

์ฐธ๊ณ 

๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ์ธ์ฆ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, clusterManager ๋˜๋Š” clusterAdmin ์—ญํ• ๊ณผ ๊ฐ™์ด local ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋กœ ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

oplog์˜ ํ˜„์žฌ ํฌ๊ธฐ๋ฅผ ๋ณด๋ ค๋ฉด local ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ „ํ™˜ํ•˜๊ณ  oplog.rs ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•ด db.collection.stats()๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. stats()๋Š” oplog ํฌ๊ธฐ๋ฅผ maxSize๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

use local
db.oplog.rs.stats().maxSize

maxSize ํ•„๋“œ๋Š” ์ปฌ๋ ‰์…˜ ํฌ๊ธฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

replSetResizeOplog ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ oplog์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. size๋Š” double์ด๋ฉฐ 990MB๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค. mongosh์—์„œ oplog size๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์บ์ŠคํŒ…ํ•˜๋ ค๋ฉด Double() ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ž‘์—…์€ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์˜ oplog ํฌ๊ธฐ๋ฅผ 16GB ๋˜๋Š” 16,000MB๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand({replSetResizeOplog: 1, size: Double(16000)})
[1] 2}๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด oplog๊ฐ€ ๊ตฌ์„ฑ๋œ ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ์ปค์งˆ ์ˆ˜ majority commit point ์žˆ์Šต๋‹ˆ๋‹ค.

oplog์˜ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ๋„ ์›๋ž˜ oplog ํฌ๊ธฐ์— ํ• ๋‹น๋œ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ž๋™์œผ๋กœ ํšŒ์ˆ˜๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค . ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๋‹ค์‹œ ํ™•๋ณดํ•˜๋ ค๋ฉด local ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ oplog.rs ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•ด compact๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. oplog ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฐ ํ›„ oplog.rs ์ปฌ๋ ‰์…˜์—์„œ compact๋ฅผ ์‹คํ–‰ํ•ด๋„ ์•„๋ฌด๋Ÿฐ ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ค‘์š”

๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ์›์€ compact ์ž‘์—…์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ oplog ํ•ญ๋ชฉ์„ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์••์ถ•ํ•˜๋Š” ๋™์•ˆ oplog ๋ณต์ œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ณ„์†๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋” ์ด์ƒ oplog์˜ ์••์ถ• ์ž‘์—…์„ ์œ ์ง€ ๊ด€๋ฆฌ ๊ธฐ๊ฐ„์œผ๋กœ ์ œํ•œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด compact๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š”. mongo ์…ธ์„ (๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ) ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ณ  rs.stepDown()์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•˜๋ฉด ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๊ฐ•๋“ฑ๋ฉ๋‹ˆ๋‹ค. mongo ์…ธ์—์„œ ์ด์ œ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ๋œ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด compact ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ž‘์—…์€ oplog.rs ์ปฌ๋ ‰์…˜์—์„œ compact ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

use local
db.runCommand({ "compact" : "oplog.rs" } )

์ธ์ฆ์„ ์ ์šฉํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ, local ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ oplog.rs ์ปฌ๋ ‰์…˜์—์„œ compact ๊ถŒํ•œ ์ž‘์—…์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋กœ ์ธ์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. compact ์ธ์ฆ ์š”๊ตฌ ์‚ฌํ•ญ์— ๊ด€ํ•œ ์ „์ฒด ๋ฌธ์„œ๋Š” compact ํ•„์ˆ˜ ๊ถŒํ•œ์—์„œ ํ™•์ธํ•˜์„ธ์š”.