| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 23. ¹é¾÷°ú º¹¿ø | Fast Forward | Next |
PostgreSQL´Â Ç×»ó, Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮 ¾Æ·¡ÀÇpg_xlog/µð·ºÅ丮 ³»¿¡¼¼±Çà ±âÀÔ ·Î±×(WAL)¸¦ °ü¸®Çϰí ÀÖ½À´Ï´Ù. ÀÌ ·Î±×´Â µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ÇàÇØÁø ¸ðµç º¯°æÀ» ±â¼úÇÕ´Ï´Ù. ÀÌ ·Î±×´Â ÁÖ·Î Å©·¡½¬½ÃÀÇ ¾ÈÀü¼ºÀ» ¸ñÀûÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. ½Ã½ºÅÛÀÌ Å©·¡½¬ Çß´Ù°í ÇØµµ, ¸¶Áö¸· üũ Æ÷ÀÎÆ® ÀÌÈÄ¿¡ ÀÛ¼ºµÈ ·Î±× Ç׸ñÀ»"´Ù½Ã ½ÇÇà"ÇÏ´Â °ÍÀ¸·Î, µ¥ÀÌÅͺ£À̽º¸¦ Àϰü¼ºÀ» À¯ÁöÇÑ »óÅ·Πº¹¿ø ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀÌ Á¸ÀçÇÏ´Â ·Î±× ÆÄÀÏÀ» »ç¿ëÇØ, µ¥ÀÌÅͺ£À̽ºÀÇ ¹é¾÷¿ëÀÇ Á¦3ÀÇ Àü·«ÀÌ °¡´ÉÇÏ°Ô µÇ¾ú½À´Ï´Ù. ÆÄÀÏ ½Ã½ºÅÛ ·¹º§ÀÇ ¹é¾÷°ú WAL ÆÄÀÏÀÇ ¹é¾÷À» Á¶ÇÕÇÑ´Ù°í ÇÏ´Â Àü·«ÀÔ´Ï´Ù. º¹±¸°¡ ÇÊ¿äÇÏ´Ù¸é, ¹é¾÷À» º¹¿øÇÏ¿©, ±× ÈÄ¿¡ ¹é¾÷ µÈ WAL ÆÄÀÏÀ» ´Ù½Ã ½ÇÇàÇÏ´Â °ÍÀ¸·Î, ÇöÀç½ÃÁ¡À¸·Î ¹é¾÷À» °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù. °ü¸®ÀÚ¿¡°Ô ÀÖ¾î¼ ÀÌ ¹æ¹ýÀº Áö±Ý±îÁö ¼³¸íÇÑ ¹æ¹ýº¸´Ù ²Ï º¹ÀâÇÏ°Ô µÇÁö¸¸, ´ÙÀ½°ú °°Àº Å« ÀÌÁ¡ÀÌ ´Ù¼ö ÀÖ½À´Ï´Ù.
½ÃÀÛ½ÃÁ¡ÀÇ ¹é¾÷°ú ¿ÏÀüÇÏ°Ô ÀÏÄ¡ ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±× ¹é¾÷³»ÀÇ ³»ºÎÀûÀÎ ºÒÀÏÄ¡´Â ·Î±×ÀÇ Àç½Ãµµ¿¡ ÀÇÇØ ¼öÁ¤µË´Ï´Ù (ÀÌ´Â Å©·¡½¬·ÎºÎÅÍÀÇ º¹±¸½Ã¿¡ ÇàÇØÁö´Â °Í°ú Å« Â÷ÀÌ´Â ¾ø½À´Ï´Ù). ±×·¯¹Ç·Î, ÆÄÀÏ ½Ã½ºÅÛÀÇ snapshot ±â´ÉÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê½À´Ï´Ù. ´ÜÁötarµîÀÇ ¾îÄ«À̺êÅøÀÌ ÇÊ¿äÇÕ´Ï´Ù.
WAL ÆÄÀÏÀÇ ÁÙÀ» ¼ö¿¡ Á¦ÇѾøÀÌ ´Ã¾î ³õ¾Æ ´Ù½Ã ½ÇÇà ÇÒ ¼ö Àֱ⠶§¹®¿¡, ´ÜÁö WAL ÆÄÀÏÀÇ º¸°üÀ» °è¼ÓÇÏ´Â °ÍÀ¸·Î ¿¬¼ÓÀûÀ¸·Î ¹é¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â ºó¹øÇÏ°Ô ¿ÏÀüÇÑ ¹é¾÷À» ½Ç½ÃÇÏ´Â °ÍÀÌ °ï¶õÇÑ ´ë±Ô¸ð µ¥ÀÌÅͺ£À̽º¿¡¼ ƯÈ÷ °¡Ä¡°¡ ÀÖ½À´Ï´Ù.
WAL Ç׸ñÀÇ Àç½Ãµµ¸¦ ³¡±îÁö ½Ç½ÃÇÏÁö ¾ÊÀ¸¸é ¾È µÈ´Ù´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Àç½Ãµµ¸¦ ÀÓÀÇÀÇ ½ÃÁ¡±îÁö·Î Á¤ÁöÇÒ ¼ö°¡ ÀÖ¾î ±×°Í¿¡ ÀÇÇØ, ±× ½ÃÁ¡±îÁöÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ Àϰü¼ºÀ» °¡Áø ½º³À¼¦À» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±â¼úÀÌÆ÷ÀÎÆ®-ÀÎ-ŸÀÓ º¹±¸(½ÃÁ¡º¹±¸)¸¦ º¸Á¶ÇÏ´Â °ÍÀ̾î¼, ÀÌ Àü¿¡ ¹é¾÷À» ½ÇÇàÇß´ø ÀÓÀÇÀÇ ½ÃÁ¡ »óÅ¿¡ µ¥ÀÌÅͺ£À̽º¸¦ º¹¿ø ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù.
¿¬¼ÓÀûÀ¸·Î ÀÏ·ÃÀÇ WAL ÆÄÀϵéÀ» µ¿ÀÏÇÑ ±âº» ¹é¾÷À» ·ÎµåÇϰí ÀÖ´Â ´Ù¸¥ ¸Ó½Å¿¡ ÀÔ·ÂÇÏ´Â ÇÑ´Ù¸é, "warm standby"½Ã½ºÅÛÀ» º¸À¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, ÀÓÀÇÀÇ ½ÃÁ¡¿¡¼ ±× 2¹øÂ°ÀÇ ¸Ó½ÅÀ» °ÅÀÇ Çö½ÃÁ¡ÀÇ µ¥ÀÌÅͺ£À̽ºÀÇ º¹Á¦¸¦ °¡Áø »óÅ·ΠÀ¯È¿ÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
º¸ÅëÀÇ ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷ ±â¼úÀÇ °æ¿ì¿Í °°ÀÌ, ÀÌ ¹æ¹ýÀº ÀϺο¡¼°¡ ¾Æ´Ñ µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍ ÀüüÀÇ º¹¿ø 󸮸¸À» Áö¿øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, º¸°ü¿ëÀ¸·Î ´ë·®ÀÇ ÀúÀå ¿µ¿ªÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±âº» ¹é¾÷Àº ºÎÇǰ¡ Ä¿Áö´Â °æ¿ì¿Í °íºÎÇÏÀÎ ½Ã½ºÅÛ¿¡¼´Â º¸°üÇØ¾ß ÇÏ´Â WALÀÇ À¯·®(¼ÒÅë·®)À» ¸Þ°¡¹ÙÀÌÆ® ´ÜÀ§·Î »ý¼ºÇÕ´Ï´Ù. ±×·³¿¡µµ ºÒ±¸Çϰí À̰ÍÀº °í½Å·Ú¼ºÀÌ ÇÊ¿äÇÑ ¸¹Àº »óȲµé¿¡¼ ¼±È£µÇ´Â ¹é¾÷ ±â¼úÀÔ´Ï´Ù.
°è¼ÓÀû ¾îÄ«À̺ê(¸¹Àº µ¥ÀÌÅͺ£À̽º venderµé¿¡ ÀÇÇØ"¿Â¶óÀÎ ¹é¾÷"À̶ó°íµµ ºÒ¸³´Ï´Ù)¸¦ »ç¿ëÇØ º¹±¸¸¦ ¼º°ø½Ã۱â À§Çؼ´Â Àû¾îµµ ¹é¾÷ÀÇ ½ÃÀÛ½ÃÁ¡±îÁö °Å½½·¯ ¿Ã¶ó°¡´Â ÀúÀåµÈ WAL ÆÄÀϵéÀÇ °è¼ÓÀûÀÎ ¹è¿ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ±×·¯¹Ç·Î, ¿î¿ëÇϱâ À§Çؼ´Â ÃÖÃÊÀÇ ±âº» ¹é¾÷À» ÃëµæÇϱâ Àü ¿¡ WAL ÆÄÀÏÀ» º¸°üÇÏ´Â ¼ø¼¸¦ ¼³Á¤ÇØ ½ÃÇèÇØ¾ß ÇÕ´Ï´Ù. µû¶ó¼, ¿ì¼± WAL ÆÄÀÏÀÇ º¸°ü ±¸Á¶¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
À̷лó, PostgreSQL½Ã½ºÅÛÀÇ °¡µ¿¿¡ ÀÇÇØ, ºÒ¸íÈ®ÇÏ°Ô WAL ±â·ÏÀÇ ÁÙÀÌ »ý¼ºµË´Ï´Ù. ½Ã½ºÅÛÀº ¹°¸®ÀûÀ¸·Î ÀÌ ÁÙÀ», º¸Åë °¢°¢ 16 ¸Þ°¡¹ÙÀÌÆ®(ÀÌ ¼¼±×¸ÕÆ® Å©±â´Â PostgreSQLÀÇ ±¸Ãà½Ã·Î º¯°æ °¡´ÉÇÕ´Ï´Ù)ÀÇ, WAL¼¼±×¸ÕÆ®(segment) ÆÄÀÏ¿¡ ºÐÇÒÇÕ´Ï´Ù. ÀÌ ¼¼±×¸ÕÆ®(segment) ÆÄÀÏ¿¡´Â °³³äÀûÀÎ WALÀÇ ÁÙ³»ÀÇ À§Ä¡¸¦ ¹Ý¿µÇÑ, ¼ýÀÚ·Î µÈ À̸§ÀÌ ºÎ¿©µË´Ï´Ù. WAL º¸°üÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, ½Ã½ºÅÛÀº º¸Åë ¸î °³ÀÇ ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀ» »ý¼ºÇØ, ºÒÇÊ¿äÇØÁø ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀÇ À̸§À» º¸´Ù Å« ¼¼±×¸ÕÆ®(segment) ¹øÈ£·Î º¯°æÇÏ´Â °ÍÀ¸·Î ±×°ÍÀ»"Àç½ÇÇà"ÇÕ´Ï´Ù. Á÷ÀüÀÇ Ã¼Å© Æ÷ÀÎÆ®º¸´Ù ÀüÀÇ ³»¿ëÀ» °¡Áö´Â ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀº »ç¿ëµÇÁö ¾ÊÀ¸¸é Àç½ÇÇàµÈ´Ù°í °¡Á¤µË´Ï´Ù.
WAL µ¥ÀÌÅ͸¦ º¸°üÇÏ´Â °æ¿ì, ¿Ï¼ºÇÑ ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀÇ °¢°¢ÀÇ ³»¿ëÀ» ²¨³», ÀçÀÌ¿ëÀ» À§Çؼ ȸ¼öµÇ±â Àü¿¡ ±× µ¥ÀÌÅ͸¦ ¾îµð¿£°¡ º¸Á¸ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ǰú ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Çϵå¿þ¾î¿¡ µû¶ó ´Ù¸£Áö¸¸, "µ¥ÀÌÅ͸¦ ¾îµð¿£°¡ º¸Á¸ÇÏ´Â "¼ö ¸¹Àº ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, NFS·Î ¸¶¿îÆ®ÇÑ ´Ù¸¥ ¸Ó½ÅÀÇ µð·ºÅ丮¿¡ ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀ» Ä«ÇÇÇÏ´Â °Í, ȤÀº Å×ÀÌÇÁ ÀåÄ¡¿¡ ½á³»´Â °Í(¿ø·¡ÀÇ ÆÄÀϸíÀ» ½Äº°ÇÏ´Â ¼ö´ÜÀÌ ÀÖ´Â °ÍÀ» È®ÀÎÇØ Áֽʽÿä), ±×°ÍµéÀ» ÇÑ ¹ø¿¡ Á¤¸®ÇØ CD¿¡ ±Á´Â °Í, ±× ¿Ü ¿ÏÀüÈ÷ ´Ù¸¥ ¹æ¹ý µîÀÔ´Ï´Ù. ÇÒ ¼ö ÀÖ´Â ÇÑ ³ôÀº À¯¿¬¼ºÀ» µ¥ÀÌÅͺ£À̽º °ü¸®ÀÚ¿¡°Ô Á¦°øÇϱâ À§Çؼ, PostgreSQL´Â ¾î¶»°Ô º¸°üÀÌ ÀÌ·ç¾îÁ³´ÂÁö ºÎÅÍ ÀÏÀý ÃßÁ¤ÇÏÁö ¾Ê°Ô µÇ¾î ÀÖ½À´Ï´Ù. ±× ´ë½Å¿¡PostgreSQL´Â °ü¸®ÀÚ¿¡°Ô ¿ÏÀüÇÑ ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀ» ¾îµò°¡ ÇÊ¿äÇÑ Àå¼Ò¿¡ Ä«ÇÇÇÏ´Â ½© ¸í·ÉÀ» ÁöÁ¤½Ãŵ´Ï´Ù. ÀÌ ¸í·ÉÀº ´Ü¼øÇÑcp¿¡¼µµ »ó°üÇÏÁö¾Ê°í, º¹ÀâÇÑ ¼Ð ½ºÅ©¸³Æ®¸¦ È£ÃâÇØµµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù. ¸ðµÎ °ü¸®ÀÚ¿¡°Ô ¸Ã±â°í ÀÖ½À´Ï´Ù.
archive_command ±¸¼º ÆÄ¶ó¹ÌÅÍ·Î »ç¿ëÇÏ´Â ½© Ä¿¸Çµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ½ÇÇàÇÏ·Á¸é, ÀÌ·¯ÇÑ ¼³Á¤À» postgresql.conf ÆÄÀÏ¿¡ Ç×»ó µÓ´Ï´Ù. ÀÌ ¹®ÀÚ¿ ³»ÀÇ ¸ðµç %p´Â º¸°üÇÏ´Â ÆÄÀÏÀÇ °æ·Î¸í¿¡ ¹Ù²î°Ô µÇ¾î%f´Â ¸ðµÎ ÆÄÀÏ¸í ºÎºÐ¿¡¸¸ ¹Ù²î°Ô µË´Ï´Ù. (°æ·Î¸íÀº ¼¹öÀÇ ÇöÀçÀÇ ÀÛ¾÷¿ë µð·ºÅ丮 Áï, Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮·ÎºÎÅÍ ºÁ¼ »ó´ëÀûÀÎ °ÍÀÔ´Ï´Ù. ) Ä¿¸Çµå³»¿¡%¹®ÀÚ ÀÚü¸¦ ¹¯À» Çʿ䰡 ÀÖÀ¸¸é%%¶ó°í ±â¼úÇØ Áֽʽÿä. °¡Àå °£´ÜÇØ ÀÚÁÖ »ç¿ëµÇ´Â Ä¿¸Çµå´Â ¾Æ·¡¿Í °°Àº °ÍÀÌ µË´Ï´Ù.
archive_command = 'cp -i %p /mnt/server/archivedir/%f </dev/null'
ÀÌ´Â º¸°ü °¡´ÉÇÑ WAL ¼¼±×¸ÕÆ®(segment)¸¦/mnt/server/archivedirµð·ºÅ丮¿¡ Ä«ÇÇÇÕ´Ï´Ù (À̰ÍÀº ÀÏ·ÊÀÔ´Ï´Ù. Ãßõ µÇ´Â °ÍÀÌ ¾Æ´Ï¸ç, ¸ðµç Ç÷§Æû¿¡¼ µ¿ÀÛÇÏÁö ¾ÊÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù).
ÀÌ º¸°ü¿ë Ä¿¸Çµå´Â PostgreSQL¼¹ö¸¦ °¡µ¿½ÃŰ´Â À¯Àú¿Í °°Àº ¼ÒÀ¯±ÇÀ¸·Î ½ÇÇàµË´Ï´Ù. º¸°üµÇ´Â ÀÏ·ÃÀÇ WAL ÆÄÀÏ¿¡´Â »ç½Ç»ó µ¥ÀÌÅͺ£À̽º ³»ÀÇ ¸ðµç °ÍÀÌ Æ÷ÇԵǾî Àֱ⠶§¹®¿¡, º¸°üÇÑ µ¥ÀÌÅ͸¦ ¿³º¸´Â °ÍÀ¸·ÎºÎÅÍ È®½ÇÈ÷ º¸È£ÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, ±×·ìÀ̳ª Àü¿øÀÌ ÀоîµéÀÏ ¼ö ¾ø´Â µð·ºÅ丮¿¡ µ¥ÀÌÅ͸¦ º¸°üÇØ Áֽʽÿä.
º¸°ü¿ë Ä¿¸Çµå°¡ ¼º°øÇßÀ» °æ¿ì¿¡¸¸ Á¦·Î¶ó°í ÇÏ´Â Á¾·á ½ºÅ×ÀÌÅͽº¸¦ µ¹·ÁÁÖ´Â °ÍÀº Áß¿äÇÕ´Ï´Ù. PostgreSQL´Â Á¦·Î¶ó°í ÇÏ´Â °á°ú¿¡ ±Ù°ÅÇØ, WAL ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀÇ º¸°üÀÌ ¼º°øÇÑ °ÍÀ» °¡Á¤ÇØ, ±× ÆÄÀÏÀ» »èÁ¦Çϰųª ȸ¼öÇÒÁöµµ ¸ð¸¨´Ï´Ù. ±×·¯³ª ºñÁ¦·ÎÀÇ ½ºÅ×ÀÌÅͽº´Â PostgreSQL¿¡ ´ëÇØ¼ ÆÄÀÏÀÌ º¸°üµÇÁö ¾Ê¾Ò´ø °ÍÀ» ÅëÁöÇØ, ¼º°øÇÒ ¶§±îÁö ÁÖ±âÀûÀ¸·Î Àç½ÃÇà½Ãŵ´Ï´Ù.
º¸Åë º¸°ü¿ë Ä¿¸Çµå´Â ±âÁ¸ÀÇ º¸°üÀÌ ³¡³ ÆÄÀÏÀÇ µ¡¾²±â¸¦ ½Ç½ÃÇÏÁö ¾Ê°Ô ¼³°è µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. ÀÌ´Â °ü¸®ÀÚÀÇ ¹Ì½º(¿¹¸¦ µé¸é 2°³ÀÇ ¼·Î ´Ù¸¥ ¼¹öÀÇ Ãâ·ÂÀ» µ¿ÀÏÇÑ º¸°ü¿ë µð·ºÅ丮¿¡ ¼Û½ÅÇØ ¹ö¸®´Â µî)¶ó°í ÇßÀ» °æ¿ì·ÎºÎÅÍ º¸°ü »óȲÀÇ Àϰü¼ºÀ» º¸È£Çϱâ À§ÇÑ ¾ÈÀüÃ¥À¸·Î¼ Áß¿äÇÕ´Ï´Ù. ½ÇÁ¦·Î ±âÁ¸ÀÇ ÆÄÀÏÀ» µ¡¾²±âÇÏÁö ¾Ê´Â ÇÑÆí, ±× °æ¿ì¿¡ ºñÁ¦·ÎÀÇ ½ºÅ×ÀÌÅͽº¸¦ µ¹·ÁÁÖ´Â °Í À» È®ÀÎÇϱâ À§Çؼ »ç¿ëÇÏ´Â º¸°ü¿ë Ä¿¸Çµå¸¦ ½ÃÇèÇÏ´Â °ÍÀ» ±ÇÇÕ´Ï´Ù. ÀϺÎÀÇ Ç÷§Æû¿¡¼´Â cp -i°¡ À̰ÍÀ» ¿Ã¹Ù¸£°Ô ½Ç½ÃÇÏ´Â °Í, ´Ù¸¥ Ç÷§Æû¿¡¼´Â ÇàÇØÁöÁö ¾Ê´Â °ÍÀ» ¾Ë°í ÀÖ½À´Ï´Ù. ¼±ÅÃÇÑ Ä¿¸Çµå¸¸À¸·Î´Â ÀÌ·¯ÇÑ »óȲÀ» ¿Ã¹Ù¸£°Ô Ãë±ÞÇÒ ¼ö ¾øÀ» °æ¿ì¿¡´Â º¸°üÀÌ ³¡³ ÆÄÀÏÀÌ ¾î¶²°¡¸¦ °Ë»çÇÏ´Â Ä¿¸Çµå¸¦ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°Àº Ä¿¸Çµå´Â
archive_command = 'test ! -f .../%f && cp %p .../%f'
´ëºÎºÐÀÇ Unix°èÀÇ Ç÷§Æû¿¡¼ ¿Ã¹Ù¸£°Ô µ¿ÀÛÇÕ´Ï´Ù.
º¸°ü ¼³Á¤À» ¼³°èÇÒ ¶§´Â Á¶ÀÛÀÚÀÇ °³ÀÔÀÌ ÇÊ¿äÇϰųª º¸°ü Àå¼Ò ¿ë·® ºÎÁ·ÀÇ ÀÌÀ¯·Î º¸°ü¿ë Ä¿¸Çµå°¡ ¹Ýº¹ÇØ ½ÇÆÐÇßÀ» ¶§¸¦ °í·ÁÇØ Áֽʽÿä. ¿¹¸¦ µé¸é, ÀÚµ¿ ±³È¯ ±â´ÉÀÌ ¾ø´Â Å×ÀÌÇÁ¿¡ ÀÔ·ÂÇÏ´Â °æ¿ì¿¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. Å×ÀÌÇÁ°¡ °¡µæÂ÷°Ô µÇ¾úÀ» °æ¿ì, Å×ÀÌÇÁ¸¦ ±³È¯ÇÒ ¶§±îÁö º¸°üÀ» ½Ç½ÃÇÒ ¼ö°¡ ¾ø°Ô µË´Ï´Ù. ÀÌ·¯ÇÑ »óȲÀ» ºñ±³Àû »¡¸® ÇØ¼ÒÇÒ ¼ö ÀÖµµ·Ï, ÀûÀýÇÏ°Ô Á¶ÀÛÀÚ¿¡°Ô ¿¡·¯³ª ¿ä±¸¸¦ È®½ÇÈ÷ ¿¬¶ôÇϵµ·Ï ÇØ¾ßÇÕ´Ï´Ù. ÀÌ »óȲÀÌ ÇØ¼ÒÇÒ ¶§±îÁö, WAL ¼¼±×¸ÕÆ®(segment) ÆÄÀÏÀºpg_xlog/µð·ºÅ丮 ³»¿¡ °è¼ÓÇØ¼ ä¿öÁö°Ô µË´Ï´Ù.
¼¹öÀÇ WAL µ¥ÀÌÅÍÀÇ »ý¼º¿¡ ÇÊ¿äÇÑ Æò±Õ ¼Óµµ¸¦ µû¶ó Àâ°í ÀÖ´Â ÇÑ, º¸°ü¿ë Ä¿¸ÇµåÀÇ Ã³¸® ¼Óµµ´Â Áß¿äÇÏÁö´Â ¾Ê½À´Ï´Ù. º¸°ü ÇÁ·Î¼¼½º°¡ ´Ù¼Ò ´Ê¾ú´Ù°í ÇØµµ ÀϹÝÀûÀÎ Á¶ÀÛÀº °è¼ÓµË´Ï´Ù. º¸°ü 󸮰¡ ´«¿¡ ¶ç°Ô ´Ê¾îÁö°Ô µÇ¸é, ÀçÇØ½Ã¿¡ ¼Õ½ÇµÇ´Â µ¥ÀÌÅÍÀÇ ¾çÀÌ Áõ°¡ÇÏ°Ô µË´Ï´Ù. ¶ÇÇÑ, À̰ÍÀºpg_xlog/µð·ºÅ丮 ³»¿¡¼ º¸°ü 󸮸¦ ±â´Ù¸®´Â ¸¹Àº ¼¼±×¸ÕÆ®(segment)ÆÄÀϵéÀÌ Ã¤¿öÁö°ÔµÇ¾î µð½ºÅ© ¿ë·®ÀÌ ºÎÁ·ÇØÁö´Â »óȲÀÌ ¹ß»ýÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. º¸°ü 󸮰¡ È®½ÇÈ÷ Àǵµ ´ë·Î µ¿ÀÛÇϰí ÀÖ´ÂÁö Á¡°ËÇÒ °ÍÀ» ÃßõÇÕ´Ï´Ù.
º¸°ü¿ë Ä¿¸Çµå¸¦ ÀÛ¼ºÇÒ ¶§, º¸°üµÇ´Â ÆÄÀϸíÀº ÃÖÀå 64 ¹®ÀÚ±îÁö·Î, ASCII ¹®ÀÚ¿Í ¼ýÀÚ¿Í Á¡ÀÇ ¾î¶² Æí¼ºÀ» »ç¿ëÇØµµ ±¦Âú½À´Ï´Ù. ¿ø·¡ÀÇ »ó´ë °æ·Î(%p)¸¦ ±â¾ïÇÒ ÇÊ¿ä´Â ¾øÁö¸¸, ÆÄÀϸí(%f)À» ±â¾ïÇÒ ÇÊ¿ä´Â ÀÖ½À´Ï´Ù.
WAL º¸°ü¿¡ ÀÇÇØPostgreSQLµ¥ÀÌÅͺ£À̽º¿¡¼ ÀÌ·ç¾îÁø º¯°æÀº ¸ðµÎ º¹±¸ÇÒ ¼ö ÀÖÁö¸¸, ¼³Á¤ ÆÄÀÏÀº SQL Á¶ÀÛÀÌ ¾Æ´Ñ ¼öµ¿À¸·Î º¯°æµÇ±â ¶§¹®¿¡, ¼³Á¤ ÆÄÀÏ(postgresql.conf, pg_hba.conf, ¹× pg_ident.conf)ÀÇ º¯°æ±îÁö º¹±¸ÇÏÁö ¾Ê´Â °ÍÀ» ÁÖÀÇÇØ Áֽʽÿä. º¸ÅëÀÇ ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷ ¼ö¼ÓÀ¸·Î ¹é¾÷ µÇ´Â Àå¼Ò·Î ¼³Á¤ ÆÄÀÏÀ» º¸°üÇÏ°í ½ÍÀº °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¼³Á¤ ÆÄÀÏÀÇ ¼³Ä¡ Àå¼Ò¸¦ º¯°æÇÏ·Á¸éSection 17.2¸¦ ÂüÁ¶ÇØ Áֽʽÿä.
¾îÄ«À̺ê Ä¿¸Çµå´Â ¿ÏÀüÇÑ WAL ¼¼±×¸ÕÆ®(segment)¿¡ ´ëÇØ¼¸¸ ºÒ·Á °©´Ï´Ù. ÀÌ ¶§¹®¿¡ ¼¹ö´Â ÀÛÀº ¾çÀÇ WAL Æ®·¡ÇÈÀ» »ý¼ºÇÑ´Ù¸é(¶Ç´Â 󸮸¦ ¹æÄ¡ÇÏ´Â ±â°£À» °¡Áü), Æ®·£Àè¼ÇÀÇ ¿Ï·á¿Í ¾îÄ«À̺ê ÀúÀåÀÇ ¾ÈÀüÇÑ ±â·Ï »çÀÌ¿¡ Àå½Ã°£ÀÇ ¿¬±â°¡ ÀÖÀ» ¼ö ÀÖ°Ô µË´Ï´Ù. ¿À·¡µÈ ¾îÄ«À̺êµÇÁö ¾ÊÀº µ¥ÀÌÅÍ¿¡ Á¦ÇÑÀ» µÎ±â À§Çؼ archive_timeout¸¦ ¼³Á¤ÇØ, °Á¦ÀûÀ¸·Î ¼¹ö¸¦ »õ·Î¿î WAL ¼¼±×¸ÕÆ® ÆÄÀÏ¿¡ ÀÖ´Â Á¤µµÀÇ °£°ÝÀ¸·Î ¹Ù²Ùµµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. °Á¦ º¯È¯¿¡ ÀÇÇØ ÀÏÂï ³¡³ ¾îÄ«ÀÌºê ÆÄÀÏÀº ¿ÏÀüÇÏ°Ô ¿Ï·áÇÑ ÆÄÀϰú °°Àº Å©±â¸¦ °¡Áö´Â °Í¿¡ ÁÖÀÇÇØ Áֽʽÿä. ±× ¶§¹®¿¡, ¸Å¿ì ÀÛÀºarchive_timeout¸¦ »ç¿ëÇÏ´Â °ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÀúÀå ¿µ¿ªÀ» ÆØÃ¢½ÃÄÑ ¹ö¸³´Ï´Ù. º¸ÅëÀ̶ó¸é ºÐ ´ÜÀ§ÀÇarchive_timeout¼³Á¤ÀÌ ÇÕ¸®ÀûÀÔ´Ï´Ù.
¹æ±Ý ³¡³ Æ®·£Àè¼ÇÀ» Áï½Ã ¾îÄÉÀ̺êÇÏ°í ½ÍÀº °æ¿ì, pg_switch_xlog¸¦ »ç¿ëÇØ ¼öµ¿À¸·Î ¼¼±×¸ÕÆ®(segment) º¯È¯À» °¿äÇÒ ¼ö ÀÖ½À´Ï´Ù.
´Ù¸¥ WAL °ü¸®¿¡ °ü·ÃÇÑ À¯Æ¿¸®Æ¼ ÇÔ¼ö´ÂTable 9-47¿¡ ¿°ÅÇÕ´Ï´Ù.
±âº» ¹é¾÷ÀÇ ÀÛ¼º ¼ø¼´Â ºñ±³Àû °£´ÜÇÕ´Ï´Ù.
WAL º¸°üÀÌ À¯È¿Çϰí, Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀ» È®ÀÎÇØ Áֽʽÿä.
µ¥ÀÌÅͺ£À̽º¿¡ ½´ÆÛ À¯Àú·Î¼ Á¢¼ÓÇØ, ÀÌÇÏÀÇ Ä¿¸Çµå¸¦ ½Ç½ÃÇØ Áֽʽÿä.
SELECT pg_start_backup('label');
¿©±â¼label´Â ¹é¾÷ Á¶ÀÛÀ» À¯ÀÏÇÏ°Ô ½Äº°Çϱâ À§ÇØ »ç¿ëÇÏ´Â ÀÓÀÇÀÇ ¹®ÀÚ¿ÀÔ´Ï´Ù
(Ãßõ ¹æ¹ýÀº ÀúÀåóÀÇ ¹é¾÷ ´ýÇÁ ÆÄÀÏÀÇ ¿ÏÀü °æ·Î¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù).
pg_start_backup´Â ¹é¾÷ Á¤º¸¸¦ °¡Áö´Â backup_label¶ó´Â À̸§Àǹé¾÷ ¶óº§ÆÄÀÏÀ», Ŭ·¯½ºÅÍ µð·ºÅ丮 ³»¿¡ ÀÛ¼ºÇÕ´Ï´Ù.
ÀÌ Ä¿¸Çµå¸¦ ½ÇÇàÇßÀ» ¶§ Ŭ·¯½ºÅÍ ³»ÀÇ ¾î´À µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇß´ÂÁö ÁÖÀÇÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ ÇÔ¼öÀÇ ¹Ýȯ °á°ú´Â ¹«½ÃÇÒ ¼ö ÀÖÁö¸¸, ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì´Â ÀÛ¾÷À» ÁøÇà½Ã۱â Àü¿¡ ó¸®ÇØ Áֽʽÿä.
tar³ª cpio¿Í °°Àº Àͼ÷ÇÑ ÀÓÀÇÀÇ ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷ ÅøÀ» »ç¿ëÇØ, ¹é¾÷À» ½ÇÇàÇØ Áֽʽÿä. ÀÌ ÀÛ¾÷½Ã¿¡, µ¥ÀÌÅͺ£À̽ºÀÇ ÀÏ¹Ý ¿¬»êÀ» Á¤ÁöÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç, ¹Ù¶÷Á÷ÇÑ ¹æ¹ýµµ ¾Æ´Õ´Ï´Ù.
´Ù½Ã ½´ÆÛÀ¯Àú·Î µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇØ, ÀÌÇÏÀÇ Ä¿¸Çµå¸¦ ½ÇÇàÇØ Áֽʽÿä.
SELECT pg_stop_backup();
À̰ÍÀº ¹é¾÷ ¸ðµå¸¦ Á¾·áÇϰí, ´ÙÀ½ÀÇ WAL ¼¼±×¸ÕÆ®¿¡ÀÇ ÀÚµ¿ ÀüȯÀ» ½Ç½ÃÇÕ´Ï´Ù. ÀÌ º¯È¯ÀÇ ÀÌÀ¯´Â ¹é¾÷ ±â°£ Áß¿¡ ¾²¿©Áø ¸¶Áö¸· WAL ÆÄÀÏÀ» °ð¹Ù·Î º¸°üÇÒ ¼ö ÀÖµµ·Ï ÁغñÇÏ´Â °ÍÀÔ´Ï´Ù.
¹é¾÷ ±â°£Áß¿¡ »ç¿ëµÈ WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀÌ º¸°üµÇ¸é, ó¸®ÇÒ ÀÏÀº ³¡³³´Ï´Ù.
pg_stop_backupÀÇ °á°ú·Î ½Äº°µÇ´Â ÆÄÀÏÀº ¹é¾÷À» Á¾·á½Ã۱â À§Çؼ º¸°üÇØ¾ß ÇÏ´Â ¸¶Áö¸· ¼¼±×¸ÕÆ®ÀÔ´Ï´Ù.
¹ú½áarchive_command¸¦ ¼³Á¤Ç߱⠶§¹®¿¡, ÀÌ·¯ÇÑ ÆÄÀÏÀÇ º¸°üÀº ÀÚµ¿À¸·Î ¹ß»ýÇÕ´Ï´Ù.
¸¹Àº °æ¿ì ºü¸£°Ô ÁøÇàÇØÁöÁö¸¸, ¹é¾÷ÀÇ ¿Ï·á¸¦ È®ÀÎÇÒ ¼ö ÀÖµµ·Ï º¸°ü ½Ã½ºÅÛÀ» °¨½ÃÇÏ¿© ÁøÇàµÈ °ÍÀ» È®ÀÎÇϵµ·Ï ±ÇÇÕ´Ï´Ù.
»ç¿ëÇϰíÀÚ ÇÏ´Â ÀϺΠ¹é¾÷ ÅøÀº º¹»çÇϰí ÀÖ´Â µµÁß¿¡ ÆÄÀÏÀÌ º¯°æµÈ´Ù´Â °ÍÀ» °æ°íÇϰųª ¿¡·¯¸¦ º¸°íÇÒÁö ¸ð¸¨´Ï´Ù. ÀÌ »óȲÀº Á¤»óÀûÀÎ °ÍÀ¸·Î, °¡µ¿Çϰí ÀÖ´Â µ¥ÀÌÅͺ£À̽ºÀÇ ±âº» ¹é¾÷À» °¡Áö°í ÀÖ´Â °æ¿ì´Â ¿¡·¯°¡ ¾Æ´Õ´Ï´Ù. ±×·¯´Ï±î, ÀÌ·± Á¾·ùÀÇ °æ°í¿Í ÁøÂ¥ ¿¡·¯¸¦ ±¸º°ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, rsyncÀÇ ¹öÀü¿¡ µû¶ó¼ "»ç¶óÁø ¿ø½ÃÆÄÀÏ"¿¡ ´ëÇØ¼ ´Ù¸¥ Á¾·á Äڵ带 ¹ÝȯÇϰí, ÀÌ Á¾·á Äڵ带 ¿¡·¯°¡ ¾Æ´Ï¸é ¹Þ¾ÆµéÀÌ´Â ÇÏ´Â µå¶óÀ̹ö ½ºÅ©¸³Æ®¸¦ ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, ÀϺΠGNUtar¹öÀüÀº, tar°¡ º¹»çÇϰí ÀÖ´Â µ¿¾È¿¡ ÆÄÀÏÀÌ Àý´ÜµÇ¸é, Ä¡¸íÀûÀÎ ¿¡·¯¸¦ ±¸ºÐÇÒ ¼ö ¾ø´Â ¿¡·¯Äڵ带 ¹ÝȯÇÕ´Ï´Ù. ´ÙÇàÈ÷µµ, ¸¸¾à ÆÄÀÏÀÌ ¹é¾÷µ¿¾È º¯°æµÇ°Å³ª ±× ¿ÜÀÇ ¿¡·¯·Î 2À̶ó¸é, GNUtar¹öÀü 1.16°ú 1¸¦ °¡Áö°í ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.
pg_start_backup·ÎºÎÅÍ ½ÇÁ¦ÀÇ ¹é¾÷ÀÇ ½ÃÀÛ¶§±îÁöÀÇ °æ°ú½Ã°£À̳ª ¹é¾÷ÀÇ Á¾·á½Ã°¢À¸·ÎºÎÅÍpg_stop_backup±îÁöÀÇ °æ°ú½Ã°£À» Ưº°È÷ ½Å°æ¾µ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
¸îºÐÀÇ Áö¿¬Àº ¾Æ¹«·± ¹®Á¦ ¾ø½À´Ï´Ù.
(±×·¯³ª º¸Åëfull_page_writes¸¦ »ç¿ëÇÒ ¼ö ¾ø´Â ¼¹ö¸¦ ½ÇÇàÇÏ´Â °æ¿ì, ¹é¾÷ ¸ðµå¿¡¼´Â full_page_writes°¡ °¿äµÇ±â ¶§¹®¿¡,
pg_start_backup·ÎºÎÅÍpg_stop_backup±îÁöÀÇ »çÀÌÀÇ ¼º´É ÀúÇϸ¦ ¹ß°ßÇÒ °ÍÀÔ´Ï´Ù. )
±×·¯³ª ÀÌ·¯ÇÑ ´Ü°è¸¦ °ãÄ¡Áö ¾Ê°Ô Â÷·Ê´ë·Î ¼öÇàÇϵµ·Ï ÁÖÀÇÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
±×·¸Áö ¾ÊÀ¸¸é, ¹é¾÷ÀÌ ¾û¸ÁÀÌ µË´Ï´Ù.
¹é¾÷ ´ýÇÁ¿¡, µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍ µð·ºÅ丮(¿¹¸¦ µé¸é/usr/local/pgsql/data) ÀÌÇÏ¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏÀÌ Æ÷ÇԵǾîÀÖ´ÂÁö È®ÀÎÇØ Áֽʽÿä. ÀÌ µð·ºÅ丮 ÀÌÇÏ¿¡ Á¸ÀçÇÏÁö ¾Ê´Â Å×ÀÌºí °ø°£À» »ç¿ëÇÏ´Â °æ¿ì, À̵éÀ» Æ÷ÇÔ½ÃŰ´Â °ÍÀ» ÁÖÀÇÇϽʽÿä. (±×¸®°í ¹é¾÷ ´ýÇÁ°¡ ¸µÅ©·Î¼ ±âÈ£ ¿¬°áÀ» ¾îÄÉÀ̺êµÈ °ÍÀ» È®ÀÎÇØ Áֽʽÿä. ±×·¸Áö ¾ÊÀ¸¸é º¹±¸ ÀÛ¾÷Àº Å×ÀÌºí °ø°£À» ¾û¸ÁÀ¸·Î ¸¸µé¾î ¹ö¸³´Ï´Ù).
±×·¯³ª Ŭ·¯½ºÅÍ µð·ºÅ丮ÀÇpg_xlog/ÇÏÀ§ µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀ» ¹é¾÷ ´ýÇÁ·ÎºÎÅÍ »ý·«ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ´Ù¼Ò º¹ÀâÇÏÁö¸¸, º¹±¸ ÀÛ¾÷ ÁßÀÇ ½ÇÆÐÀÇ À§ÇèÀ» ÁÙÀÏ ¼ö Àֱ⠶§¹®¿¡, °¡Ä¡°¡ ÀÖ½À´Ï´Ù. pg_xlog/°¡ Ŭ·¯½ºÅÍ µð·ºÅ丮 ¿ÜÀÇ ´Ù¸¥ °÷À» Áö½ÃÇÏ´Â ±âÈ£ ¿¬°áÀÇ °æ¿ì, ÁöÁ¤ÇÏ´Â °ÍÀÌ °£´ÜÇÕ´Ï´Ù. À̰ÍÀº ¼º´É»óÀÇ ÀÌÀ¯·Î ÀÚÁÖ »ç¿ëµÇ´Â ¼³Á¤ÀÔ´Ï´Ù.
ÀÌ ¹é¾÷À» »ç¿ëÇÏ°í ½ÍÀ» °æ¿ì, ¹é¾÷ÀÇ ½ÇÇà ±â°£°ú ÀÌÈÄ¿¡ »ý¼ºµÈ ¸ðµç WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.
À̸¦ µ½±â À§ÇØ, pg_stop_backupÇÔ¼ö´Â ¹é¾÷ ÀÌ·Â ÆÄÀÏÀ» »ý¼ºÇØ, WAL º¸°ü ¿µ¿ª¿¡ º¸Á¸ÇÕ´Ï´Ù.
ÀÌ ÆÄÀÏÀº ¹é¾÷À» »ç¿ëÇϱâ À§ÇØ ¸¸µé¾î¾ß ÇÏ´Â ÃÖÃÊÀÇ WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀÇ À̸§À» µû¸¨´Ï´Ù.
¿¹¸¦ µé¸é, ÃÖÃÊÀÇ WAL ÆÄÀÏÀÌ 0000000100001234000055CDÀÇ °æ¿ì, ¹é¾÷ ÀÌ·Â ÆÄÀÏÀº0000000100001234000055CD. 007C9330.backup À̸§ÀÌ µË´Ï´Ù.
(ÀÌ ÆÄÀϸíÀÇ 2¹øÂ°ÀÇ ¹øÈ£´Â WAL ÆÄÀϳ»ÀÇ Á¤È®ÇÑ À§Ä¡¸¦ ³ªÅ¸³»°í, À̰ÍÀº º¸Åë ¹«½ÃµÉ ¼ö ¾ø½À´Ï´Ù. )
¹é¾÷ ±â°£(¹é¾÷ ÀÌ·Â ÆÄÀÏ·Î ÁöÁ¤µÈ °Íó·³)¿¡ »ç¿ëµÈ, ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷°ú WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀ» ¾ÈÀüÇÏ°Ô º¸°üÇÑ ÈÄ,
¼öÄ¡ÀûÀ¸·Î ÀÛÀº À̸§ÀÇ WAL ¼¼±×¸ÕÆ®´Â ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷ÀÇ º¹±¸¿¡ ´õÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀ¸¹Ç·Î »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×·¯³ª µ¥ÀÌÅ͸¦ º¹±¸¸¦ ¿ÏÀüÈ÷ º¸ÁõÇϱâ À§ÇØ, ¸î °³ÀÇ ¹é¾÷ ¼¼Æ®ÀÇ º¸Á¸À» °ËÅäÇØ¾ßÇÕ´Ï´Ù.
¹é¾÷ ÀÌ·Â ÆÄÀÏÀº ÀÛÀº ÅØ½ºÆ® ÆÄÀÏÀÔ´Ï´Ù.
°Å±â¿¡´Â pg_start_backup¿¡°Ô º¸³½ ¶óº§ ¹®ÀÚ¿ »Ó ¾Æ´Ï¶ó, ¹é¾÷ ½ÃÀÛ¿Í Á¾·áÀÇ ½Ã°¢°ú WAL ¼¼±×¸ÕÆ®¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
°ü·ÃµÈ ´ýÇÁ ÆÄÀÏÀÌ º¸°üµÇ´Â Àå¼Ò¸¦ ½Äº°Çϱâ À§ÇÑ ¶óº§À» »ç¿ëÇÑ´Ù¸é, ¾î´À ´ýÇÁ ÆÄÀÏÀ» º¹¿øÇÏ´ÂÁö´Â º¸°üµÈ ÀÌ·Â ÆÄÀÏÀ» ÅëÇØ ÃæºÐÈ÷ °¡´ÉÇÕ´Ï´Ù.
¸¶Áö¸· ±âº» ¹é¾÷±îÁö ¸ðµç º¸°üµÈ WAL ÆÄÀÏÀ» À¯ÁöÇØ¾ß ÇϹǷÎ, ±âº» ¹é¾÷ÀÇ ½ÇÇà °£°ÝÀº º¸Åë, º¸°üµÈ WAL ÆÄÀÏÀ» ÀúÀåÇÏ´Â ¿µ¿ªÀ» ¾ó¸¶³ª È®ÀåÇÏ°í ½ÍÀº°¡¿¡ µû¶ó °áÁ¤µË´Ï´Ù. ¶ÇÇÑ, º¹±¸°¡ ÇÊ¿äÇÏ´Ù¸é, º¹±¸ÇÏ´Â µ¥ °É¸®´Â ½Ã°£¿¡ ´ëºñÇØ¾ß ÇÕ´Ï´Ù. ½Ã½ºÅÛÀº ÀÌ·¯ÇÑ ¼¼±×¸ÕÆ®¸¦ ¸ðµÎ ´Ù½Ã ½ÇÇàÇØ¾ßÇÕ´Ï´Ù. ±×¸®°í ¸¶Áö¸· ±âº» ¹é¾÷À¸·ÎºÎÅÍÀÇ °æ°ú½Ã°£ÀÌ ±æ¸é ±×¸¸Å ½Ã°£ÀÌ °É¸³´Ï´Ù.
¶ÇÇÑ, pg_start_backupÇÔ¼ö°¡ µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍ µð·ºÅ丮 ³» backup_label¶ó´Â À̸§ÀÇ ÆÄÀÏÀ» ÀÛ¼ºÇÏ´Â °Í¿¡ ÁÖÀÇÇØ Áֽʽÿä.
ÀÌ´Â ÈÄ¿¡ pg_stop_backup¿¡ ÀÇÇØ »èÁ¦µË´Ï´Ù.
´ç¿¬È÷, ÀÌ ÆÄÀÏÀº ¹é¾÷ ´ýÇÁ ÆÄÀÏÀÇ ÀϺημ º¸°üµË´Ï´Ù.
¹é¾÷ ¶óº§ ÆÄÀÏ¿¡´Â pg_start_backup¿¡ ºÎ¿©ÇÑ ¶óº§ ¹®ÀÚ¿°ú pg_start_backup°¡ ½ÇÇàµÉ ¶§ÀÇ ½Ã°£, ÃÖÃÊÀÇ WAL ÆÄÀÏÀÇ À̸§ÀÌ Æ÷ÇԵ˴ϴÙ.
µû¶ó¼, È¥¶õ½º·¯¿ï °æ¿ì, ¹é¾÷ ´ýÇÁ ÆÄÀÏÀÇ ³»¿ëÀ» °Ë»öÇØ, ±× ´ýÇÁ ÆÄÀÏÀÌ ¾î´À ¹é¾÷ ¼¼¼Ç¿¡ À¯·¡ÇÑ °ÍÀÎÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼¹ö°¡ Á¤Áö ÇßÀ» ¶§, ¹é¾÷ ´ýÇÁ¸¦ ÀÛ¼ºÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù.
ÀÌ °æ¿ì´Â ¸í¹éÇÏ°Ô pg_start_backup³ª pg_stop_backup¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
±×·¯¹Ç·Î ÀÚ½ÅÀÇ ±â±â¿¡ ¾î´À ¹é¾÷ ´ýÇÁ°¡ ¾î´À WAL ÆÄÀϰú °ü·ÃÇØ¼ ¾ó¸¶³ª µÇµ¹·Á¾ß ÇÏ´ÂÁö¸¦ ½º½º·Î ³²°Ü¾ß ÇÕ´Ï´Ù.
º¸ÅëÀº À§ÀÇ °è¼ÓÀû ¾îÄ«ÀÌºê ¼ø¼¸¦ µû¸£µµ·Ï ±ÇÇÕ´Ï´Ù.
¸¸¾à ÃÖ¾ÇÀÇ »çŰ¡ ¹ß»ýÇϰí, ¹é¾÷À¸·ÎºÎÅÍ º¹±¸ÇÒ Çʿ䰡 ÀÖ´Ù¸é ÀÌÇÏ¿¡ ±× ¼ø¼¸¦ ¼³¸íÇÕ´Ï´Ù.
¼¹ö°¡ ½ÇÇà ÁßÀ̶ó¸é, Á¤Áö½ÃÄÑ Áֽʽÿä.
»ç¿ëÇÒ ¿ë·®À» °¡Áö°í ÀÖ´Ù¸é, ³ªÁß¿¡ ÇÊ¿äÇÑ °æ¿ì¸¦ ´ëºñÇØ Ŭ·¯½ºÅÍ µ¥ÀÌÅÍ µð·ºÅ丮 Àüü¿Í Å×ÀÌºí °ø°£À» ¸ðµÎ Ä«ÇÇÇØ Áֽʽÿä. ÀÌ·¯ÇÑ Á¶Ä¡´Â ±âÁ¸ÀÇ µ¥ÀÌÅͺ£À̽º¸¦ 2°³ º¸°üÇÒ ¼ö ÀÖ´Â ÃæºÐÈ÷ ºñ¾îÀÖ´Â °ø°£À» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÃæºÐÇÑ °ø°£ÀÌ ¾ø´Â °æ¿ì, Àû¾îµµ Ŭ·¯½ºÅÍ µ¥ÀÌÅÍ µð·ºÅ丮 ÀÌÇÏÀÇ pg_xlogµð·ºÅ丮ÀÇ ³»¿ë¸¸Àº º¹»çÇØ¾ß ÇÕ´Ï´Ù. ¿©±â¿¡´Â ½Ã½ºÅÛÀÌ Á¤ÁöÇϱâ Àü¿¡ º¸°üµÇÁö ¾ÊÀº ·Î±× ÆÄÀÏÀÌ Æ÷Ç﵃ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.
Ŭ·¯½ºÅÍ µ¥ÀÌÅÍ µð·ºÅ丮 ÀÌÇÏ, ¹× »ç¿ë ÁßÀÎ Å×ÀÌºí °ø°£ÀÇ root µð·ºÅ丮 ÀÌÇÏ¿¡ ÀÖ´Â ±âÁ¸ÀÇ ¸ðµç ÆÄÀϰú ÇÏÀ§µð·ºÅ丮¸¦ »èÁ¦ÇØ Áֽʽÿä.
¹é¾÷ ´ýÇÁ·ÎºÎÅÍ µ¥ÀÌÅͺ£À̽º ÆÄÀÏÀ» º¹±¸ÇØ Áֽʽÿä. ÆÄÀÏÀÌ ¿Ã¹Ù¸¥ ¼ÒÀ¯±Ç(root°¡ ¾Æ´Ñ µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ À¯ÀúÀÔ´Ï´Ù! )À¸·Î º¹±¸µÇ°í ÀÖ´Â Áö È®ÀÎÇØ Áֽʽÿä. Å×ÀÌºí °ø°£À» »ç¿ëÇϰí ÀÖ´Â °æ´Â pg_tblspc/³»ÀÇ ±âÈ£ ¿¬°áÀÌ Á¤È®È÷ º¹±¸µÇ°í ÀÖ´Â Áö Á¡°ËÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
pg_xlog/³»¿¡ ÀÖ´Â ÆÄÀÏÀ» ¸ðµÎ »èÁ¦ÇØ Áֽʽÿä. À̰͵éÀº ¹é¾÷ ´ýÇÁ·ÎºÎÅÍ »ý¼ºµÇ¾î, ÇöÀçÀÇ °Íº¸´Ù ¿À·¡µÇ¾ú½À´Ï´Ù. pg_xlog/¸¦ ÀüÇô º¸°üÇϰí ÀÖÁö ¾ÊÀ¸¸é, ´Ù½Ã ÀÛ¼ºÇØ Áֽʽÿä. ±×¸®°í pg_xlog/archive_status/ ÇÏÀ§ µð·ºÅ丮µµ È®½ÇÇÏ°Ô ÀçÀÛ¼ºÇØ Áֽʽÿä.
´Ü°è 2·Î ÀúÀå½ÃŲ º¸°üµÇÁö ¾ÊÀº WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀÌ ÀÖ´Ù¸é, pg_xlog/¿¡ Ä«ÇÇÇØ Áֽʽÿä (À̵éÀ» À̵¿½ÃŰ´Â °ÍÀÌ ¾Æ´Ñ º¹»çÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÔ´Ï´Ù. ÀÌ´Â ¹®Á¦°¡ ¹ß»ýÇϰųª ´Ù½Ã ½ÇÇàÇØ¾ßÇÏ´Â °æ¿ì, ¿©ÀüÈ÷ º¯°æµÇÁö ¾ÊÀº ÆÄÀÏÀ» °¡Áö°í ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.)
º¹±¸ Ä¿¸Çµå ÆÄÀÏrecovery.conf(Recovery Settings¸¦ ÂüÁ¶)¸¦ Ŭ·¯½ºÅÍ µ¥ÀÌÅÍ µð·ºÅ丮¿¡ ÀÛ¼ºÇØ Áֽʽÿä. ¶ÇÇÑ, ÀϽÃÀûÀ¸·Îpg_hba.conf¸¦ ÆíÁýÇØ, º¹±¸ ¿Ï·á¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ» ¶§±îÁö ÀÏ¹Ý À¯Àú°¡ Á¢¼ÓÇÒ ¼ö ¾øµµ·Ï ÇÕ´Ï´Ù.
¼¹ö¸¦ ½ÃÀÛ½ÃÄÑ Áֽʽÿä. ¼¹ö´Â º¹±¸ ¸ðµå¿¡ µé¾î°¡, ÇÊ¿äÇÑ º¸°üÀÌ ³¡³ WAL ÆÄÀϱºÀÇ read¸¦ ½Ç½ÃÇÕ´Ï´Ù. ¿ÜºÎÀûÀÎ ¿¡·¯¿¡ ÀÇÇØ º¹±¸°¡ Áß´ÜÇϸé, ¼¹ö¸¦ Àç½ÃÀÛ½Ã۰í, º¹±¸ 󸮸¦ °è¼ÓÇØ Áֽʽÿä. º¹±¸ 󸮰¡ ¿Ï·áÇϸé, (¿ì¿¬È÷ Å©·¡½¬µÇ¾îµµ ÀçÂ÷ º¹±¸ ¸ðµå¿¡ µé¾î°¡Áö ¾Ê°Ô) postmaster´Â recovery.confÀÇ À̸§À»recovery.done·Î º¯°æÇÕ´Ï´Ù. ±× ÈÄ ÀϹÝÀûÀÎ µ¥ÀÌÅͺ£À̽º Á¶ÀÛÀ» ½ÃÀÛÇÕ´Ï´Ù.
µ¥ÀÌÅͺ£À̽º ³»¿ëÀ» °Ë»çÇØ, ¿øÇÏ´Â ½ÃÁ¡±îÁö º¹±¸µÇ¾ú´ÂÁö È®ÀÎÇØ Áֽʽÿä. º¹±¸µÇÁö ¾ÊÀº °æ¿ì, ´Ü°è 1·Î µ¹¾Æ°¡½Ê½Ã¿ä. ¹®Á¦°¡ ¾øÀ¸¸é, À¯Àú°¡ »ç¿ëÇÒ ¼ö ÀÖµµ·Ïpg_hba.conf¸¦ Á¤»ó »óÅ·ΠµÇµ¹·Á Áֽʽÿä.
¿©±â¼ Áß¿äÇÑ °ÍÀº º¹±¸ Ä¿¸Çµå ÆÄÀÏÀ» ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ÆÄÀÏ¿¡¼ ¾î¶»°Ô º¹±¸½ÍÀº Áö¿Í ¾îµð±îÁö º¹±¸ÇÏ°í ½ÍÀº Áö¸¦ ±â¼úÇÕ´Ï´Ù. recovery.conf.sample(º¸ÅëÀº InstallationÀÇ share/µð·ºÅ丮¿¡ ÀúÀåµÊ)¸¦ Ç¥º»À¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. recovery.conf¿¡ ¹«Á¶°Ç ÁöÁ¤ÇØ¾ß ÇÏ´Â °ÍÀº º¸°üµÈ WAL ÆÄÀÏ ¼¼±×¸ÕÆ®¸¦ ¾î¶»°Ô µÇµ¹¸±±î¸¦PostgreSQL¿¡ ÅëÁöÇÏ´Â restore_commandÀÔ´Ï´Ù. archive_command°°ÀÌ, À̰ÍÀº ½© Ä¿¸Çµå ¹®ÀÚ¿ÀÔ´Ï´Ù. ¿©±â¿¡´Â ´ë»óÀÇ ·Î±× ÆÄÀÏÀÇ À̸§À¸·Î ġȯµÇ´Â %f³ª ·Î±× ÆÄÀÏÀÇ º¹»çµÈ °æ·Î¸¦ ³ªÅ¸³»´Â %p¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. (°æ·Î¸íÀº ÇöÀçÀÇ ÀÛ¾÷¿ë µð·ºÅ丮, Áï, Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮¿¡¼ º» »ó´ë °æ·ÎÀÔ´Ï´Ù. ) Ä¿¸Çµå ³»¿¡%¹®ÀÚ ÀÚü¸¦ ³Ö¾î¾ß ÇÑ´Ù¸é, %%¶ó°í ±âÀçÇØ Áֽʽÿä. °£´ÜÇϰí À¯¿ëÇÑ Ä¿¸Çµå´Â ÀÌÇÏ¿Í °°½À´Ï´Ù.
restore_command = 'cp /mnt/server/archivedir/%f %p'
À̰ÍÀº »çÀü¿¡ º¸°üµÈ WAL ¼¼±×¸ÕÆ®¸¦ /mnt/server/archivedirµð·ºÅ丮·ÎºÎÅÍ Ä«ÇÇÇÕ´Ï´Ù. ´ç¿¬È÷, Á» ´õ º¹ÀâÇÑ °Í »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ¿¬»êÀÚ¿¡°Ô ÀûÀýÇÑ Å×ÀÌÇÁ¸¦ »ç¿ë °¡´ÉÇϵµ·Ï ¿ä±¸ÇÏ´Â ¼Ð ½ºÅ©¸³Æ®µµ °¡´ÉÇÕ´Ï´Ù.
ÀÌ Ä¿¸Çµå°¡ ½ÇÆÐÇßÀ» ¶§ nonzero Á¾·á »óŸ¦ ¹ÝȯÇÏ´Â °ÍÀº Áß¿äÇÕ´Ï´Ù. ÀÌ Ä¿¸Çµå´Â º¸°ü Àå¼Ò¿¡ Á¸ÀçÇÏÁö ¾Ê´Â ·Î±× ÆÄÀÏÀ» ¿äû ÇÒ Áöµµ ¸ð¸¨´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, ¿äûÀ» ¹ÞÀ¸¸é nonzero ¸¦ ¸®ÅÏÇØ¾ß¸¸ ÇÕ´Ï´Ù. À̰ÍÀº ¿¡·¯ »óŰ¡ ¾Æ´Õ´Ï´Ù. ¶ÇÇÑ, %pÀÇ ÆÄÀÏ¸í ºÎºÐÀº%f°ú ´Ù¸£´Ù´Â °ÍÀ» ÁÖÀÇÇϽʽÿä. ±×·¯¹Ç·Î, À̵éÀÌ ¼·Î ±³È¯°¡´ÉÇÒ °ÍÀ̶ó°í ¿¹»óÇÏÁö ¸¶½Ê½Ã¿ä.
¾îÄÉÀ̺꿡¼ ¹ß°ßµÇÁö ¾Ê¾Ò´ø WAL ¼¼±×¸ÕÆ®´Â pg_xlog/·ÎºÎÅÍ °Ë»öµË´Ï´Ù. ÀÌ·Î ÀÎÇØ, ÃÖ±ÙÀÇ º¸°ü ÇÏÁö ¾ÊÀº ¼¼±×¸ÕÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ¾îÄÉÀ̺꿡¼ »ç¿ë°¡´ÉÇÑ ¼¼±×¸ÕÆ®´Â pg_xlog/ ÀÇ ÆÄÀϺ¸´Ù ¿ì¼±ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ½Ã½ºÅÛÀº º¸°üµÈ ÆÄÀÏÀ» ²¨³¾ ¶§ ±âÁ¸ÀÇ pg_xlog/ÀÇ ³»¿ëÀ» °ãÃÄ ¾²Áö ¾Ê½À´Ï´Ù.
ÀϹÝÀûÀ¸·Î, ¸ðµç À̿밡´ÉÇÑ WAL ¼¼±×¸ÕÆ®¸¦ »ç¿ëÇØ º¹±¸ 󸮸¦ ÇÕ´Ï´Ù. ±×·Î ÀÎÇØ, µ¥ÀÌÅͺ£À̽º¸¦ Çö½ÃÁ¡±îÁö(ȤÀº ÀÌ¿ë °¡´ÉÇÑ WAL ¼¼±×¸ÕÆ®¸¦ °¡Áú ¼ö ÀÖ´Â °¡±î¿î ½ÃÁ¡±îÁö) º¹±¸ÇÕ´Ï´Ù. ±×·¯³ª, ÀÌÀüÀÇ ½Ã°£¿¡¼ º¹±¸Çϱ⸦ ¿øÇÑ´Ù¸é(Áï, ¼Ò±Ô¸ð DBA¿¡¼ ÁÖ Æ®·£Àè¼Ç Å×À̺íÀ» »èÁ¦Çϱ⠹ٷΠÀü), recovery.conf¿¡ ¿øÇÏ´Â Á¤Áö ½ÃÁ¡À» ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù. ƯÁ¤ÇÑ Æ®·£Àè¼Ç IDÀÇ ¿Ï·á³ª ³¯Â¥/½Ã°£À» "recovery target"·Î Á¤Áö ½ÃÁ¡À» ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÇϱâ À§ÇÑ Æ®·£Àè¼Ç IDÀÇ Á¤È®¼ºÀ» ½Äº°ÇÏ´Â °ÍÀ» µ½´Â ÅøÀÌ ¾ø±â ¶§¹®¿¡, ÇöÀç ³¯Â¥/½Ã°£ ÀÔ·Â ¿É¼ÇÀº ¸Å¿ì À¯¿ëÇÕ´Ï´Ù.
Note: Á¤Áö½ÃÁ¡Àº ¹é¾÷ÀÇ Á¾·á½Ã°¢º¸´Ù µÚ¾î¾ß ÇÕ´Ï´Ù.(
pg_stop_backup) ¹é¾÷ÀÌ »ç¿ë ÁßÀÏ °æ¿ì, ½Ã°£À» º¹±¸ÇÏ´Â ±âº» ¹é¾÷Àº »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. (ÀÌ·¯ÇÑ ½ÃÁ¡±îÁö º¹±¸ÇÏ·Á¸é, ÀÌÀü ±âº» ¹é¾÷À¸·Î µ¹¾Æ°¡, °Å±â¼ºÎÅÍ ·Ñ forward ÇØÁֽʽÿä.)
º¹±¸½Ã¿¡ WAL µ¥ÀÌÅÍÀÇ ÆÄ¼ÕÀ» ¾Ë ¼ö ÀÖÀ¸¸é, ±× ½ÃÁ¡±îÁöÀÇ º¹±¸¸¦ ½Ç½ÃÇÏÁö¸¸, ¼¹ö¸¦ ½ÇÇà½ÃŰÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, "º¹±¸ ´ë»ó"À¸·Î ÆÄ¼Õ ½ÃÁ¡º¸´Ù ÀüÀÇ ½ÃÁ¡À» ÁöÁ¤ÇÏ¿© º¹±¸ 󸮸¦ Á¤»óÀûÀ¸·Î ¿Ï·áÇÒ ¼ö ÀÖµµ·Ï º¹±¸ ÇÁ·Î¼¼½º¸¦ óÀ½ºÎÅÍ ´Ù½Ã ÇÒ ¼ö ÀÖ½À´Ï´Ù. ½Ã½ºÅÛ Å©·¡½¬¿Í °°Àº ¿ÜÀû ÀÌÀ¯·Î º¹±¸ 󸮰¡ ½ÇÆÐÇ߰ųª WAL ¾îÄ«À̺갡 ¾×¼¼½ºÇÒ ¼ö ¾ø°Ô µÇ¾úÀ» °æ¿ì, º¹±¸ 󸮸¦ Àç½ÃÀÛ½Ãų ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì´Â ½ÇÆÐÇÑ ½ÃÁ¡°ú °ÅÀÇ °°Àº °÷ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. º¹±¸ ó¸®ÀÇ Àç½ÃÀÛÀº ´ÙÀ½°ú °°Àº º¸Åë Á¶ÀÛ½ÃÀÇ Ã¼Å© Æ÷ÀÎÆ® ó¸®¿Í °°ÀÌ µ¿ÀÛÇÕ´Ï´Ù. ¼¹ö´Â Á¤±âÀûÀ¸·Î ¸ðµç »óŸ¦ µð½ºÅ©¿¡ °¿äÇϰí, ÀçÂ÷ ½ºÄµÇÒ Çʿ䰡 ¾ø´Â ÀÌ¹Ì Ã³¸®µÈ WAL µ¥ÀÌÅ͸¦ ³ªÅ¸³»´Â pg_controlÆÄÀÏÀ» ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù.
ÀÌÇÏÀÇ ¼³Á¤Àº recovery.conf¿¡¼¸¸ ¼³Á¤ °¡´ÉÇϰí, º¹±¸ ±â°£¿¡¸¸ Àû¿ëµË´Ï´Ù. ÀÌ´Â ÈÄ¿¡ ½ÇÇàÇÏ´Â º¹±¸¸¶´Ù Àç¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. º¹±¸°¡ ½ÃÀÛµÇ¸é º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù.
WAL ÆÄÀÏ ¼¼Æ®ÀÇ º¸°üµÈ ¼¼±×¸ÕÆ®¸¦ ²¨³»±â À§Çؼ ½ÇÇàÇÏ´Â ½© Ä¿¸ÇµåÀÔ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ÇʼöÀÔ´Ï´Ù. ¹®ÀÚ¿ Áß %f´Â ¸ðµÎ º¸°ü Àå¼Ò¿¡¼ ²¨³»´Â ÆÄÀϸíÀ¸·Î ´ëüÇÒ ¼ö ÀÖÀ¸¸ç, %p´Â ¸ðµÎ ¼¹ö »óÀÇ Ä«ÇÇóÀÇ °æ·Î¸íÀ¸À¸·Î ´ëüµÉ ¼ö ÀÖ½À´Ï´Ù. (°æ·Î¸íÀº ÇöÀç ÀÛ¾÷ÇÏ´Â µð·ºÅ丮 Áï, Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮·ÎºÎÅÍ º» »ó´ë °æ·ÎÀÔ´Ï´Ù. ) Ä¿¸Çµå¿¡ ½ÇÁ¦%¹®ÀÚ¸¦ Æ÷ÇÔ½Ã۱â À§ÇØ %%¸¦ ÀÔ·ÂÇϽʽÿä.
ÀÌ Ä¿¸Çµå·Î Áß¿äÇÑ Á¡Àº ¼º°øÇßÀ» °æ¿ì¸¸ 0 Á¾·á »óŸ¦ µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ Ä¿¸Çµå´Â º¸°ü Àå¼Ò¿¡ Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀϸíÀ» ¿äû ÇÒ ¼ö ÀÖ½À´Ï´Ù. . ¿äûÀÌ ÀÖ´Â °æ¿ì´Â nonzero¸¦ ¹ÝÈ¯ÇØ¾ß¸¸ ÇÕ´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ µé¸é,
restore_command = 'cp /mnt/server/archivedir/%f "%p"' restore_command = 'copy /mnt/server/archivedir/%f "%p"' # Windows
ÀÌ ÆÄ¶ó¹ÌÅÍ´Â º¹±¸ 󸮸¦ ¾îµð±îÁö ½Ç½ÃÇÏ´ÂÁö¸¦ ³ªÅ¸³»±â À§ÇØ Å¸ÀÓ ½ºÅÆÇÁ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¸¹¾Æµµ 1°³ÀÇrecovery_target_time¿Í recovery_target_xid¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®¿¡¼´Â WAL ·Î±×ÀÇ ¸¶Áö¸·±îÁö º¹±¸ ÇÕ´Ï´Ù. ¶ÇÇÑ, Á¤È®ÇÑ Á¤Áö½ÃÁ¡Àºrecovery_target_inclusive¿¡ ÀÇÇØ ¹Ù²ò´Ï´Ù.
ÀÌ ÆÄ¶ó¹ÌÅÍ´Â º¹±¸ 󸮸¦ ¾îµð±îÁö ÁøÇàÇÏ´ÂÁö¸¦ ³ªÅ¸³»´Â Æ®·£Àè¼Ç ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù. Æ®·£Àè¼Ç ID´Â Æ®·£Àè¼ÇÀÇ ½ÃÀ۽ÿ¡ Â÷·Ê·Î ÇÒ´çÇÒ ¼ö ÀÖÁö¸¸, Æ®·£Àè¼ÇÀÇ Á¾·á´Â ÀÌ·¯ÇÑ Â÷·Ê´ë·Î ÀϾÁö ¾Ê´Ù´Â °ÍÀ» ÁÖÀÇÇϽʽÿä. º¹±¸µÇ´Â Æ®·£Àè¼Ç´Â ÁöÁ¤ÇÑ IDº¸´Ù Àü¿¡ ó¸®µÈ Æ®·£Àè¼ÇÀÔ´Ï´Ù(¿É¼ÇÀ¸·Î ÁöÁ¤ÇÑ ID¸¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ½À´Ï´Ù). ¸¹¾Æµµ 1°³ÀÇ recovery_target_xid°ú recovery_target_time¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®¿¡¼´Â WAL ·Î±×ÀÇ ¸¶Áö¸·±îÁö º¹±¸ ÇÕ´Ï´Ù. ¶ÇÇÑ, Á¤È®ÇÑ Á¤Áö½ÃÁ¡Àºrecovery_target_inclusive¿¡ ÀÇÇØ ¹Ù²ò´Ï´Ù.
ÁöÁ¤µÈ º¹±¸ ´ë»ó Á÷ÈÄ¿¡ Á¤ÁöÇÒ °Í(true)Àΰ¡, º¹±¸ ´ë»ó Á÷Àü¿¡ Á¤ÁöÇÒ(false)°ÍÀÎÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ º¹±¸´Â ÁöÁ¤µÈ recovery_target_time¿Í recovery_target_xid¿¡ Àû¿ëµË´Ï´Ù. ÀÌ´Â ´ë»ó ó¸® ½Ã°¢À̳ª ID¿¡ Á¤È®È÷ ÀÏÄ¡ÇÏ´Â Æ®·£Àè¼Ç¸¦ º¹±¸¿¡ Æ÷ÇÔÇÒÁö¸¦ ³ªÅ¸³À´Ï´Ù. µðÆúÆ®´Â trueÀÔ´Ï´Ù.
ƯÁ¤ÇÑ ½Ã°è¿·Î º¹±¸¸¦ ½Ç½ÃÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´Â ±âº» ¹é¾÷À» ÃëµæÇÑ ½ÃÁ¡°ú °°Àº ½Ã°è¿¿¡ µû¶ó º¹±¸ ÇÕ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â point-in-time º¹±¸ µÚ¿¡ »óÅ·Π¹ÝÈ¯ÇØ¾ß ÇÏ´Â º¹ÀâÇÑ À纹±¸¿¡¸¸ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº Section 23.3.4À» ÂüÁ¶ÇØ Áֽʽÿä.
°ú°ÅÀÇ ½ÃÁ¡±îÁö µ¥ÀÌÅͺ£À̽º¸¦ º¹±¸ÇÒ ¼ö ÀÖ´Â ±â´ÉÀº SFÀÇ ½Ã°£ ¿©ÇàÀ̳ª ÆÐ·¯·¼ À¯´Ï¹ö½º °°Àº ´Ù¼Ò º¹ÀâÇÕÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, µ¥ÀÌÅͺ£À̽ºÀÇ ¿ø·¡ÀÇ ÀÌ·ÂÀ¸·Î, È¿äÀÏÀÇ Àú³á 5:15 PM¿¡ Áß¿äÇÑ Å×À̺íÀ» »èÁ¦ÇØ, ¼ö¿äÀÏÀÇ Á¡½É±îÁö Âø¿À¸¦ ¾Ë¾ÆÂ÷¸®Áö ¾Ê¾Ò´Ù°í ÇÕ´Ï´Ù. ´çȲÇÏÁö ¾Ê°í, ¹é¾÷À» ÅëÇØ È¿äÀÏ Àú³á 5:14 PM ½ÃÁ¡¿¡ º¹±¸¸¦ ÇÏ°í µ¥ÀÌÅͺ£À̽º¸¦ ½ÇÇà½Ãŵ´Ï´Ù. µ¥ÀÌÅͺ£À̽º ¼¼°èÀÇ ÀÌ·¯ÇÑ À̷¿¡¼´Â, ±× Å×À̺íÀ» °áÄÚ »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù. ±×·¯³ª ½Ã°£ÀÌ È帥 ÈÄ, °á±¹ À̰ÍÀº ±²ÀåÇÑ ¹®Á¦´Â ¾Æ´Ï¾ú´Ù´Â °ÍÀ» ¾Ë¾Ò´Ù°í °¡Á¤Çϸé, ¿ø·¡ÀÇ ÀÌ·ÂÀÇ ÀÌ ÈÄ·Î ½ÃÁ¡À» µ¹¸®±â¸¦ ¿øÇÒ °ÍÀÔ´Ï´Ù. µ¥ÀÌÅͺ£À̽º´Â ÀÌ¹Ì ½ÇÇàµÇ°í Àֱ⠶§¹®¿¡, ÀÏ·ÃÀÇ WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀÇ ÀϺδ °ãÃľ²´Â °ÍÀÌ °¡´ÉÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ÀÌ °æ¿ì, µ¹¸®°í ½ÍÀº ½ÃÁ¡º¸´Ù ¹Ì·¡ÀÇ ½ÃÁ¡À» ¿øÇϱ⠶§¹®¿¡, µÇµ¹¸± ¼ö ¾ø½À´Ï´Ù. ±×·¯¹Ç·Î, point-in-time º¹±¸½ÃŲ ÈÄ¿¡ »ý¼ºµÈ ÀÏ·ÃÀÇ WAL ±â·Ï°ú ¿ø·¡ µ¥ÀÌÅͺ£À̽ºÀÇ À̷¿¡ ´ëÇØ »ý¼ºµÈ WAL ±â·ÏÀ» ±¸º°ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ ¹®Á¦¸¦ ´Ù·ç±â À§ÇØ PostgreSQL¿¡´Â ½Ã°è¿À̶ó°í ÇÏ´Â °³³äÀÌ ÀÖ½À´Ï´Ù. ¾îÄ«ÀÌºê º¹±¸°¡ ¿Ï·áÇßÀ» ¶§´Â ¾ðÁ¦¶óµµ, ±× º¹±¸ ÈÄ¿¡ »ý¼ºµÈ WAL ±â·ÏÀ» ½Äº°Çϱâ À§ÇÑ »õ·Î¿î ½Ã°è¿ÀÌ »ý¼ºµË´Ï´Ù. ½Ã°è¿ ID¹øÈ£´Â WAL ¼¼±×¸ÕÆ® ÆÄÀϸíÀÇ ÀϺÎÀÔ´Ï´Ù. ±×·¯¹Ç·Î, »õ·Î¿î ½Ã°è¿Àº Áö±Ý±îÁöÀÇ ½Ã°è¿·Î »ý¼ºµÈ WAL µ¥ÀÌÅ͸¦ °ãÃÄ ¾²Áö ¾Ê½À´Ï´Ù. ½ÇÁ¦, ¸¹Àº ´Ù¸¥ ½Ã°è¿À» º¸°üÇÒ ¼ö ÀÖ½À´Ï´Ù. ºÒÇÊ¿äÇÑ ±â´ÉÀ̶ó°í »ý°¢ÇÒÁöµµ ¸ð¸¨´Ï´Ù¸¸, ±¸¿øÇØÁÖ´Â ÀÏÀÌ ÀÚÁÖ ÀÖ½À´Ï´Ù. ¾î´À ½ÃÁ¡±îÁö º¹±¸ ÇÒÁö È®½ÇÄ¡ ¾ÊÀº »óȲÀ» »ý°¢ÇØ º¸¼¼¿ä. ±× ¶§´Â °ú°ÅÀÇ ÀÌ·ÂÀÇ ºÐ±âÁ¡À¸¿¡¼ ÃÖ¼±ÀÇ ½ÃÁ¡À» ã¾Æ³»±â À§Çؼ, ¿©·¯¹øÀÇ ½ÃÇàÂø¿À¸¦ °ÅÃÄ point-in-time º¹±¸¸¦ ½Ç½ÃÇØ¾ß ÇÕ´Ï´Ù. ½Ã°è¿ÀÌ ¾øÀ¸¸é ÀÌ·¯ÇÑ ÀýÂ÷´Â °ð¹Ù·Î °ü¸® ºÒ´ÉÀÇ È¥¶õÀ» ºÒ·¯ÀÏÀ¸Åµ´Ï´Ù. ½Ã°è¿À» »ç¿ëÇØ, ´ÙÀ½¿¡ Áß´ÜÇßÀ» ¶§ °è¿ ºÐ±âÀÇ »óŸ¦ Æ÷ÇÔÇÑ, °ú°ÅÀÇ ÀÓÀÇ »óŸ¦ º¹±¸½Ãų ¼ö ÀÖ½À´Ï´Ù.
»õ·Î¿î ½Ã°è¿ÀÌ »ý¼ºµÉ ¶§, PostgreSQL´Â ¾î´À ½Ã°è¿ÀÌ ¾ðÁ¦ ¾îµð¿¡¼ ºÐ±â Çß´ÂÁö¸¦ ³ªÅ¸³»´Â "½Ã°è¿ ÀÌ·Â"ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ ÀÌ·Â ÆÄÀÏÀº º¹¼öÀÇ ½Ã°è¿À» Æ÷ÇÔÇÑ ¾îÄÉÀ̺ê·ÎºÎÅÍ º¹±¸ÇÒ ¶§ ½Ã½ºÅÛÀÌ ¿Ã¹Ù¸¥ WAL ¼¼±×¸ÕÆ® ÆÄÀÏÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ÇÊ¿äÇÕ´Ï´Ù. µû¶ó¼, ÀÌ·Â ÆÄÀÏÀº WAL ¼¼±×¸ÕÆ® ÆÄÀϰú °°ÀÌ WAL º¸°ü ¿µ¿ª¿¡ º¸°üµË´Ï´Ù. ÀÌ·Â ÆÄÀÏÀº(°Å´ëÇÑ ¼¼±×¸ÕÆ® ÆÄÀϰú´Â ´Þ¸®) ´Ü¼øÇÑ ÀÛÀº ÅØ½ºÆ® ÆÄÀÏÀ̹ǷÎ, Àú·ÅÇϰí Àû´çÇÏ°Ô ¹«±âÀ¸·Î º¸°üÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÊ¿äÇϸé, ÀÌ·Â ÆÄÀÏ¿¡ ÄÚ¸àÆ®¸¦ Ãß°¡ÇØ, ÀÌ Æ¯Á¤ÇÑ ½Ã°è¿ÀÌ ¾î¶»°Ô, ¿Ö »ý¼ºµÇ¾ú´ÂÁö¸¦ Ç¥½ÃÇØ µ¶ÀÚÀûÀÎ ÁÖ¼®À» ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ÀÌ·¯ÇÑ ÄÚ¸àÆ®´Â ½ÇÇèÀÇ °á°ú ¾ó¸¶µçÁöÀÇ ½Ã°è¿ÀÇ Æ¼ÄÏÀÌ ÀÖ´Â °æ¿ì¿¡ À¯¿ëÇÕ´Ï´Ù.
º¹±¸ ó¸®ÀÇ µðÆúÆ®´Â ±âº» ¹é¾÷ÀÌ ÃëµæµÈ ½ÃÁ¡ÀÇ ½Ã°è¿°ú µ¿ÀÏÇÑ ½Ã°è¿¿¡ µû¸¥ º¹±¸ÀÔ´Ï´Ù. ÀϺΠÀÚ½Ä ½Ã°è¿·Î º¹±¸ÇÏ°í ½ÍÀº(Áï, º¹±¸ ½ÃÇà ÀÌÈÄ¿¡ »ý¼ºµÈ ÀÖ´Â »óÅ¿¡ µ¹¾Æ¿À°í ½Í´Ù) °æ¿ì´Â recovery.conf·Î ´ë»óÀÇ ½Ã°è¿ ID¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ±âº» ¹é¾÷º¸´Ù Àü¿¡ ºÐ±âÇßÀ» °æ¿ì, ½Ã°è¿¿¡ µû¶ó º¹±¸ÇÒ ¼ö ¾ø½À´Ï´Ù.
º» ¹®¼ ÀÛ¼º ½ÃÁ¡¿¡¼´Â °è¼ÓÀû ¾îÄ«ÀÌºê ±â¼ú¿¡ ¸î °³ÀÇ Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù. ÇâÈÄ ¸±¸®½º¿¡¼´Â ¼öÁ¤µÉ °ÍÀÔ´Ï´Ù.
ÇØ½Ã À妽º¿¡ ´ëÇÑ Á¶ÀÛÀº ÇöÀç WAL ·Î±×¿¡ ³²Áö ¾Ê½À´Ï´Ù. µû¶ó¼, ´Ù½Ã ½ÇÇàÇØµµ ÀÌ·¯ÇÑ À妽º´Â ¾÷µ¥ÀÌÆ®µÇÁö ¾Ê½À´Ï´Ù. ÃßõµÇ´Â º¸¾ÈÃ¥À¸·Î º¹±¸ ¿¬»êÀÌ ¿Ï·áµÈ ÈÄ ¼öµ¿À¸·Î À妽º °¢°¢ ´ëÇØ REINDEX ¸¦ ½Ç½ÃÇÏ´Â °ÍÀÔ´Ï´Ù.
¸¸¾à ±âº» ¹é¾÷À» ½ÇÇà µÇ¾úÀ» ¶§, CREATE DATABASE Ä¿¸Çµå°¡ ½ÇÇàµÇ°í, ±âº» ¹é¾÷ÀÌ Ã³¸®µÇ´Â µ¿¾È CREATE DATABASE°¡ Ä«ÇÇÇϰí ÀÖ´Â template µ¥ÀÌÅͺ£À̽º°¡ º¯°æµÇ¸é, º¹±¸´Â ÀÛ¼ºµÈ µ¥ÀÌÅͺ£À̽º·Î ÀÌ·¸³ª º¯°æÀ» ÀüÆÄÇÏ´Â ¿øÀÎÀÌ µË´Ï´Ù. ¹°·Ð, À̰ÍÀº ¹Ù¶÷Á÷ÇÏ´Â ÀÏÀÌ ¾Æ´Õ´Ï´Ù. ÀÌ À§ÇèÀ» ȸÇÇÇÏ·Á¸é, ±âº» ¹é¾÷ ±â°£ Áß¿¡ ¸ðµç template µ¥ÀÌÅͺ£À̽º¸¦ º¯°æÇÏÁö ¾Ê´Â °ÍÀÌ Á¦ÀÏÀÔ´Ï´Ù.
CREATE TABLESPACE Ä¿¸Çµå´Â ¸®ÅÍ·²ÀÇ Àý´ë °æ·Î·Î WAL¿¡ ·Î±×°¡ ±â·ÏµÇ°í, °°Àº Àý´ë °æ·Î¿¡¼ÀÇ Å×ÀÌºí °ø°£ÀÌ »ý¼ºµÉ ¶§ Àç½ÇÇàµË´Ï´Ù. ÀÌ´Â ¸¸¾à ·Î±×°¡ ´Ù¸¥ ¸Ó½Å»ó¿¡¼ Àç»ýµÇ´Â °æ¿ì¿¡´Â ¹Ù¶÷Á÷ÇÏÁö´Â ¾Ê½À´Ï´Ù. ·Î±× Àç»ýÀÌ ºñ·Ï µ¿ÀÏÇÑ ¸Ó½ÅÀ̾, ½Å±ÔÀÇ µ¥ÀÌÅÍ µð·ºÅ丮À̸é À§ÇèÇÕ´Ï´Ù. ¿Ö³ÄÇϸé, Àç»ýÀº ¿ø·¡ÀÇ Å×ÀÌºí °ø°£ ³»¿ëÀ» °è¼Ó °ãÃÄ ¾²±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ·± Á¾·ùÀÇ ÀáÀçÀû ÇൿÀ» ¸·±â À§Çؼ´Â Å×ÀÌºí °ø°£À» ÀÛ¼ºÇϰųª »èÁ¦ ÈÄ, »õ·Î¿î ±âº» ¹é¾÷À» ½Ç½ÃÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÔ´Ï´Ù.
¶ÇÇÑ, µðÆúÆ®ÀÇWALÆ÷¸ËÀº ¼ö¸¹Àº µð½ºÅ© ÆäÀÌÁöÀÇ ½º³À¼¦À» Æ÷ÇÔÇϰí Àֱ⠶§¹®¿¡, ºÎÇǰ¡ Ä¿Áö´Â °Í¿¡ ÁÖÀÇÇϽʽÿä. ÀÌ·¯ÇÑ ÆäÀÌÁö snapshot´Â Å©·¡½¬·ÎºÎÅÍ º¹±¸À» À§ÇØ ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ºÎºÐÀûÀ¸·Î ÀԷµǴ µð½ºÅ© ÆäÀÌÁö¸¦ ¼öÁ¤ÇØ¾ß ÇÒ Çʿ䰡 Àֱ⠶§¹®ÀÔ´Ï´Ù. ½Ã½ºÅÛÀÇ Çϵå¿þ¾î³ª ¼ÒÇÁÆ®¿þ¾î¿¡ µû¶ó¼´Â ºÎºÐÀûÀÎ µð½ºÅ© ÆäÀÌÁöÀÇ ÀÔ·ÂÀº ¹«½ÃÇØµµ ±¦ÂúÀ» ¸¸Å ÀÛ½À´Ï´Ù. ÀÌ °æ¿ìfull_page_writesÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇØ ÆäÀÌÁö ½º³À¼¦À» ¹«È¿·Î ÇÏ¿©, ¾îÄ«À̺êµÈ ·Î±×ÀÇ Ãѿ뷮À» Å«ÆøÀ¸·Î Ãà¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù (½ÇÁ¦·Î ¼³Á¤À» ½Ç½ÃÇϱâ Àü¿¡, Chapter 27ÀÇ ÁÖÀÇ »çÇ×°ú °æ°í¸¦ Àоî ÁÖ¼¼¿ä). ÆäÀÌÁö ½º³À¼¦À» ¹«È¿·Î ÇØµµ PITR ¿¬»êÀ» ·Î±×¿¡ »ç¿ëÇÒ ¼ö ¾øµµ·Ï ¸·´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÇâÈÄ °úÁ¦´Â full_page_writes°¡ ÀÛµ¿µÇ´Â °æ¿ì¶óµµ ºÒÇÊ¿äÇÑ ÆäÀÌÁö¸¦ ¾ø¾Ö°í º¸°üµÈ WAL µ¥ÀÌÅÍÀÇ ¾ÐÃàÀ» ½Ç½ÃÇÏ´Â °ÍÀÔ´Ï´Ù. ´çÀå °ü¸®ÀÚ´Â °¡´ÉÇÑ ÇÑ Ã¼Å© Æ÷ÀÎÆ® °£°Ý ÆÄ¶ó¹ÌÅ͸¦ Å©°Ô ÇÔÀ¸·Î½á, WAL¿¡ Æ÷ÇԵǴ ÆäÀÌÁö snapshotÀÇ ¼ö¸¦ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù.