LINUX
2018.09.23 / 16:02

Docker ±â¹Ý À§ÀÇ MariaDB DB ¹é¾÷Çϱâ (SQLDump)

hangawee
Ãßõ ¼ö 106

Docker ±â¹Ý À§¿¡¼­ µ¿ÀÛÇÏ´Â MariaDB ¹é¾÷Çϱâ

Àü¿¡ ÁøÇàÇÏ´ø ÇÁ·ÎÁ§Æ®ÀÇ DB´Â Docker ±â¹Ý À§ÀÇ MariaDB¸¦ »ç¿ëÇÏ¿´´Ù.
±×·±µ¥ ¸î °¡Áö °í¹ÎÀ» ÇÏ´ø °Í Áß¿¡ Çϳª´Â Docker ±â¹ÝÀÇ MariaDB¸¦ ¹é¾÷ÇÏ´Â ¹æ¹ýÀ̾ú´Ù.
±×·¡¼­ ¹æ¹ýÀ» ã¾Æº¸¾Ò°í, ÀÌ°ÍÀ» Æ÷½ºÆÃÇÏ·Á ÇÑ´Ù.


How to Backup?

¸í·É¾î´Â ¾Æ·¡¿Í °°´Ù.

sudo docker exec CONTAINER /usr/bin/mysqldump -u root –password=root DATABASE > backup.sql

CONTAINER´Â ÄÁÅ×ÀÌ³Ê À̸§Àε¥ mariadb ÄÁÅ×À̳ʸ¦ ¼³Á¤ÇÑ À̸§À» Àû¾îÁØ´Ù.
rootÀÇ ºñ¹øÀ» ÀÔ·ÂÇÏ°í, DATABASE´Â ¹é¾÷ÇÒ µ¥ÀÌÅͺ£À̽º À̸§À» ÀÔ·ÂÇÑ´Ù.
backup.sqlÀº dump ÆÄÀÏÀÌ ÀúÀåµÉ À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù.

±×¸®°í ÀÌ°ÍÀ» ½© ½ºÅ©¸³Æ®·Î ¸¸µé¾îº¸¾Ò´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh

backupPath='/home/ec2-user/backup/db'
fileName='db_$(date +%Y%m%d)_$(date +%H%M%S).sql' #db_[³â¿ùÀÏ]_[½ÃºÐÃÊ].sql

# ¹é¾÷ µð·ºÅ丮´Â /backupPath/³â¿ù/ÀÏ À» üũÇÏ¿© ¾ø´Â °æ¿ì »ý¼º
if [ ! -d $backupPath/$(date +%Y%m)/$(date +%d) ]
then
mkdir -p $backupPath/$(date +%Y%m)/$(date +%d)
fi

sudo docker exec mariadb /usr/bin/mysqldump -u sample --password=tmppw db > $backupPath//$(date +%Y%m)/$(date +%d)/ttp_$(date +%Y%m%d)_$(date +%H%M%S).sql

±×¸®°í ÀÌ°ÍÀ» Å©·ÐÅÇÀ¸·Î µî·ÏÇÏ¿© »ç¿ëÇÏ¸é ´õ Æí¸®ÇÏ´Ù.


How to Restore?

º¹±¸´Â ±×·³ ¾î¶»°Ô ÇØ¾ß Çϴ°¡?
¾Æ·¡ÀÇ ¸í·É¾î¸¦ Âü°íÇÏÀÚ.

cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root –password=root DATABASE

cat ¸í·É¾î·Î dump ÆÄÀÏ °æ·Î ¹× .sql ÆÄÀϸíÀ» Àû¾îÁÖ°í ÆÄÀÌÇÁ·Î ¿¬°áµÈ ¸í·É¾î¸¦ ¾Ë¸Â°Ô ÀÔ·ÂÇÏ¸é µÈ´Ù.