9.20. ½Ã½ºÅÛ °ü¸® ÇÔ¼ö

Table 9-45(Àº)´Â, ½ÇÇà½Ã ȯ°æ¼³Á¤ ÆÄ¶ó¹ÌÅÍÀÇ ¹®Àdzª º¯°æ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼ö¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

Table 9-45. ȯ°æ ¼³Á¤ ÇÔ¼ö

À̸§ ¹ÝȯÇü ¼³¸í
current_setting(setting_name) text ÇöÀçÀÇ ¼³Á¤°ª
set_config(setting_name, new_value, is_local) text ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇØ, ½Å±Ô°ªÀ» ¹ÝȯÇÑ´Ù

ÇÔ¼öcurrent_setting´Â, ¼³Á¤setting_nameÀÇ ÇöÀçÀÇ °ªÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ ÇÔ¼ö´Â,SQLÀÇSHOWÄ¿¸àµå¿Í °°½À´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

SELECT current_setting('datestyle');

 current_setting
-----------------
 ISO, MDY
(1 row)

set_configÇÔ¼ö´Â, ÆÄ¶ó¹ÌÅÍsetting_name¸¦new_value·Î ¼³Á¤ÇÕ´Ï´Ù. ´Ù¸¸,is_local°¡trueÀÇ °æ¿ì, »õ·Î¿î °ªÀº ÇöÀçÀÇ Æ®·£Àè¼Ç¿¡¼­¸¸ Àû¿ëµË´Ï´Ù. »õ·Î¿î °ªÀ» ÇöÀçÀÇ ¼¼¼Ç¿¡ Àû¿ëÇÏ´Â °æ¿ì´Â, ´ë½Å¿¡false¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä. ÀÌ ÇÔ¼ö´Â, SQLÀÇSETÄ¿¸àµå¿Í °°½À´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

SELECT set_config('log_statement_stats', 'off', false);

 set_config
------------
 off
(1 row)

Table 9-46¿¡ ³ªÅ¸³»´Â ÇÔ¼ö´Â, Á¦¾î¿ë ½Ã±×³ÎÀ» ´Ù¸¥ ¼­¹ö ÇÁ·Î¼¼½º¿¡ ¼Û½ÅÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÇÔ¼öÀÇ »ç¿ëÀº ½´ÆÛ À¯Àú¿¡¸¸ Á¦Çѵǰí ÀÖ½À´Ï´Ù.

Table 9-46. ¼­¹ö ½Ã±×³Î ¼Û½Å ÇÔ¼ö

À̸§ ¹ÝȯÇü ¼³¸í
pg_cancel_backend(pid int) boolean ¹é¿£µåÀÇ ÇöÀçÀÇ Äõ¸®¸¦ Ãë¼ÒÇÑ´Ù
pg_reload_conf() boolean ¼­¹ö ÇÁ·Î¼¼½º¿¡ÀÇÇØ ȯ°æ¼³Á¤ ÆÄÀÏÀ» ´Ù½Ã ·ÎµåÇÑ´Ù
pg_rotate_logfile() boolean ¼­¹ö ·Î±× ÆÄÀÏÀ» ¼øÈ¯½ÃŲ´Ù

À̵é ÇÔ¼ö °¢°¢Àº, ¼º°øÀÇ °æ¿ìtrue(Âü)¸¦ ¹ÝȯÇϰí, ±×·¸Áö ¾ÊÀº °æ¿ì´Âfalse(°ÅÁþ)¸¦ ¹ÝȯÇÕ´Ï´Ù.

pg_cancel_backend´Â Äõ¸® Ãë¼Ò(SIGINT) ½Ã±×³ÎÀ» ÇÁ·Î¼¼½ºID·Î ½Äº°µÈ ¹é¿£µå ÇÁ·Î¼¼½º¿¡ º¸³À´Ï´Ù. »ç¿ëÁßÀÎ ¹é¿£µå ÇÁ·Î¼¼½º ID´Âpg_stat_activityºäÀÇprocpid¿­·ÎºÎÅÍ, ȤÀºps¿¡ ÀÇÇØ ¼­¹ö»óÀÇpostgresÇÁ·Î¼¼½º¸¦ ¸®½ºÆ® ÇÏ´Â °ÍÀ¸·Î ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.

pg_reload_conf´ÂSIGHUP½Ã±×³ÎÀ» ¼­¹ö¿¡ º¸³», ±× °á°ú ¸ðµç ¼­¹ö ÇÁ·Î¼¼½º°¡ ȯ°æ¼³Á¤ ÆÄÀÏÀ» Àç·ÎµåÇÏ°Ô µË´Ï´Ù.

pg_rotate_logfile´Â ·Î±× ÆÄÀÏ °ü¸®ÀÚ¿¡°Ô Áï¼®¿¡¼­ ½Å±Ô Ãâ·Â ÆÄÀÏ¿¡ º¯È¯½ÅÈ£¸¦ º¸³À´Ï´Ù. À̰ÍÀº redirect_stderrÀÌ ·Î±ëÀ» ÇϱâÀ§ÇØ »ç¿ëµÉ °æ¿ì¿¡¸¸ À¯È¿ÇÕ´Ï´Ù. »ç¿ëµÇ°í ÀÖÁö ¾ÊÀº °æ¿ì´Â, ·Î±× ÆÄÀÏ °ü¸®ÀÚÀÇ ¼­ºêÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.

Table 9-47¿¡ ³ªÅ¸³»´Â ÇÔ¼ö´Â ¿Â¶óÀÎ ¹é¾÷ÀÇ ÀÛ¼ºÀ» Áö¿øÇÏ´Â °ÍÀÔ´Ï´Ù. ÃÖÃÊÀÇ 3°³ÀÇ ÇÔ¼öÀÇ »ç¿ëÀº ½´ÆÛ À¯Àú¿¡°Ô Á¦Çѵǰí ÀÖ½À´Ï´Ù.

Table 9-47. ¹é¾÷ Á¦¾î ÇÔ¼ö

À̸§ ¹ÝȯÇü ¼³¸í
pg_start_backup(label text) text ¿Â¶óÀÎ ¹é¾÷ÀÇ ½ÇÇàÀ» ¼³Á¤
pg_stop_backup() text ¿Â¶óÀÎ ¹é¾÷ÀÇ ½ÇÇàÀ» Á¤Áö
pg_switch_xlog() text »õ·Î¿î Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏ¿¡ÀÇ °­Á¦ ÀÌÇà
pg_current_xlog_location() text ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ ±âÀÔ À§Ä¡¸¦ ÀÔ¼ö
pg_current_xlog_insert_location() text ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ »ðÀÔ À§Ä¡¸¦ ÀÔ¼ö
pg_xlogfile_name_offset(location text) text, integer Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­À», ÆÄÀϸí°ú ÆÄÀϳ»ÀÇ 10ÁøÀÇ ¹ÙÀÌÆ® ¿ÀÇÁ¼Â(offset)À¸·Î º¯È¯
pg_xlogfile_name(location text) text Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­À» ÆÄÀϸíÀ¸·Î º¯È¯

pg_start_backup´Â, À¯Àú°¡ ÀÓÀÇ¿¡ Á¤ÀÇÇÑ ¹é¾÷ ¶óº§ÀÎ, ÆÄ¶ó¹ÌÅ͸¦ 1°³¹Þ¾ÆµéÀÔ´Ï´Ù(Åë»ó, ÀúÀå¿¡ »ç¿ëÇÏ´Â ¹é¾÷ ´ýÇÁ ÆÄÀÏ¿¡ ¿¬°üµÈ À̸§À» ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù). ÀÌ ÇÔ¼ö´Â, µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮¿¡ ¹é¾÷ ¶óº§ ÆÄÀÏÀ» ÀÛ¼ºÇϰí, ¹é¾÷À» ½ÃÀÛÇÏ´Â Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡¸¦ ÅØ½ºÆ® Çü½ÄÀ¸·Î ¹ÝȯÇÕ´Ï´Ù. À¯Àú´Â ÀÌ °á°ú°ª¿¡ ÁÖÀÇÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±×·¯³ª, »ç¿ëµÇ´Â Àϵµ Àֱ⠶§¹®¿¡ ÀÌ °ªÀÌ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.

postgres=# select pg_start_backup('label_goes_here');
 pg_start_backup
-----------------
 0/D4445B8
(1 row)

pg_stop_backup´Â,pg_start_backup·Î ÀÛ¼ºµÈ ¶óº§ ÆÄÀÏÀ» »èÁ¦Çϰí, ´ë½Å¿¡, Æ®·£Àè¼Ç(transaction) ·Î±× °Ý³³ ¿µ¿ª¿¡ ¹é¾÷ ÀÌ·Â ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ·Â ÆÄÀÏ¿¡´Âpg_start_backup·Î ºÎ¿©µÈ ¶óº§, ¹é¾÷ÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡ÀÇ °³½Ã À§Ä¡, Á¾·á À§Ä¡, ¹é¾÷ °³½Ã½Ã°¢, Á¾·á½Ã°¢ÀÌ Æ÷ÇԵ˴ϴÙ. ¹Ýȯ°ªÀº, ¹é¾÷ÀÇ Á¾·á Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡ÀÔ´Ï´Ù(À̰͵µ ÀÌ¿Í °°ÀÌ µå¹°°Ô »ç¿ëµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù). Á¾·á À§Ä¡¸¦ ÅëÁöÇÑ ÈÄ, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ »ðÀÔ À§Ä¡´Â ÀÚµ¿ÀûÀ¸·Î, ´ÙÀ½ÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×¿¡ ÁøÇàµË´Ï´Ù. ±×·¯¹Ç·Î, Á¾·á Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀ» °ð¹Ù·Î ¾ÆÄ«À̺ê(archive) ÇØ, ¹é¾÷À» ¿Ï·á½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù.

pg_switch_xlog´Â, ´ÙÀ½ÀÇ Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏ·Î À̵¿ÇØ, ÇöÀçÀÇ ÆÄÀÏÀ» ¾ÆÄ«À̺ê(archive) ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. (¾ÆÄ«À̺ê(archive)¸¦ °è¼ÓÇØ »ç¿ëÇÏ´Â °ÍÀ» ÀüÁ¦·Î ÇÕ´Ï´Ù. ) °á°ú´Â, ¿Ï·áÇÑ ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀϳ»ÀÇ Á¾·á Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡ÀÔ´Ï´Ù. ÀüȸÀÇ Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀÇ º¯È¯À¸·ÎºÎÅÍ Æ®·£Àè¼Ç(transaction) ·Î±×¿¡ º¯È­°¡ ¾øÀ¸¸é,pg_switch_xlog´Â ¾Æ¹«°Íµµ ½Ç½ÃÇÏÁö ¾Ê°í, ÀüȸÀÇ Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀÇ Á¾·á À§Ä¡¸¦ ¹ÝȯÇÕ´Ï´Ù.

pg_current_xlog_location´Â, »ó±âÀÇ ÇÔ¼ö·Î »ç¿ëµÇ´Â ¼­½Ä°ú °°Àº ¼­½Ä¿¡¼­ ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ ±âÀÔ À§Ä¡¸¦ Ç¥½ÃÇÕ´Ï´Ù. À̰ú °°ÀÌpg_current_xlog_insert_location´Â, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ »ðÀÔ À§Ä¡¸¦ Ç¥½ÃÇÕ´Ï´Ù. »ðÀÔ À§Ä¡´Â "³í¸®Àû"ÀÎ ÀÓÀÇÀÇ Àڱ⿬ÃâÀÇ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ Á¾·á À§Ä¡ÀÔ´Ï´Ù. ÇÑÆí, ±âÀÔ À§Ä¡´Â, ¼­¹öÀÇ ³»ºÎ ¹öÆÛ·ÎºÎÅÍ ÀÛ¼ºµÈ ½ÇÁ¦ÀÇ Á¾·á À§Ä¡ÀÔ´Ï´Ù. ±âÀÔ À§Ä¡´Â ¼­¹ö ¿ÜºÎ·ÎºÎÅÍ °ËÁõ °¡´ÉÇÏÁö¸¸ Á¾´ÜÀÔ´Ï´Ù. Åë»óÀº, ºÎºÐÀûÀ¸·Î ¿Ï·áÇÑ Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀÇ ¾ÆÄ«À̺ê(archive) 󸮸¦ ½Ç½ÃÇÏ°í ½ÍÀº °æ¿ì¿¡ ÇÊ¿äÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. »ðÀÔ À§Ä¡´Â ¼­¹ö¸¦ µð¹ö±× ÇÒ ¶§¿¡ ÁÖ·Î »ç¿ëµË´Ï´Ù. À̰͵éÀº µÑ´Ù ÀбâÀü¿ëÀÇ Á¶ÀÛÀ̸ç, ½´ÆÛ À¯Àú ±ÇÇÑÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê½À´Ï´Ù.

pg_xlogfile_name_offset¸¦ »ç¿ëÇØ, »ó±â ¾î´À ÇÔ¼öÀÇ °á°ú·ÎºÎÅ͵µ, ´ëÀÀÇÏ´Â Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀϰú ¹ÙÀÌÆ® ¿ÀÇÁ¼Â(offset)¸¦ ÃßÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

postgres=# select * from pg_xlogfile_name_offset(pg_stop_backup());
        file_name         | file_offset 
--------------------------+-------------
 00000001000000000000000D |     4039624
(1 row)

°°ÀÌpg_xlogfile_nameÀº, Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏ¸í¸¸À» ÃßÃâÇÕ´Ï´Ù. ÁöÁ¤ÇÑ Æ®·£Àè¼Ç(transaction) ·Î±×ÀÇ À§Ä¡°¡ Á¤È®ÇÏ°Ô Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀÇ °æ°è¿¡¼­ ¸¸³µÀ» °æ¿ì, ÀÌ·¯ÇÑ ¾çÇÔ¼ö´Â ÀüÀÇ Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀÇ À̸§À» ¹ÝȯÇÕ´Ï´Ù. Åë»ó À̰ÍÀº, Æ®·£Àè¼Ç(transaction) ·Î±× ÆÄÀÏÀÇ ¾ÆÄ«À̺ê(archive) µ¿ÀÛ¿¡¼­´Â ¼±È£µÇ´Â µ¿ÀÛÀÔ´Ï´Ù. ÀüÀÇ ÆÄÀÏÀÌ ÇöÀçÀÇ ¾ÆÄ«À̺ê(archive)·Î ÇÊ¿ä·Î ÇÏ´Â ¸¶Áö¸· ÆÄÀÏÀ̱⠶§¹®ÀÔ´Ï´Ù.

ÀÌ·¯ÇÑ ÇÔ¼öÀÇ ¿Ã¹Ù¸¥ »ç¿ë ¹æ¹ý¿¡ ´ëÇØ¼­´Â,Section 23.3À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

Table 9-48±×¸®°í ³ªÅ¸³­ ÇÔ¼ö´Â µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ®ÀÇ ½ÇÁ¦ÀÇ µð½ºÅ© ¿µ¿ªÀ» °è»êÇÕ´Ï´Ù.

Table 9-48. µ¥ÀÌÅͺ£À̽º ¿ÀºêÁ§Æ® ¿ë·® ÇÔ¼ö

À̸§ ¹ÝȯÇü ¼³¸í
pg_column_size(any) int ƯÁ¤ÀÇ °ªÀ» ÀúÀåÇϴµ¥ »ç¿ëµÇ´Â(°¡´ÉÇÑ °æ¿ì, ¾ÐÃàµÈ) ¹ÙÀÌÆ®¼ö
pg_database_size(oid) bigint ÁöÁ¤µÈ OID¸¦ °¡Áö´Â µ¥ÀÌÅͺ£À̽º·Î »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª
pg_database_size(name) bigint ÁöÁ¤µÈ À̸§À» °¡Áö´Â µ¥ÀÌÅͺ£À̽º·Î »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª
pg_relation_size(oid) bigint ÁöÁ¤µÈ OID¸¦ °¡Áö´Â Å×À̺í ȤÀº À妽º·Î »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª
pg_relation_size(text) bigint ÁöÁ¤µÈ À̸§À» °¡Áö´Â Å×À̺í ȤÀº À妽º·Î »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª. Å×À̺í¸íÀº ½ºÅ°¸¶¸íÀ¸·Î ¼ö½Ä °¡´É
pg_size_pretty(bigint) text ¹ÙÀÌÆ® ´ÜÀ§ÀÇ »çÀÌÁ ÁöÁ¤ »çÀÌÁîÀÇ °¡µ¶¼ºÀÌ ³ôÀº ¼­½ÄÀ¸·Î º¯È¯
pg_tablespace_size(oid) bigint ÁöÁ¤µÈ OID¸¦ °¡Áö´Â Å×ÀÌºí½ºÆäÀ̽º¿¡¼­ »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª
pg_tablespace_size(name) bigint ÁöÁ¤µÈ À̸§À» °¡Áö´Â Å×ÀÌºí½ºÆäÀ̽º¿¡¼­ »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª
pg_total_relation_size(oid) bigint ƯÁ¤µÈ OID¸¦ °¡Áö´Â Å×À̺í·Î »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª¿¡¼­, À妽º¿Í toast µÈ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ´Ù
pg_total_relation_size(text) bigint ƯÁ¤µÈ À̸§À» °¡Áö´Â Å×À̺í·Î »ç¿ëµÇ´Â µð½ºÅ© ¿µ¿ª¿¡¼­, À妽º¿Í toast µÈ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ´Ù. Å×À̺í¸íÀº ½ºÅ°¸¶¸íÀ¸·Î ¼ö½Ä °¡´É

pg_column_size´Â ¾î¶² °³º°ÀÇ µ¥ÀÌÅͰªÀ» ÀúÀåÇϴµ¥µµ »ç¿ëµÇ´Â ¿µ¿ªÀ» ³ªÅ¸³À´Ï´Ù.

pg_database_size¿Ípg_tablespace_size´Â µ¥ÀÌÅͺ£À̽º ¶Ç´Â Å×ÀÌºí½ºÆäÀ̽ºÀÇ À̸§ ¶Ç´Â OID¸¦ Á¢¼öÇØ °Å±â¼­ »ç¿ëµÇ´Â Ãѿ뷮À» ¹ÝȯÇÕ´Ï´Ù.

pg_relation_size´Â OID ȤÀº Å×À̺í¸í, À妽º ȤÀº toast Å×À̺íÀ» ¹Þ¾Æµé¿© ¹ÙÀÌÆ® ´ÜÀ§ÀÇ ¿ë·®À» ¹ÝȯÇÕ´Ï´Ù.

pg_size_pretty´Â, ÀûÀýÈ÷ kB, MB, GB, ȤÀº TB´ÜÀ§¸¦ »ç¿ëÇØ ´«À¸·Î ºÁ¼­µµ ¾Ëµµ·Ï, ±× ¿ÜÀÇ ÇÔ¼öÀÇ ÇϳªÀÇ °á°ú¸¦ Á¤ÇüÇϴµ¥ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

pg_total_relation_size´Â, Å×ÀÌºí ¶Ç´Â TOAST Å×À̺íÀÇ OID ¶Ç´Â À̸§À» ¹Þ¾Æµé¿© µ¥ÀÌÅÍ ¹× °ü·ÃÇÏ´Â À妽º, TOAST Å×À̺íÀÇ Ãѿ뷮À» ¹ÙÀÌÆ® ´ÜÀ§·Î ¹ÝȯÇÕ´Ï´Ù.

Table 9-49¿¡ ÀÖ´Â ÇÔ¼ö´Â ¼­¹ö¸¦ È£½ºÆÃ Çϰí ÀÖ´Â ¸Ó½Å»óÀÇ ÆÄÀÏ¿¡ ´ëÇØ, ÆÄÀÏ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º Ŭ·¯½ºÅÍ µð·ºÅ丮¿Ílog_directory¿¡ Á¸ÀçÇÏ´Â ÆÄÀϸ¸ÀÌ ¾×¼¼½º °¡´ÉÇÕ´Ï´Ù. Ŭ·¯½ºÅÍ µð·ºÅ丮³»ÀÇ ÆÄÀÏ¿¡ ´ëÇØ¼­ »ó´ë °æ·Î¸¦, ±×¸®°í ·Î±× ÆÄÀÏ¿¡ ´ëÇØ¼­´Âlog_directoryȯ°æ ¼³Á¤¿¡ ÀÏÄ¡ÇÏ´Â °æ·Î¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

Table 9-49. ¹ü¿ë ÆÄÀÏ ¾×¼¼½º ÇÔ¼ö

À̸§ ¹ÝȯÇü ¼³¸í
pg_ls_dir(dirname text) setof text µð·ºÅ丮 ³»¿ëÀÇ ¸®½ºÆ®
pg_read_file(filename text, offset bigint, length bigint) text ÅØ½ºÆ® ÆÄÀÏÀÇ ³»¿ëÀ» ¹ÝȯÇÑ´Ù
pg_stat_file(filename text) record ÆÄÀÏ Á¤º¸¸¦ ¹ÝȯÇÑ´Ù

pg_ls_dir´Â, Ưº°ÇÑ ¿£Æ®¸®". ", ¹× ".."(À»)¸¦ Á¦¿ÜÇÑ, ÁöÁ¤µÈ µð·ºÅ丮ÀÇ ¸ðµç À̸§À» ¹ÝȯÇÕ´Ï´Ù.

pg_read_file´Â ÁÖ¾îÁøoffset·Î ½ÃÀ۵Ǿî, ÃÖ´ëlength¹ÙÀÌÆ®(ÃÖÃÊ·Î ÆÄÀÏÀÇ ³¡¿¡ µµ´ÞÇϸé À̰ͺ¸´Ù Àû°Ô µË´Ï´Ù¸¸) ÅØ½ºÆ® ÆÄÀÏÀÇ ÀϺκÐÀ» ¹ÝȯÇÕ´Ï´Ù. offset°¡ À½¼öÀÇ °æ¿ì¿¡´Â ÆÄÀÏÀÇ ³¡ºÎÅÍ Àоî³À´Ï´Ù.

pg_stat_file´Â ÆÄÀÏ ¿ë·®, ÃÖÁ¾ ¾×¼¼½º ½Ã°¢, ÃÖÁ¾ °»½Å ½Ã°¢, ¸¶Áö¸·¿¡ ½Ã°¢À» º¯°æÇÑ file status(À̰ÍÀº Unix Ç÷§Æû¸¸), ÆÄÀÏ ÀÛ¼º ½Ã°¢(Windows¸¸) ¹× ¸¸¾à µð·ºÅ丮ÀÌ¸é ±×°ÍÀ» ³ªÅ¸³»´Âboolean¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀüÇüÀûÀÎ »ç¿ë¹ýÀ» ³ªÅ¸³À´Ï´Ù.

SELECT * FROM pg_stat_file('filename');
SELECT (pg_stat_file('filename')). modification;

Table 9-50¿¡ ³ªÅ¸³»´Â ÇÔ¼ö´Â ±Ç°íÀû ¶ôÀ» °ü¸®ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÇÔ¼öÀÇ ÀûÀýÇÑ »ç¿ë ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº,Section 12.3.4À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

Table 9-50. ±Ç°íÀû ¶ô¿ë ÇÔ¼ö

À̸§ ¹ÝȯÇü ¼³¸í
pg_advisory_lock(key bigint) void ¹èŸ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_advisory_lock(key1 int, key2 int) void ¹èŸ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_advisory_lock_shared(key bigint) void °øÀ¯ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_advisory_lock_shared(key1 int, key2 int) void °øÀ¯ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_try_advisory_lock(key bigint) boolean °¡´ÉÇÏ¸é ¹èŸ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_try_advisory_lock(key1 int, key2 int) boolean °¡´ÉÇÏ¸é ¹èŸ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_try_advisory_lock_shared(key bigint) boolean °¡´ÉÇÏ¸é °øÀ¯ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_try_advisory_lock_shared(key1 int, key2 int) boolean °¡´ÉÇÏ¸é °øÀ¯ ±Ç°íÀû ¶ôÀ» ȹµæ
pg_advisory_unlock(key bigint) boolean ¹èŸ ±Ç°íÀû ¶ôÀ» Ǭ´Ù
pg_advisory_unlock(key1 int, key2 int) boolean ¹èŸ ±Ç°íÀû ¶ôÀ» Ǭ´Ù
pg_advisory_unlock_shared(key bigint) boolean °øÀ¯ ±Ç°íÀû ¶ôÀ» Ǭ´Ù
pg_advisory_unlock_shared(key1 int, key2 int) boolean °øÀ¯ ±Ç°íÀû ¶ôÀ» Ǭ´Ù
pg_advisory_unlock_all() void ÇöÀçÀÇ ¼¼¼ÇÀ¸·Î º¸°ü À¯ÁöÇϰí ÀÖ´Â ±Ç°íÀû ¶ôÀ» ¸ðµÎ Ǭ´Ù

pg_advisory_lock´Â, ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¤ÀÇÇÑ ÀÚ¿ø¿¡ ¶ôÀ» °Ì´Ï´Ù. À̰ÍÀº, ´ÜÀÏÀÇ 64 ºñÆ® Űġ, ¶Ç´Â, 2°³ÀÇ 32 ºñÆ® Ű(ÀÌ 2°³ÀÇ Å° ½ºÆäÀ̽º´Â Áߺ¹ ÇÏÁö ¾Ê´Â °Í¿¡ ÁÖÀÇ)¿¡ ÀÇÇØ ½Äº°µË´Ï´Ù. ´Ù¸¥ ¼¼¼ÇÀÌ µ¿ÀÏ ÀÚ¿ø¿¡ ´ëÇÑ ¶ôÀ» º¸°ü À¯ÁöÇϰí ÀÖ´Â °æ¿ì, ÇÔ¼ö´Â ÀÚ¿øÀÌ ÀÌ¿ë °¡´ÉÇÏ°Ô µÉ ¶§±îÁö ´ë±âÇÕ´Ï´Ù. ¶ôÀº ¹èŸ ¶ôÀÔ´Ï´Ù. º¹¼öÀÇ ¶ô ¿ä±¸°¡ ´ë±â »óŰ¡ µË´Ï´Ù. ±×·¯¹Ç·Î, µ¿ÀÏ ÀÚ¿øÀÌ 3ȸ ¶ôÀÌ °É·ÈÀ» °æ¿ì, ´Ù¸¥ ¼¼¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ¹æÇϱâ À§Çؼ­´Â ¶ô ÇØÁ¦¸¦ 3ȸ ½Ç½ÃÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

pg_advisory_lock_sharedÀÇ µ¿ÀÛÀºpg_advisory_lock¿Í °°½À´Ï´Ù¸¸, ´Ù¸¥ ¼¼¼ÇÀÇ °øÀ¯ ¶ô°ú °øÀ¯ÇÒ ¼ö ÀÖ´Â ¶ôÀÎ Á¡ÀÌ ´Ù¸¨´Ï´Ù. ¹èŸ ¶ô ¿ä±¸¸¸ ¹èôµË´Ï´Ù.

pg_try_advisory_lock´Âpg_advisory_lock¿Í °°½À´Ï´Ù¸¸, ÀÌ ÇÔ¼öÀÇ °æ¿ì, ¶ôÀÌ ÀÌ¿ë °¡´ÉÇÏ°Ô µÉ ¶§±îÁö ´ë±âÇÏÁö ¾Ê½À´Ï´Ù. ¶ôÀ» Áï¼®¿¡¼­ ÃëµæÇØtrue¸¦ ¹ÝȯÇÏ´ÂÁö, ¶ôÀ» ȹµæÇÒ ¼ö ¾ø¾ú´ø °æ¿ì¿¡false¸¦ ¹ÝȯÇϵçÁö µÑ Áß ÇϳªÀÔ´Ï´Ù.

pg_try_advisory_lock_sharedÀÇ µ¿ÀÛÀº pg_try_advisory_lock¿Í °°½À´Ï´Ù¸¸, ¹èŸ ¶ôÀÌ ¾Æ´Ñ, °øÀ¯ ¶ôÀÇ È¹µæÀ» ½ÃµµÇÕ´Ï´Ù.

pg_advisory_unlock´Â, »çÀü¿¡ ȹµæÇÑ ±Ç°íÀû ¹èŸ ¶ôÀ» ÇØ¹æÇÕ´Ï´Ù(°É¾ú´ø ¶ôÀ» DZ´Ï´Ù). ¶ôÀ» Ǫ´Â(ÇØ¹æÇÏ´Â)µ¥¿¡ ¼º°øÇßÀ» °æ¿ì,true¸¦ ¹ÝȯÇÕ´Ï´Ù. ¶ôÀ» ½ÇÁ¦·Î º¸°ü À¯ÁöÇϰí ÀÖÁö ¾Ê´Â °æ¿ì,false¸¦ ¹ÝȯÇÕ´Ï´Ù, °Ô´Ù°¡ SQL °æ°í°¡ ¼­¹ö·ÎºÎÅÍ ¹ß»ýÇÕ´Ï´Ù.

pg_advisory_unlock_sharedÀÇ µ¿ÀÛÀºpg_advisory_unlock¿Í °°½À´Ï´Ù¸¸, ±Ç°íÀû °øÀ¯ ¶ôÀ» ÇØ¹æÇÏ´Â(Ǫ´Â) Á¡ÀÌ ´Ù¸¨´Ï´Ù.

pg_advisory_unlock_all´Â, ÇöÀçÀÇ ¼¼¼ÇÀ¸·Î º¸°ü À¯ÁöÇÏ´Â ±Ç°íÀû ¶ôÀ» ÇØ¹æÇÕ´Ï´Ù. (ÀÌ ÇÔ¼ö´Â, Ŭ¶óÀÌ¾ðÆ®¿ÍÀÇ Á¢¼ÓÀÌ ÀǵµÇÏÁö ¾Ê°í ²÷¾îÁ³À» °æ¿ì¿¡¼­µµ, ¼¼¼Ç Á¾·á½Ã¿¡ ¾Ï¹¬ÀûÀ¸·Î È£Ã⠵˴ϴÙ.)