Docs Menu

mongomirror

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

๊ฒฝ๊ณ 

mongomirror์„ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํ•„ํ„ฐ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, includeNamespace <database.collection>์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ์†Œ์Šค์˜ ํŠธ๋žœ์žญ์…˜์€ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ์ž ์žฌ์ ์ธ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

mongomirror์€(๋Š”) ๊ธฐ์กด MongoDB ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ MongoDB Atlas ๋ณต์ œ๋ณธ ์„ธํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. mongomirror ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mongomirror์„(๋ฅผ) ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์™€ ๋Œ€์ƒ Atlas ๋ณต์ œ๋ณธ ์„ธํŠธ

  • ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์ ์ ˆํ•œ ๊ถŒํ•œ, ํ•ด๋‹น ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง„ Atlas ํด๋Ÿฌ์Šคํ„ฐ์˜ ์‚ฌ์šฉ์ž

mongomirror --host <sourceReplSet> \
--destination <atlasCluster> \
--destinationUsername <atlasAdminUser> \
--destinationPassword <atlasPassword> \
[Additional options]

์ผ๋ถ€ ์˜ต์…˜์€ ๋ช…๋ น์— ํฌํ•จํ•˜์ง€ ์•Š๊ณ  config file์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--host <host>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ˜ธ์ŠคํŠธ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ๋…ธ๋“œ์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<RSname>/<host1>:<port1>,<host2>:<port2>,<host3>:<port3>
--username <username>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ local ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. backup ์—ญํ• ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํŠน์ • ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ํ•„์š”ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--password <password>

--username์— ์ง€์ •๋œ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ

--authenticationDatabase <authenticationDatabase>

--username์— ์ง€์ •๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑ๋œ ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • SCRAM ์ธ์ฆ ์‚ฌ์šฉ์ž๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

  • X.509 ์ธ์ฆ ์‚ฌ์šฉ์ž๋Š” $external ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

  • AWS IAM ์ธ์ฆ ์‚ฌ์šฉ์ž๋Š” $external ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--authenticationMechanism <authenticationMechanism>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

RFC 5802 ํ‘œ์ค€ SHA-1 ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†”ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€ ์‘๋‹ต ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜.

RFC 5802 ํ‘œ์ค€ SHA-256 ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†”ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€ ์‘๋‹ต ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜.

MongoDB TLS/SSL ์ธ์ฆ์„œ ์ธ์ฆ.

GSSAPI (Kerberos)

Kerberos๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์ธ์ฆ. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PLAIN (LDAP SASL)

LDAP๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์ธ์ฆ. PLAIN ์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. PLAIN ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MONGODB-IAM

๋ฒ„์ „ 0.10.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

AWS IAM์„ ํ†ตํ•œ ์™ธ๋ถ€ ์ธ์ฆ.

AWS IAM ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ์ธ์ฆํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--awsSessionToken

๋ฒ„์ „ 0.10.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

MONGODB-IAM ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ AWS ์„ธ์…˜ ํ† ํฐ์ž…๋‹ˆ๋‹ค.

--compressors <snappy,...>

๋ฒ„์ „ 1.5.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

ํ™œ์„ฑํ™”ํ•  ์••์ถ•๊ธฐ ๋ชฉ๋ก์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด 'none'์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’ : snappy,zstd,zlib

--config=<file>

mongomirror์˜ ์˜ต์…˜๊ณผ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” YAML ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mongomirror ํŒŒ์ผ์— ํฌํ•จ๋œ ์˜ต์…˜๊ณผ ํ•จ๊ป˜์„(๋ฅผ) ์‹คํ–‰ํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ์€ ๋‹ค์Œ ์˜ต์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

option: value ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ์˜ต์…˜ ์•ž์— --์„(๋ฅผ) ํฌํ•จํ•˜์ง€ ๋งˆ์„ธ์š”. ๊ตฌ์„ฑ ํŒŒ์ผ์— ์˜ต์…˜์„ ์„ค์ •ํ•œ ๊ฒฝ์šฐ mongomirror ๋ช…๋ น์–ด ๋‚ด์—์„œ ํ•ด๋‹น ์˜ต์…˜์„ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” myconfig.yaml(์ด)๋ผ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

password: <passwordForUser>
destinationPassword: <passwordForDestinationUser>

--password ๋ฐ --destinationPassword ํ”Œ๋ž˜๊ทธ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  mongomirror๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongomirror --host <sourceReplSet> \
--ssl \
--username <atlasAdminUser> \
--destinationUsername <atlasAdminUser> \
--config=myconfig.yaml \
--destination <atlasCluster> \
[Additional options]
--destination <destination>

๋Œ€์ƒ Atlas ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ˜ธ์ŠคํŠธ ์ •๋ณด์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ๋…ธ๋“œ์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<RSname>/<host1>:<port1>,<host2>:<port2>,<host3>:<port3>
--destinationAuthenticationDatabase <authentication database>

Atlas ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. SCRAM ์ธ์ฆ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--destinationAuthenticationMechanism <authentication mechanism>

Atlas ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. Atlas๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ์ฆ ํ˜•์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…

RFC 5802 ํ‘œ์ค€ SHA-1 ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†”ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€ ์‘๋‹ต ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜.

RFC 5802 ํ‘œ์ค€ SHA-256 ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†”ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€ ์‘๋‹ต ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜.

PLAIN (LDAP SASL)

LDAP๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์ธ์ฆ. PLAIN ์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. PLAIN ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--destinationUsername <Atlas user name>

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฝ๊ณ , ์“ฐ๊ณ , ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” Atlas ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Atlas ๊ด€๋ฆฌ์ž ์—ญํ• ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํŠน์ • ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ํ•„์š”ํ•œ ์•ก์„ธ์Šค๊ถŒํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--destinationPassword <password>

--destinationUsername์— ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

--drop

mongomirror๊ฐ€ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž collection(listCollections๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Œ)์„ ์ œ๊ฑฐํ•ด์•ผ ํ•จ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ local.system* ๋ฐ oplog์™€ ๊ฐ™์€ ๋‚ด๋ถ€ collection์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--noIndexRestore

๋ฒ„์ „ 0.10.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ ์ธ๋ฑ์Šค๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

--includeNamespace <database.collection>

์†Œ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฏธ๋Ÿฌ๋งํ•  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

ํŠธ๋žœ์žญ์…˜์ด ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๊ฑธ์ณ ์žˆ๋Š” ๊ฒฝ์šฐ --includeNamespace ๋˜๋Š” --includeDB์— ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ ์šฉ๋œ ์“ฐ๊ธฐ ์ž‘์—…๋งŒ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

--includeDB <database>

์†Œ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฏธ๋Ÿฌ๋งํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ฐจ๋ก€ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

ํŠธ๋žœ์žญ์…˜์ด ์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๊ฑธ์ณ ์žˆ๋Š” ๊ฒฝ์šฐ --includeNamespace ๋˜๋Š” --includeDB์— ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ ์šฉ๋œ ์“ฐ๊ธฐ ์ž‘์—…๋งŒ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

--ssl

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•œ TLS/SSL ์•”ํ˜ธํ™” ์—ฐ๊ฒฐ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

--sslPEMKeyFile <file>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ์„œ๋ฅผ ์ œ์‹œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•˜๋Š” .pem ํŒŒ์ผ์ž…๋‹ˆ๋‹ค..pem ํŒŒ์ผ์—๋Š” TLS/SSL ์ธ์ฆ์„œ ๋ฐ ํ‚ค๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--sslPEMKeyPassword <value>

--sslPEMKeyFile์— ์ง€์ •๋œ ์ธ์ฆ์„œ ํ‚ค ํŒŒ์ผ์„ ํ•ด๋…ํ•˜๊ธฐ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. --sslPEMKeyFile์ด(๊ฐ€) ์•”ํ˜ธํ™”๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--sslCAFile <file>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•œ ์ธ์ฆ ๊ธฐ๊ด€(CA)์˜ ์ตœ์ƒ์œ„ ์ธ์ฆ์„œ ์ฒด์ธ์ด ํฌํ•จ๋œ .pem ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--sslCRLFile <filename>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ ํ•ด์ง€ ๋ชฉ๋ก์ด ํฌํ•จ๋œ .pem ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--sslAllowInvalidHostnames

๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. tlsInsecure ๋Œ€์‹ 

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” TLS/SSL ์ธ์ฆ์„œ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์ง€์ •๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ mongomirror๊ฐ€ ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ด ์˜ต์…˜์€ ๋ชจ๋“  ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋ฏ€๋กœ ์ž˜๋ชป๋œ ์ธ์ฆ์„œ๋ฅผ ์ˆ˜๋ฝํ•˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

--sslAllowInvalidCertificates

๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. tlsInsecure ๋Œ€์‹ 

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค. --allowInvalidCertificates ์„ค์ •์„ ์‚ฌ์šฉํ•  ๋•Œ MongoDB๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ์ฆ์„œ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋กœ๊ทธํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ด ์˜ต์…˜์€ ๋ชจ๋“  ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋ฏ€๋กœ ์ž˜๋ชป๋œ ์ธ์ฆ์„œ๋ฅผ ์ˆ˜๋ฝํ•˜๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

--tlsInsecure

์„œ๋ฒ„์˜ ์ธ์ฆ์„œ ์ฒด์ธ ๋ฐ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž˜๋ชป๋œ ์ธ์ฆ์„œ ๋ฐ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ์ง€์›์ด ์ค‘๋‹จ๋œ sslAllowInvalidHostnames ๋ฐ sslAllowInvalidCertificates ์˜ต์…˜์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

--gssapiServiceName <name>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ GSSAPI/Kerberos๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ๊ธฐ๋ณธ ์ด๋ฆ„์ธ mongodb์„(๋ฅผ) ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--gssapiHostName <host>

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ GSSAPI/Kerberos๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด DNS์—์„œ ํ™•์ธํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ MongoDB Enterprise์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--readPreference <read preference>

๋ฒ„์ „ 0.9.0๋ถ€ํ„ฐ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

mongomirror๋Š” ์†Œ์Šค๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„์ด ์—†๋Š” ๋‹จ์ผ ํ˜ธ์ŠคํŠธ์ธ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ํ•ญ์ƒ ํ”„๋ผ์ด๋จธ๋ฆฌ์—์„œ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์—๋งŒ ์ง์ ‘ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

--writeConcern <write concern>

๋ฒ„์ „ 0.2.3๋ถ€ํ„ฐ ํ์ง€: mongomirror๋Š” ํ•ญ์ƒ ๋‹ค์ˆ˜ ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--numParallelCollections <num>, -j <num>

๊ธฐ๋ณธ๊ฐ’: 4

๋ณ‘๋ ฌ๋กœ ๋ณต์‚ฌ ๋ฐ ๋ณต์›ํ•  ์ปฌ๋ ‰์…˜์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

--bypassDocumentValidation

๋ฒ„์ „ 0.2.3๋ถ€ํ„ฐ ํ์ง€: mongomirror๋Š” ํ•ญ์ƒ ๋ฌธ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.

--bookmarkFile <file>

๊ธฐ๋ณธ๊ฐ’: mongomirror.bookmark

oplog ํƒ€์ž„์Šคํƒฌํ”„ ๋ถ๋งˆํฌ ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

--forceDump

๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ถ๋งˆํฌ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋”๋ผ๋„ mongomirror๊ฐ€ ๋ชจ๋“  ์†Œ์Šค ์ปฌ๋ ‰์…˜์„ ๋‹ค์‹œ ๋™๊ธฐํ™”ํ•จ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

--oplogPath <path>

๋ฒ„์ „ 0.5.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

mongomirror๊ฐ€ ์ดˆ๊ธฐ ๋™๊ธฐํ™” oplog window๋ฅผ ๋””์Šคํฌ์— ๋ฒ„ํผ๋งํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์˜ ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด mongomirror๋Š” ์†Œ์Šค oplog ์—”ํŠธ๋ฆฌ๋ฅผ ๋‹จ์ผ ํŒŒ์ผ๋กœ ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ(<oplogPath>/oplog-mongomirror.bson.sz)๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด oplog ํŒŒ์ผ์ด ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์žฌ์ƒ๋œ ํ›„ mongomirror๋Š” ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฒ„ํผ๋ง ์—†์ด ์†Œ์Šค oplog๋ฅผ ํ…Œ์ผ๋งํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ mongomirror๋Š” ์†Œ์Šค์—์„œ oplog ํ•ญ๋ชฉ์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜์—ฌ ๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์†Œ์Šค oplog๊ฐ€ ์ „์ฒด ์ดˆ๊ธฐ ๋™๊ธฐํ™” oplog window๋ฅผ ํฌํ•จํ•  ๋งŒํผ ํฌ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์†Œ์Šค oplog์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜์—ฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์†Œ์Šค oplog์˜ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์ง€์ง€ ์•Š๋„๋ก ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ดˆ๊ธฐ mongomirror ๋™๊ธฐํ™” ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์†Œ์Šค oplog ํ•ญ๋ชฉ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์†Œ์Šค oplog๊ฐ€ 10GB์ด๊ณ  24์‹œ๊ฐ„ ๋™์•ˆ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ mongomirror์˜ ๋™๊ธฐํ™”์— 48์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ, ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ตœ์†Œ 20GB์˜ ๋””์Šคํฌ ์—ฌ์œ  ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--oplogBatchSize <num>

๊ธฐ๋ณธ๊ฐ’: 10,000

๋ฐฐ์น˜๋กœ ์ „์†กํ•  oplog ์—”ํŠธ๋ฆฌ์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. mongomirror๋Š” ๋ฌธ์„œ ๋ฐฐ์น˜ ์ „์†ก ์‹œ ์ตœ๋Œ€ 16 MB ๋ณผ๋ฅจ ํฌ๊ธฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--httpStatusPort <num>

์ง€์ •ํ•œ ํฌํŠธ์—์„œ HTTP ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋„๋ก mongomirror์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. http://localhost:<num>์— HTTP GET ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ mongomirror์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--httpStatusPort๋กœ ์‹คํ–‰ํ•  ๋•Œ mongomirror๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์˜ค๋ฅ˜๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ  HTTP๋ฅผ ํ†ตํ•ด ์ง€์ •๋œ ํฌํŠธ์— ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

mongomirror๋Š” HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๋ฌธ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ ๊ตฌ๋ฌธ์€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ถœ๋ ฅ ํ•„๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์‹ค์ œ ์‘๋‹ต์€ ์ด๋Ÿฌํ•œ ํ•„๋“œ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ๋งŒ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์˜ˆ์ƒ ์‹œ๊ธฐ๋Š” ๋‹ค์Œ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

{
"stage" : "<stage Name>",
"phase" : "<phase Name>",
"details" : {
"currentTimestamp" : "<BSON timestamp>",
"latestTimestamp" : "<BSON timestamp>",
"lastWriteOnSourceTimestamp" : "<BSON timestamp>",
"<namespace>" : {
"complete" : <boolean>,
"copiedBytes" : <integer>,
"totalBytes" : <integer>,
"createIndexes" : <integer>
},
...
},
"errorMessage" : "<error message>"
}

๋‹ค์Œ ํ‘œ์—์„œ๋Š” ๊ฐ ํ•„๋“œ์™€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค:

ํ•„๋“œ
์„ค๋ช…

stage

์ง„ํ–‰ ์ค‘์ธ ๋‹จ๊ณ„์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • initializing

    mongomirror ์ด(๊ฐ€) ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ์•„์ง ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • initial sync

    mongomirror ์ด(๊ฐ€) ์†Œ์Šค ๋ฐฐํฌ์„œ๋ฒ„ ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฌธ์„œ์™€ ์ธ๋ฑ์Šค๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. mongomirror ๋Š” ๋˜ํ•œ oplog ์˜ ํ•ญ๋ชฉ์„ ํ…Œ์ผ๋งํ•˜์—ฌ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • oplog sync

    mongomirror ๊ฐ€ oplog ํ•ญ๋ชฉ์„ ํ…Œ์ผ๋งํ•˜์—ฌ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

phase

๋‹จ๊ณ„์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. stage์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ์ง„ํ–‰ ์ค‘์ธ์ง€์— ๋Œ€ํ•œ ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

details

ํ˜„์žฌ ๋‹จ๊ณ„์˜ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

initial sync ๋‹จ๊ณ„์—์„œ ์˜ ๊ฐ ํ•˜์œ„ details ๋ฌธ์„œ๋Š” ์—์„œ ๋ณต์‚ฌํ•˜๋Š” ๋‹จ์ผ ์ปฌ๋ ‰์…˜ mongomirror ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

stage ๋˜๋Š” phase mongomirror ์— ๋”ฐ๋ผ ๋Š” ์‘๋‹ต์— ์ด ํ•„๋“œ ํฌํ•จํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

details.<namespace>

๋ณต์‚ฌ๋˜๋Š” ์ปฌ๋ ‰์…˜์˜ ์ „์ฒด ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ด๋ฉฐ <database>.<collection>(์œผ)๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ ๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ initial sync ๋‹จ๊ณ„์—์„œ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details.<namespace>.complete

๊ฐ€ ์ปฌ๋ ‰์…˜ ์˜ ๋ชจ๋“  ๋ฌธ์„œ ๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋Œ€์ƒ Atlas cluster ๋กœ ๋ณต์‚ฌํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋˜๋Š” true false ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.mongomirror

๋ฌธ์„œ ๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ initial sync ๋‹จ๊ณ„์—์„œ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details.<namespace>.copiedBytes

์ง€๊ธˆ๊นŒ์ง€ ๋ณต์‚ฌ๋œ ๋ฐ”์ดํŠธ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” mongomirror ๋ณต์‚ฌ๋œ ํ˜„์žฌ/์ด ๋ฌธ์„œ ์ˆ˜๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๋กœ๊ทธ์™€๋Š” ๋‹ค๋ฅธ ์ธก์ •๊ฐ’์ž…๋‹ˆ๋‹ค.

๋น„์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ initial sync ๋‹จ๊ณ„ ์ค‘์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details.<namespace>.totalBytes

collection์˜ ์ด ํฌ๊ธฐ(๋ฐ”์ดํŠธ)์ž…๋‹ˆ๋‹ค.

๋น„์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ initial sync ๋‹จ๊ณ„ ์ค‘์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details.<namespace>.createIndexes

์ƒ์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜ ์ƒ์„ฑ๋  ์ธ๋ฑ์Šค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ธ๋ฑ์Šค๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ initial sync ๋‹จ๊ณ„์—์„œ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details.currentTimestamp

๊ฐ€์žฅ ์ตœ๊ทผ์— ์ฒ˜๋ฆฌ๋œ oplog ํ•ญ๋ชฉ์˜ BSON ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์ž…๋‹ˆ๋‹ค. mongomirror ๋Š” ์ด ๋ฐ์ดํ„ฐ ์  10 ์ดˆ๋งˆ๋‹ค ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฏ€๋กœ ๋Š” ๋ณด๊ณ ๋œ ์‹œ๊ฐ„๋ณด๋‹ค ์•ฝ๊ฐ„ ๋” mongomirror ์•ž์„ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

oplog ์—”ํŠธ๋ฆฌ๋ฅผ ํ…Œ์ผ๋งํ•˜๊ฑฐ๋‚˜ ์ ์šฉํ•  ๋•Œ initial sync ๋˜๋Š” oplog sync ๋‹จ๊ณ„ ๋™์•ˆ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details.latestTimestamp

initial sync ๋‹จ๊ณ„์—์„œ ์ด๋Š” ์ดˆ๊ธฐ ๋™๊ธฐํ™” ์ค‘์— ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์‚ฌ๋œ ํ›„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์‹  oplog ํ•ญ๋ชฉ์˜ BSON ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

oplog sync ๋‹จ๊ณ„์—์„œ๋Š” ์†Œ์Šค ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์‹  oplog ํ•ญ๋ชฉ์˜ BSON ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

oplog ์—”ํŠธ๋ฆฌ๋ฅผ ํ…Œ์ผ๋งํ•˜๊ฑฐ๋‚˜ ์ ์šฉํ•  ๋•Œ initial sync ๋˜๋Š” oplog sync ๋‹จ๊ณ„ ๋™์•ˆ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

details
.lastWriteOnSourceTimestamp

no-op์ด ์•„๋‹Œ ๊ฐ€์žฅ ์ตœ๊ทผ oplog ํ•ญ๋ชฉ์˜ BSON ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ž‘์—… ์—†์Œ ํ•ญ๋ชฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ (write) ํŽธ์ง‘ํ•˜์ง€ ์•Š๋Š” ํ•˜ํŠธ๋น„ํŠธ์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ ์ˆ˜์ค€ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋Š” ์ดˆ๋งˆ๋‹คmongomirror ์ด ๊ฐ’์„ ์ƒˆ๋กœ ๊ณ ์นฉ๋‹ˆ๋‹ค.10 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ (write) ํŽธ์ง‘ํ•˜๋Š” ์ž‘์—…์€ ๋‹ค์Œ ์ƒˆ๋กœ ๊ณ ์นจ์ด ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ๋ณด๊ณ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

lastWriteOnSourceTimestamp ํ•„๋“œ๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘์— ์ „ํ™˜ํ•˜๊ธฐ ์ „์— ์†Œ์Šค ๋ฐฐํฌ์—์„œ ์ƒˆ๋กœ์šด ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

errorMessage

์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” mongomirror ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

--collStatsThreshold <num>

๋ฒ„์ „ 1.5.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

collStats๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๊ธฐ ์ „์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ปฌ๋ ‰์…˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. CollStats๋ฅผ ํ•ญ์ƒ ์‹คํ–‰ํ•˜๋ ค๋ฉด -1์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹คํ–‰ํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด 0์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๊ธฐ๋ณธ๊ฐ’์€ -1์ž…๋‹ˆ๋‹ค.

--removeAutoIndexId

๋ฒ„์ „ 0.12.0์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

๋Œ€์ƒ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ๋™๊ธฐํ™” ์ค‘์— ์ปฌ๋ ‰์…˜์—์„œ autoIndexId ์˜ต์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘์— mongomirror์ด(๊ฐ€) ์ƒ์„ฑํ•˜๋Š” ๋ชจ๋“  ์ปฌ๋ ‰์…˜์—์„œ autoIndexId ์˜ต์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

--preserveUUIDs

Atlas๊ฐ€ ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ค‘์— UUID๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์˜ค์ง Atlas์—์„œ ์‹คํ–‰ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ”„๋กœ์„ธ์Šค์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์—์„œ --preserveUUIDs ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ถŒํ•œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ต์…˜์€ mongomirror๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ”„๋กœ์„ธ์Šค์˜ ๋ช…๋ น์ค„์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ, ์˜ค๋ฅ˜๋ฅผ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” ์ธ์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

mongomirror --host sourceRS/source-host1:27017,source-host2:27017 \
--destination myAtlasRS/atlas-host1:27017,atlas-host2:27017 \
--destinationUsername myAtlasUser \
--destinationPassword myAtlasPwd

์ธ์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongomirror์„(๋ฅผ) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ๊ทธ ๋’ค์— ๋…ธ๋“œ์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<replicaSetName>/<host1>:<port1>,<host2>:<port2>,<host3>:<port3>,...

์ง€์ •๋œ ์‚ฌ์šฉ์ž๋Š” Atlas์—์„œ Atlas admin ์—ญํ• ์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” SCRAM-SHA1 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ Atlas๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

mongomirror --host sourceRS/source-host1:27017,source-host2:27017,source-host3:27017 \
--username mySourceUser \
--password mySourcePassword \
--authenticationDatabase admin \
--destination myAtlasRS/atlas-host1:27017,atlas-host2:27017 \
--destinationUsername myAtlasUser \
--destinationPassword atlasPassw0Rd

SCRAM-SHA1 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongomirror์„(๋ฅผ) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ์‚ฌ์šฉ์ž๋Š” ์†Œ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ํ•„์š”ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. backup ์—ญํ• ์€ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ๊ทธ ๋’ค์— ๋…ธ๋“œ์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<replicaSetName>/<replicaMember>,<replicaMember>,<replicaMember>,...

์ง€์ •๋œ ์‚ฌ์šฉ์ž๋Š” Atlas์— Atlas admin์ด(๊ฐ€) ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” X.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

mongomirror --host sourceRS/source-host1:27017,source-host2:27017,source-host3:27017 \
--username "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry" \
--authenticationDatabase '$external' \
--authenticationMechanism MONGODB-X509 \
--ssl \
--sslPEMKeyFile <path-to-my-client-certificate.pem> \
--sslCAFile <path-to-my-certificate-authority-certificate.pem> \
--destination myAtlasRS/atlas-host1:27017,atlas-host2:27017 \
--destinationUsername myAtlasUser \
--destinationPassword atlasPassw0Rd

X.509 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ mongomirror๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ์‚ฌ์šฉ์ž๋Š” ์†Œ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ํ•„์š”ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. backup ์—ญํ• ์€ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ๊ทธ ๋’ค์— ๋…ธ๋“œ์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<replicaSetName>/<replicaMember>,<replicaMember>,<replicaMember>,...

์ง€์ •๋œ ์‚ฌ์šฉ์ž๋Š” Atlas์— Atlas admin์ด(๊ฐ€) ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

mongomirror --host sourceRS/source-host1:27017,source-host2:27017,source-host3:27017 \
--username sourceUser/administrator@MYREALM.COM \
--authenticationDatabase '$external' \
--authenticationMechanism GSSAPI \
--destination myAtlasRS/atlas-host1:27017,atlas-host2:27017,atlas-host3:27017 \
--destinationUsername atlasUser \
--destinationPassword atlasPass

Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongomirror๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ์‚ฌ์šฉ์ž๋Š” ์†Œ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ํ•„์š”ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. backup ์—ญํ• ์€ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„๊ณผ ๊ทธ ๋’ค์— ๋…ธ๋“œ์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<replicaSetName>/<replicaMember>,<replicaMember>,<replicaMember>,...

์ง€์ •๋œ ์‚ฌ์šฉ์ž๋Š” Atlas์— Atlas admin์ด(๊ฐ€) ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์ค‘์— ๊ฒ€์‚ฌํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•ด mongomirror ์ ˆ์ฐจ์˜ ์ถœ๋ ฅ ๋กœ๊ทธ๋ฅผ ํŒŒ์ผ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ mongomirror.log ํŒŒ์ผ์— ์ถœ๋ ฅ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

mongomirror <args> 2>&1 | tee -a mongomirror.log

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ