๐Ÿ“Œmysqldump๋ฅผ ํ™œ์šฉํ•œ ๋ฐฑ์—…

mysqldump๋Š” MySQL์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฑ์—… ๋„๊ตฌ๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ SQL ํ˜•ํƒœ๋กœ ๋คํ”„ํ•˜์—ฌ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋…ผ๋ฆฌ์  ๋ฐฑ์—… ๋ฐฉ์‹์œผ๋กœ, ๋ฐฑ์—…๋œ SQL ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ:

mysqldump -u [์‚ฌ์šฉ์ž๋ช…] -p[๋น„๋ฐ€๋ฒˆํ˜ธ] [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…] > [๋ฐฑ์—…ํŒŒ์ผ๋ช…].sql

์žฅ์ :

๋‹จ์ :

๐Ÿ› ๏ธ XtraBackup์„ ํ™œ์šฉํ•œ ๋ฐฑ์—…

XtraBackup์€ Percona์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ฐฑ์—… ๋„๊ตฌ๋กœ, MySQL๊ณผ MariaDB์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฌผ๋ฆฌ์  ๋ฐฑ์—… ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ๋ฐฑ์—…ํ•˜๋ฉฐ, ํ•ซ ๋ฐฑ์—…(Hot Backup)์„ ์ง€์›ํ•˜์—ฌ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ:

xtrabackup --backup --target-dir=/backup/mysql/

์žฅ์ :

๋‹จ์ :


โณ PITR(Point-in-Time Recovery) ์‹ฌํ™” ๊ฐœ๋… ์ •๋ฆฌ


๐ŸŽž๏ธ ๋น„์œ : ์˜ํ™” ์ดฌ์˜๊ณผ ๋˜๊ฐ๊ธฐ

์ƒ๊ฐํ•ด๋ณผ๊นŒ์š”?

๋‹น์‹ ์ด ์˜ํ™”๋ฅผ ์ดฌ์˜ํ•˜๋Š” ๊ฐ๋…์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

๋งค์ผ ๋งค์ผ ์ƒˆ๋กœ์šด ์žฅ๋ฉด์„ ์ฐ๊ณ  ์žˆ๋Š”๋ฐ,

์–ด๋А ๋‚  ์ดฌ์˜ํ•˜๋‹ค ์‹ค์ˆ˜ํ•ด์„œ ์ค‘์š”ํ•œ ์žฅ๋ฉด์ด ์ž˜๋ชป ์ฐํ˜”์–ด์š”.

๊ทธ๋Ÿฐ๋ฐ ๋‹คํ–‰ํžˆ๋„!

PITR์€ ๋งˆ์น˜ ์ดฌ์˜ํ•œ ์˜ํ™”๋ฅผ ํŠน์ • ์žฅ๋ฉด๊นŒ์ง€ ๋˜๊ฐ๊ธฐ(๋ณต๊ตฌ)ํ•ด์„œ ์‹ค์ˆ˜ํ•˜๊ธฐ ์ „ ์ƒํƒœ๋กœ ๋Œ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์•„์š”!


๐Ÿ“Œ PITR ํ•ต์‹ฌ ๊ฐœ๋… ์‰ฝ๊ฒŒ ํ’€๊ธฐ

๋‹จ๊ณ„ ์˜ํ™” ๋น„์œ  DB์—์„œ๋Š”
1. ๊ธฐ์ดˆ ๋ฐฑ์—… ๋งค์ผ ํ…Œ์ดํ”„์— ์ดฌ์˜ ๋‚ด์šฉ ์ €์žฅ DB ์ „์ฒด ๋ฐฑ์—… ์ˆ˜ํ–‰
2. ๋กœ๊ทธ ํŒŒ์ผ ๋ณด๊ด€ ์ดฌ์˜ํ•  ๋•Œ๋งˆ๋‹ค ์ผ์ง€์— ์–ด๋–ค ์žฅ๋ฉด ์ฐ์—ˆ๋Š”์ง€ ๊ธฐ๋ก ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๊ธฐ๋ก
3. ๋ณต๊ตฌ ์‹œ์  ๊ฒฐ์ • โ€œ์–ด์ œ ์ ์‹ฌ ์ „์— ์ฐ์€ ์žฅ๋ฉด๊นŒ์ง€๋งŒ ์‚ด๋ฆฌ๊ณ  ์‹ถ๋‹คโ€ ๋ณต๊ตฌํ•  ์ •ํ™•ํ•œ ์‹œ๊ฐ„/ํŠธ๋žœ์žญ์…˜ ๊ฒฐ์ •
4. ๋กœ๊ทธ ์žฌ์ƒ ํ…Œ์ดํ”„ ๋Œ๋ฆฌ๊ณ , ์ผ์ง€ ๋ณด๋ฉฐ ์žฅ๋ฉด ์ˆœ์„œ๋Œ€๋กœ ๋ณต์› ์ „์ฒด ๋ฐฑ์—… ๋ณต์› ํ›„ ๋กœ๊ทธ๋ฅผ ์‹œ์ ๊นŒ์ง€ ์žฌ์ ์šฉ

๐Ÿšš ํƒ๋ฐฐ ํšŒ์‚ฌ ๋น„์œ !

  1. 3์›” 1์ผ: ์ฐฝ๊ณ  ๋ฌผ๋ฅ˜ ์ „์ฒด ๋ชฉ๋ก ์Šค์บ”ํ•ด ๋ณต์‚ฌ๋ณธ ๋ณด๊ด€ (์ „์ฒด ๋ฐฑ์—…)
  2. 3์›” 2์ผ~5์ผ: ๋งค์ผ ํƒ๋ฐฐ ์ถ”๊ฐ€, ์ด๋™ ๊ธฐ๋ก์„œ ์ž‘์„ฑ (๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ)
  3. 3์›” 6์ผ ์˜คํ›„ 2์‹œ: ์‹ค์ˆ˜๋กœ ์ž˜๋ชป๋œ ํƒ๋ฐฐ ์ถœ๊ณ ! ๐Ÿ˜ฑ

๐Ÿ“ข โ†’ โ€œ3์›” 6์ผ ์˜คํ›„ 1์‹œ๊นŒ์ง€๋งŒ ์ •์ƒ ๋ฐ์ดํ„ฐ๋กœ ๋Œ๋ ค์ค˜!โ€

๋ณต๊ตฌ ์ ˆ์ฐจ:

  1. 3์›” 1์ผ ์Šค์บ”ํ•ด๋‘” ๋ณต์‚ฌ๋ณธ ๋ณต์›
  2. 3์›” 2์ผ๋ถ€ํ„ฐ 3์›” 6์ผ ์˜คํ›„ 1์‹œ๊นŒ์ง€๋งŒ ๊ธฐ๋ก์„œ(๋กœ๊ทธ)๋ฅผ ์ฐจ๊ทผํžˆ ๋ฐ˜์˜
  3. ์ดํ›„ ์ž˜๋ชป๋œ ํƒ๋ฐฐ ์ถœ๊ณ ๋Š” ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Œ

๐Ÿ› ๏ธ ์‹ค์ œ SQL ์˜ˆ์‹œ๋กœ ์ •๋ฆฌํ•˜๊ธฐ (MariaDB ๊ธฐ์ค€)

๐Ÿ”น 1. ์ „์ฒด ๋ฐฑ์—… ์ˆ˜ํ–‰

mysqldump -u root -p --all-databases > full_backup_20250301.sq


๐Ÿ”น 2. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ํ™œ์„ฑํ™” (my.cnf ์„ค์ •)

[mysqld]
log-bin=mysql-bin
server-id=1

๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ์ž๋™ ๊ธฐ๋ก ์‹œ์ž‘


๐Ÿ”น 3. ์žฅ์•  ๋ฐœ์ƒ & ๋ณต๊ตฌ ์‹œ์  ๊ฒฐ์ •

์˜ˆ: ์žฅ์•  ๋ฐœ์ƒ ์‹œ๊ฐ„ = 2025-03-06 14:00:00

๋ณต๊ตฌ ๋ชฉํ‘œ: 2025-03-06 13:59:59 ์ƒํƒœ๊นŒ์ง€ ๋˜๋Œ๋ฆฌ๊ธฐ


๐Ÿ”น 4. ๋ณต๊ตฌ ์ ˆ์ฐจ

(1) ์ „์ฒด ๋ฐฑ์—… ๋ณต์›

mysql -u root -p < full_backup_20250301.sql

(2) ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ์ ์šฉ (PITR)

mysqlbinlog --stop-datetime="2025-03-06 13:59:59" mysql-bin.000001 | mysql -u root -p

โžก๏ธ ์ง€์ •ํ•œ ์‹œ์ ๊นŒ์ง€์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ๋ฐ˜์˜


โœ… PITR์˜ ํ•ต์‹ฌ ์žฅ์ 

ํŠน์ง• ์„ค๋ช…
์ •ํ™•ํ•œ ์‹œ์  ๋ณต๊ตฌ ๊ฐ€๋Šฅ ์‹ค์ˆ˜๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ง์ „๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ๋งŒ ์‚ด๋ฆด ์ˆ˜ ์žˆ์Œ
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ ํŠธ๋žœ์žญ์…˜ ์ˆœ์„œ๋Œ€๋กœ ์žฌ์ƒ, ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€
๋ถ€๋ถ„์  ๋ณต๊ตฌ ๊ฐ€๋Šฅ ์ „์ฒด ๋ณต๊ตฌ๋ฟ ์•„๋‹ˆ๋ผ ํŠน์ • ์‹œ๊ฐ„๋งŒ ์„ ํƒ ๊ฐ€๋Šฅ

๐ŸŽฏ PITR์„ ์ž˜ ํ™œ์šฉํ•˜๋ ค๋ฉด?


๐Ÿš€ ์‹ค๋ฌด ํŒ & ์ฃผ์˜์‚ฌํ•ญ


๐Ÿ“ข ์ •๋ฆฌ

๋‹จ๊ณ„ ์„ค๋ช…
1. ์ „์ฒด ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šค๋ƒ…์ƒท
2. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ๋ณด๊ด€ ๋ณ€๊ฒฝ ๋‚ด์—ญ ์‹œ๊ฐ„์ˆœ ๊ธฐ๋ก
3. ๋ณต๊ตฌ ์‹œ์  ๊ฒฐ์ • ์žฅ์•  ์ง์ „ ์›ํ•˜๋Š” ์‹œ๊ฐ„ ์„ ํƒ
4. ๋กœ๊ทธ ์žฌ์ƒ ๋ฐฑ์—… + ๋กœ๊ทธ๋กœ ์ •ํ™•ํ•œ ์‹œ์  ๋ณต๊ตฌ

๐Ÿ“ฆ ๋กœ๊ทธ ํŒŒ์ผ์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ ๋ฐ ์žฅ์•  ๋ณต๊ตฌ ์ „๋žต ์‹ฌํ™” ๊ฐœ๋… ์ •๋ฆฌ


๐Ÿšš ๋น„์œ : ํƒ๋ฐฐ ํšŒ์‚ฌ์˜ ๋ฌผ๋ฅ˜ ์‹œ์Šคํ…œ์— ๋น„์œ ํ•ด๋ณด๊ธฐ

์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

๋‹น์‹ ์ด ํƒ๋ฐฐ ํšŒ์‚ฌ์˜ ์šด์˜ ์ฑ…์ž„์ž๋ผ๊ณ  ํ•ด์š”.

๋งค์ผ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํƒ๋ฐฐ๊ฐ€ ์ „๊ตญ์„ ๋Œ์•„๋‹ค๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ๊ฐ€๋” ์ฐฝ๊ณ  ํ™”์žฌ, ์‹œ์Šคํ…œ ์˜ค๋ฅ˜, ๋„๋‚œ ๋“ฑ์˜ ์‚ฌ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด์š”.

๊ทธ๋ž˜์„œ ํƒ๋ฐฐ ํšŒ์‚ฌ๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋ก(log) ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๋น ๋ฅด๊ฒŒ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์š”.

DB์—์„œ ๋กœ๊ทธ ํŒŒ์ผ๊ณผ ๋ณต๊ตฌ ์ „๋žต์ด ํ•˜๋Š” ์—ญํ• ์ด ๋ฐ”๋กœ ์ด๊ฒƒ๊ณผ ๊ฐ™์•„์š”!


๐Ÿ“„ 1. ์ฃผ์š” ๋กœ๊ทธ ํŒŒ์ผ = ํƒ๋ฐฐ ํšŒ์‚ฌ์˜ ๊ธฐ๋ก ์‹œ์Šคํ…œ

๋กœ๊ทธ ํŒŒ์ผ ํƒ๋ฐฐ ํšŒ์‚ฌ ๋น„์œ  ์„ค๋ช…
๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ํƒ๋ฐฐ ์ด๋™ ๊ธฐ๋ก์„œ: ์–ด๋–ค ํƒ๋ฐฐ๊ฐ€ ์–ธ์ œ, ์–ด๋””์„œ, ์–ด๋””๋กœ ์ด๋™ํ–ˆ๋Š”์ง€ ์ „๋ถ€ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ (INSERT, UPDATE, DELETE ๋“ฑ) ๊ธฐ๋ก. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ ์‹œ ํ•ต์‹ฌ ์—ญํ• .
์—๋Ÿฌ ๋กœ๊ทธ ์‚ฌ๊ณ  ์ผ์ง€: ์ฐฝ๊ณ  ํ™”์žฌ, ์‚ฌ๊ณ  ๋ฐœ์ƒ ์‹œ ๋ณด๊ณ ์„œ DB ์„œ๋ฒ„์—์„œ ์—๋Ÿฌ, ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ๊ธฐ๋ก. ์žฅ์•  ์›์ธ ํŒŒ์•…์— ํ•„์š”.
์ผ๋ฐ˜ ์ฟผ๋ฆฌ ๋กœ๊ทธ ํ†ตํ™” ๊ธฐ๋ก: ๊ณ ๊ฐ์ด ์ฝœ์„ผํ„ฐ์— ์ „ํ™”ํ•œ ๋ชจ๋“  ๊ธฐ๋ก ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ๊ธฐ๋ก. ์ฃผ๋กœ ๋””๋ฒ„๊น…, ๋ฌธ์ œ ์›์ธ ๋ถ„์„ ์‹œ ์‚ฌ์šฉ.

๐Ÿ”ฅ 2. ์žฅ์•  ๋ณต๊ตฌ ์ „๋žต = ์œ„๊ธฐ ๋Œ€์‘ ๋งค๋‰ด์–ผ

๐Ÿ“Œ ์ •๊ธฐ์ ์ธ ๋ฐฑ์—… = ์ฐฝ๊ณ ์— ๋ฌผ๊ฑด ์Šค์บ” & ๋ณต์‚ฌ๋ณธ ๋ณด๊ด€

์˜ˆ์‹œ

  • ๋งค์ผ ์ƒˆ๋ฒฝ 2์‹œ: ์ „์ฒด ๋ฐ์ดํ„ฐ ๋ฐฑ์—…
  • ๋งค์‹œ๊ฐ„: ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ์ฆ๋ถ„ ๋ฐฑ์—…

๐Ÿ“Œ ๋กœ๊ทธ ํŒŒ์ผ ๋ชจ๋‹ˆํ„ฐ๋ง = CCTV & ์‹ค์‹œ๊ฐ„ ๊ฒฝ๋ณด ์‹œ์Šคํ…œ

DB์—์„œ๋Š” ๋กœ๊ทธ ํŒŒ์ผ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋กœ ์ด์ƒ ์ง•ํ›„(์—๋Ÿฌ, ๋น„์ •์ƒ ์ฟผ๋ฆฌ)๋ฅผ ์กฐ๊ธฐ์— ํƒ์ง€.


๐Ÿ“Œ ๋ณต๊ตฌ ์ ˆ์ฐจ ๋งˆ๋ จ = ์žฌ๋‚œ ๋งค๋‰ด์–ผ ๋งŒ๋“ค๊ธฐ & ์ง์› ํ›ˆ๋ จ


๐Ÿ“Œ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์ถ• = ๊ฐ€์ƒ ์‚ฌ๊ณ  ํ›ˆ๋ จ



๐ŸŽฏ Point-In-Time Recovery(PITR) ์˜ˆ์ œ๋กœ ์ดํ•ดํ•˜๊ธฐ

๐Ÿšš ํƒ๋ฐฐ ํšŒ์‚ฌ ๋น„์œ  ์˜ˆ์‹œ

  1. 3์›” 1์ผ: ์ฐฝ๊ณ  ๋‚ด ๋ชจ๋“  ํƒ๋ฐฐ ๋ชฉ๋ก ์Šค์บ” (์ „์ฒด ๋ฐฑ์—…)
  2. 3์›” 2~5์ผ: ๋งค์ผ ์ƒˆ๋กœ์šด ํƒ๋ฐฐ ์ถ”๊ฐ€/์ด๋™ ๊ธฐ๋ก์„œ ์ž‘์„ฑ (๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ)
  3. 3์›” 6์ผ ์˜คํ›„ 3์‹œ: ์ฐฝ๊ณ  ํ™”์žฌ ๋ฐœ์ƒ!

๐Ÿ”ฅ ๋ณต๊ตฌ ์ ˆ์ฐจ:


๐Ÿ“Š SQL ์‹ค์ œ ์˜ˆ์ œ

-- 1. ์ „์ฒด ๋ฐฑ์—…์—์„œ ๋ณต์› (mysqldump ์‚ฌ์šฉ)
mysql -u root -p < full_backup_20250301.sql

-- 2. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ๋ฅผ ํŠน์ • ์‹œ์ ๊นŒ์ง€ ์ ์šฉ
mysqlbinlog --stop-datetime="2025-03-06 15:00:00" binlog.000001 | mysql -u root -p

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด 3์›” 6์ผ ์˜คํ›„ 3์‹œ ์ด์ „ ์ƒํƒœ๋กœ ์™„๋ฒฝ ๋ณต๊ตฌ!


โœ… ํ•ต์‹ฌ ์ •๋ฆฌ

๊ฐœ๋… ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์˜ˆ์‹œ
๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ๋‚ด์—ญ ๊ธฐ๋ก์„œ ํƒ๋ฐฐ ์ด๋™ ๊ธฐ๋ก์„œ
์—๋Ÿฌ ๋กœ๊ทธ ์‚ฌ๊ณ  ๋ณด๊ณ ์„œ ์ฐฝ๊ณ  ํ™”์žฌ, ์‹œ์Šคํ…œ ๋ฌธ์ œ
์ •๊ธฐ ๋ฐฑ์—… ์ฐฝ๊ณ  ์ „์ฒด ์Šค์บ” ๋ฐ ๋ณต์‚ฌ๋ณธ ์ €์žฅ mysqldump๋กœ ์ •๊ธฐ ๋ฐฑ์—…
PITR ์‚ฌ๊ณ  ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ์ „์ฒด ๋ฐฑ์—… + ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ์žฌ์ ์šฉ
ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ฐ€์ƒ ํ›ˆ๋ จ์žฅ ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค ํ…Œ์ŠคํŠธ ์„œ๋ฒ„์—์„œ ์ฃผ๊ธฐ์  ํ…Œ์ŠคํŠธ

๐Ÿš€ ์‹ค๋ฌด์—์„œ์˜ ํ™œ์šฉ ํŒ