[DBMS] mysql ¹é¾÷(Backup) ¹× º¹±¸(Recover)
±Û¾´ÀÌ ÀüÁøÇϴ¾Ƹ£°í ³¯ Â¥ 07-06-13 10:15 Á¶ ȸ 2322
Mysql ¹é¾÷
¿ì¼± Mysql ÀÌ /usr/local/mysql/¿¡ ¼³Ä¡µÇ¾îÀÖÀ¸¸ç Mysql configure½Ã
--localstatedir=/usr/local/mysql/data ¿É¼ÇÀ» ÁÖ°í ¼³Ä¡Çß´Ù°í °¡Á¤ÇÏ°Ú´Ù.
¹é¾÷ ¹æ¹ýÀ¸·Î´Â Å©°Ô 2°¡Áö°¡ ÀÖ´Ù.
Mysql DB µ¥ÀÌÅÍ ÈÀÏÀ» Á÷Á¢ ¹é¾÷ÇÏ´Â °æ¿ì¿Í mysqldump ¹®À» ÀÌ¿ëÇÏ¿© sql¹®À» ¹é¾÷¹Þ´Â¹æ¹ýÀÌ ÀÖ´Ù
1. µ¥ÀÌÅÍ ÈÀÏ Á÷Á¢¹é¾÷
º¸ÅëÀÇ °æ¿ì Mysql À» »ç¿ëÇÏ´Â Type ÀÌ InnoDB¿Í Myisam ÀÌ ÀÖ´Ù.
µÎ Type ÀÇ Â÷ÀÌ´Â ¿©·¯°¡Áö°¡ ÀÖÁö¸¸ ¿©±â¼ ¾ð±ÞÇϴ°ÍÀº µ¥ÀÌÅÍ ÈÀÏ ¹é¾÷¿¡ °ü·ÃµÈ°ÍÀ̹ǷÎ
µ¥ÀÌÅÍ ÈÀÏÀÇ À§Ä¡¸¦ ¾ð±ÞÇÏ°Ú´Ù.
nnodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
InnoDB ÀÇ °æ¿ì ÀϹÝÀûÀ¸·Î À§ÀÇ /etc/my.cnf ¿¡¼ ¼³Á¤µÈ °Í°ú °°ÀÌ
ibdata1, ibdata2 °ú °°Àº ÈÀÏ¿¡ index ¹× ÆÄÀϵ¥ÀÌÅÍ°¡ ÀúÀåµÈ´Ù. ±×¸®°í DB ¹× Å×À̺í Á¤º¸´Â
/usr/local/mysql/data/DB¸í/Å×À̺í¸í.frm °ú °°Àº ±¸Á¶·Î ÀÌ·ç¾îÁ® ÀÖ´Ù.
±×·¯¹Ç·Î ibdata1 ¿Í °°Àº ÈÀÏ°ú /usr/local/mysql/data/DB¸í/Å×À̺í¸í.frm ÈÀϵéÀ» º¹»çÇÏ¸é ¹é¾÷ÇϸéµÈ´Ù.
Myisam ÀÎ °æ¿ì´Â Á»´õ Á÷°üÀûÀÌ´Ù.
/usr/local/mysql/data/DB¸í ¿¡ ÀÖ´Â ÈÀÏÀ» Åë°·Î ¹é¾÷¹ÞÀ¸¸é µÈ´Ù.
ƯÁ¤ DBÀÇ Æ¯Á¤ Å×ÀÌºí¸¸ ¹é¾÷¹ÞÀ» °æ¿ì¿¡´Â..
/usr/local/mysql/data/DB¸í/Å×À̺í¸í.frm # Å×ÀÌºí ±¸Á¶
/usr/local/mysql/data/DB¸í/Å×À̺í¸í.MYD # Myisam Type Å×À̺íÀÇ DATA
/usr/local/mysql/data/DB¸í/Å×À̺í¸í.MYI # Myisam Type Å×À̺íÀÇ index
À§ÀÇ 3°³ ÈÀϸ¸ ´Ù¿î¹ÞÀ¸¸é µÈ´Ù.
¹°·Ð data µð·ºÅ丮¸¦ Åë°·Î ¹é¾÷¹ÞÀ»¼öµµ ÀÖ´Ù.
´Ù¸¸ ÀÌ·± Á÷Á¢ÀûÀ¸·Î ÆÄÀÏÀ» ¹é¾÷¹Þ´Â ¹æ¹ýÀº...
Mysql ¹öÁ¯ÀÌ ´Þ¶óÁ³À»¶§ ¹®Á¦°¡ µÉ¼öµµ ÀÖÀ¸´Ï...
°¡±ÞÀûÀ̸é mysqldump ¸¦ ÀÌ¿ëÇϴ°ÍÀÌ ÁÁ´Ù.
2. mysqldump¸¦ ÀÌ¿ëÇÑ Backup
°¡Àå ³Î¸® ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ°í °¡Àå È®½ÇÇÑ ¹æ¹ýÀÌ´Ù.
´Ù¸¸ DB µ¥ÀÌÅÍ°¡ Å« °æ¿ì Backup ½Ã°£ÀÌ ¸¹ÀÌ °É¸±¼ö Àֱ⠶§¹®¿¡
º¸Åë Å©·ÐµîÀ» ÀÌ¿ëÇÏ¿© ÁÖ±âÀûÀ¸·Î »õº®½Ã°£À» ÀÌ¿ëÇÏ¿© ¹é¾÷¹Þ´Â´Ù.
»ç¿ë¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
/usr/local/mysql/bin/mysqldump -uroot -pPassword [¹é¾÷¿É¼Ç] [ȯ°æ¿É¼Ç] > /BackUp/Mysql/Backup.sql
/BackUp/Mysql/ <== ÀÓÀÇ·Î Á¤ÇÑ ¹é¾÷ÈÀÏ À§Ä¡ÀÌ´Ù.
[¹é¾÷¿É¼Ç] ÀÇ ³»¿ëÀº ¾Æ·¡ÀÇ 4°¡Áö ÇüŸ¸ ¾Ë¾Æµµ µÉµíÇÏ´Ù.
¿É¼Çµé¿¡ ÁÖÀÇ ÇØÁÖ¸é ´Ù¾çÇÑ ÇüÅ·Π¹é¾÷À» ¹ÞÀ»¼ö ÀÖ´Ù.
--all-databases # mysql DB Àüü¸¦ ¹é¾÷´Ù´Â°ÍÀ» ÀǹÌÇÑ´Ù.
--databases DB1 DB2 DB3 # mysql ¿¡¼ ƯÁ¤ DB¸¸ ¹é¾÷¹Þ´Â °ÍÀ» ÀǹÌÇÑ´Ù.
DB1 # DB1 À̶ó´Â DB ¸¸ ¹é¾÷¹ÞÀ»¶§ »ç¿ëÇÑ´Ù.
DB1 table1 # DB1 À̶ó´Â DBÀÇ table1 À̶ó´Â Å×ÀÌºí¸¸ ¹é¾÷¹ÞÀ»¶§ »ç¿ëÇÑ´Ù.
[ȯ°æ¿É¼Ç]Àº ¹é¾÷½Ã¿¡ ¾î¶²È¯°æÀ¸·Î ¹é¾÷À» ÇÒ°ÍÀΰ¡¿¡ ´ëÇÑ ¿É¼ÇÀÌ´Ù.
--default-character-set=utf8 # ÁöÁ¤µÈ ij¸¯ÅͼÂÀ» ±âº»À¸·ÎÇÔ
--set-charset # ±âº»ÁöÁ¤µÈ ij¸¯ÅͼÂ(default-character-set)À» SET NAMES default-character-set·Î ¼³Á¤
--opt # ¸Þ¸ð¸®¿¡ ·ÎµåÇÏÁö ¾Ê°í ¹Ù·Î ÈÀÏ·Î ´ýÇÁ
--create-options # create¹® ¹é¾÷½Ã¿¡ Å×ÀÌºí ¼³Á¤À» Æ÷ÇÔÇÔ.
--compatible=DB # ¹é¾÷sqlÀÌ Æ¯Á¤ db¿¡ ȣȯµÇµµ·Ï ÇÔ ¿¹) mysql40, mysql41, oracle, mssql
--extended-insert=FALSE # insert ¹®À» ÇÑÁÙ¾¿ ¸¸µç´Ù
--result-file=file # ÁöÁ¤µÈ file ·Î ¹Ù·Î ³ÖÀ½.. "> /BackUp/Mysql/Backup.sql" °ú °°Àº ÀǹÌ
--triggers # Æ®¸®°Å ´ýÇÁ
--no-create-db # DB »ý¼ºÁ¤º¸¸¦ »
--no-create-info # Å×ÀÌºí »ý¼ºÁ¤º¸¸¦ »
--no-data # Å×À̺íÀÇ µ¥ÀÌÅ͸¦ »
ÀÌ¿Ü¿¡µµ ¸¹Àº ¿É¼ÇÀÌ ÀÖÁö¸¸ °ÅÀÇ »ç¿ëÇÒÀÏÀÌ ¾ø¾î¼ ³ªµµ À߸𸥴Ù.
°øºÎÇÏ°í ½ÍÀ¸½ÅºÐµéÀº mysqlkorea.com À̳ª mysql.com ¿¡¼ ã¾Æº¸½Ã±æ..
º¹±¸(Recover)
º¹±¸´Â »ó´çÈ÷ °£´ÜÇÏ´Ù.
/usr/local/mysql/bin/mysql -uroot -pPassword < /BackUp/Mysql/Backup.sql
À§ÀÇ ¹æ¹ýÀº Àüüº¹±¸ÀÌ¸ç ´ÜÀ§ DB°¡ »ý¼ºµÇ¾î Àִ»óÅ¿¡¼ dbº° ¹é¾÷Àº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
/usr/local/mysql/bin/mysql -uroot -pPassword DB¸í< /BackUp/Mysql/Backup.sql
´ë¿ë·®DB º¹±¸¸¦ À§ÇÑ ¹é¾÷
ÆÁÀ¸·Î ´ë¿ë·®ÀÇ Table À» ´ýÇÁ ¹Þ¾Æ¼ ÀÔ·ÂÇÒ¶§...
ÀԷ¼ӵµ ¶§¹®¿¡ ¹®Á¦°¡ »ý±â´Â °æ¿ì°¡ ÀÖ´Ù.
¾Æ¸¶µµ ´ëºÎºÐÀÌ InnoDB¶ó¼ ±×·± ¹®Á¦°¡ »ý±âÁö ½Í´Ù.
±×·²¶§´Â Table Type À» InnoDB¿¡¼ Myisam À¸·Î ¹Ù²Ù°í Insert ±×¸®°í ´Ù ÀÔ·ÂµÈ ´ÙÀ½..
Table TypeÀ» ´Ù½Ã InnoDB·Î ¹Ù²Ù´Â°Ô ºü¸£´Ù.
±×·¡µµ ¼Óµµ°¡ ´À¸®´Ù¸é Mysql ¿¡¼ LOAD DATA INFILE À» ½ÇÇàÇÏ¿©.. CSV °°Àº µ¥ÀÌÅ͸¦ ÀԷ¹޴°Ô
°¡Àå ºü¸£´Ù.
´ÙÀ½Àº ÇϳªÀÇ DB(DB¿¡ Æ÷ÇÔµÈ ¸ðµç Å×À̺í Á¤º¸)¿¡ °üÇÑ DDL¹® Çϳª¿Í °¢ Å×ÀÌºíº° CSV µ¥ÀÌÅ͸¦ ¸¸µå´Â
¹æ¹ýÀÌ´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ» ½ÇÇà½ÃÅ°±â ÀÌÀü¿¡ ¿ì¼± /¹é¾÷µð·ºÅ丮 ¼³Á¤À» ¸ÕÀúÇؾßÇÑ´Ù.
°©ÀÚ±â ¿Ø ¹é¾÷µð·ºÅ丮 ¼³Á¤À̳Ķó°í ¹°À»¼ö Àִµ¥.. CSV ·Î ¸¸µé°æ¿ì mysql À̶ó´Â À¯Àú±ÇÇÑÀ¸·Î
ÆÄÀϵéÀÌ »ý¼ºµÇ±â ¶§¹®¿¡ mysql ÀÌ ¾²±â±ÇÇÑÀÌ ÀÖ¾î¾ßÇÑ´Ù.
/usr/local/mysql/bin/mysqldump -u root -pPASSWORD DB --no-data > /¹é¾÷µð·ºÅ丮/DB.sql
À§ÀÇ dump ¸í·ÉÀº db ±¸Á¶¸¸ ¹é¾÷¹Þ´Â°ÍÀÌ´Ù.
/usr/local/mysql/bin/mysqldump -u root -pPASSWORD DB --no-create-info --tab=/¹é¾÷µð·ºÅ丮 --fields-terminated-by=',' --lines-terminated-by='\r\n' --fields-enclosed-by='"'
¿©±â¼ ÁÖÀÇÇØ¾ß ÇÒ°ÍÀº °¢ Å×ÀÌºíº°·Î "--tab=/¹é¾÷µð·ºÅ丮" Á¤ÀÇµÈ °÷¿¡ table¸í.txt ÈÀÏ·Î CSV ÈÀÏÀÌ
»ý¼ºµÈ´Ù´Â °ÍÀÌ´Ù. ¸¸¾à --no-create-info ¿É¼ÇÀ» ÁÖÁö ¾Ê´Â°æ¿ì¿¡´Â "--tab=/¹é¾÷µð·ºÅ丮"¿¡ Á¤ÀÇµÈ ´ë·Î
ÇØ´çµð·ºÅ丮¿¡ Å×À̺í DDL ¹®ÀåÀÌ Å×À̺í¸í.sql ·Î °¢°¢ »ý¼ºÀ̵ȴÙ.
°¢Å×ÀÌºíº°·Î DDL¹®°ú CSV ÈÀÏÀ» ¹é¾÷¹Þ°í ½Í´Ù¸é..
/usr/local/mysql/bin/mysqldump -u root -pPASSWORD DB --tab=/¹é¾÷µð·ºÅ丮 --fields-terminated-by=',' --lines-terminated-by='\r\n' --fields-enclosed-by='"'
ÀÌ¿Í °°ÀÌ ÇϸéµÈ´Ù.
¸¸µé¾îÁø Å×À̺íDDL¹®°ú CSV µ¥ÀÌÅÍ·Î º¹±¸ÇÒ¶§´Â ¾Æ·¡¿Í °°ÀÌ..
/usr/local/mysql/bin/mysql -uroot -pPassword < /¹é¾÷µð·ºÅ丮/DB.sql
/usr/local/mysql/bin/mysql -uroot -pPassword DB¸í
mysql> load data infile '/¹é¾÷µð·ºÅ丮/Å×À̺í.txt' into table Å×À̺í¸í fields terminated by ',' enclosed by '"' lines terminated by '\r\n' fields ;
Âü°í1
--tab ¿É¼ÇÀ» »ç¿ëÇؼ CSV ÇüÅ·Π¹é¾÷ÇÒ¶§´Â --all-database ¿Í °°Àº ¿É¼Ç°ú °°ÀÌ »ç¿ëÇÒ¼ö¾ø´Ù.
--tab ¿É¼ÇÀº ÇϳªÀÇ DB ÀÌÇÏ¿¡¼¸¸ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.
Âü°í2
--fields-terminated-by=',' # Çʵ屸ºÐÀÚ
--fields-enclosed-by='"' # Çʵ带 ƯÁ¤±âÈ£·Î °¨½Î´Â°Í
--lines-terminated-by='\r\n' # ¶óÀα¸ºÐÀÚ(Å×ÀÌºí µ¥ÀÌÅÍÀÇ Row ±¸ºÐÀÚ)
|