| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 16. ¿î¿µ ½Ã½ºÅÛÀÇ È¯°æ | Fast Forward | Next |
µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇϱâ À§Çؼ´Â, ¿ì¼± µ¥ÀÌÅͺ£À̽º ¼¹ö¸¦ ±âµ¿ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. µ¥ÀÌÅͺ£À̽º ¼¹ö ÇÁ·Î±×·¥Àº postgres¶ó´Â À̸§ÀÔ´Ï´Ù. postgresÇÁ·Î±×·¥Àº ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â µ¥ÀÌÅͰ¡ ¾îµð¿¡ ÀÖ´ÂÁö ¾Ë°í ÀÖÀ» Çʿ䰡 ÀÖ¾î, À̰ÍÀº -D¿É¼ÇÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼, ¼¹ö¸¦ ±âµ¿ÇÏ´Â Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº, ÀÌÇÏ¿Í °°Àº ¸í·ÉÀÔ´Ï´Ù.
$ postgres -D /usr/local/pgsql/data
»ó±âÀÇ ¸í·ÉÀº, ¼¹ö¸¦ foreground·Î ½ÇÇà½Ãŵ´Ï´Ù. À̰ÍÀº, PostgreSQL»ç¿ëÀÚ°èÁ¤¿¡ ·Î±×ÀÎÇØ ½ÇÇàµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. -D¿É¼ÇÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, ¼¹ö´Â PGDATAȯ°æ º¯¼ö·Î ÁöÁ¤µÈ µ¥ÀÌÅÍ µð·ºÅ丮¸¦ »ç¿ëÇÏ·Á°í ½ÃµµÇÕ´Ï´Ù. ¾î´À ÂÊÀÇ º¯¼öµµ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ½ÇÆÐÇÕ´Ï´Ù.
Åë»óÀº, ¹é±×¶ó¿îµå¿¡¼ postgres¸¦ ±âµ¿ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. À̸¦ À§ÇØ, ÀÌÇÏ¿Í °°ÀÌ Åë»óÀÇ ½©ÀÇ ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.
$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
ÀÌ ¿¹¿Í °°ÀÌ, ¼¹öÀÇ Ç¥ÁØ Ãâ·Â°ú Ç¥ÁØ ¿¡·¯Ãâ·ÂÀ» ¾îµð¿£°¡ º¸°üÇØ µÎ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. À̰ÍÀº ÃßÀû ±â·ÏÀÇ ¸ñÀû°ú ¹®Á¦ÀÇ ¿øÀÎ ±¸¸í¿¡ µµ¿òÀÌ µË´Ï´Ù (·Î±× ÆÄÀÏÀÇ Ãë±Þ¿¡ ´ëÇÑ ÀüüÀûÀÎ ¼³¸í¿¡ ´ëÇØ¼´Â Section 22.3À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä).
postgresÇÁ·Î±×·¥¿¡´Â, ÀÌ ±× ¹Û¿¡µµ ¸¹Àº ¸í·É ¶óÀÎ ¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº postgres ·¹ÆÛ·±½º ÆäÀÌÁö¿Í ÈļúÇÏ´Â Chapter 17À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÀÌ·¯ÇÑ ½© ±¸¹®Àº ±æ¾îÁö±â ½±½À´Ï´Ù. ±× ¶§¹®¿¡, pg_ctl ÇÁ·Î±×·¥ÀÌ Á¦°øµÇ°í ÀÖ¾î, ¸î°³ÀÇ °ú¾÷À» ´Ü¼øÈÇϰí ÀÖ½À´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
pg_ctl start -l logfile
À̰ÍÀº, ¼¹ö¸¦ ¹é±×¶ó¿îµå¿¡¼ ±âµ¿ÇØ, Ãâ·ÂÀÌ ÁöÁ¤µÈ ·Î±× ÆÄÀÏ¿¡ ½á³À´Ï´Ù. -D¿É¼ÇÀº, ¿©±â¿¡¼µµ postgresÀÇ °æ¿ì¿Í °°Àº Àǹ̸¦ °¡Áý´Ï´Ù. pg_ctl¿¡ ÀÇÇØ ¼¹ö¸¦ Á¤Áö½Ãų ¼öµµ ÀÖ½À´Ï´Ù.
Åë»ó, ÄÄÇ»ÅͰ¡ ±âµ¿µÇ¾úÀ» ¶§¿¡ µ¥ÀÌÅͺ£À̽º ¼¹öµµ ÇÔ²² ±âµ¿ÇÏ°í ½ÍÀº °æ¿ì°¡ ¸¹´Ù°í »ý°¢µË´Ï´Ù. ÀÚµ¿ ±âµ¿ ½ºÅ©¸³Æ®´Â, ¿î¿µ½Ã½ºÅÛ °íÀ¯ÀÇ °ÍÀÔ´Ï´Ù. ¸î °¡Áö´Â PostgreSQLÀÇ /contrib/start-scriptsµð·ºÅ丮¿¡ ºÎ¿©µÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¼³Ä¡¿¡´Â ·çÆ® ±ÇÇÑÀÌ ÇÊ¿äÇÕ´Ï´Ù.
±âµ¿½Ã¿¡ demon¸¦ °³½ÃÇÏ´Â ¹æ¹ýÀº ½Ã½ºÅÛ¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù. ¸¹Àº ½Ã½ºÅÛ¿¡´Â /etc/rc.localÆÄÀÏÀ̳ª /etc/rc.d/rc.localÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ´Ù¸¥ ½Ã½ºÅÛ¿¡¼´Â rc.dµð·ºÅ丮°¡ »ç¿ëµË´Ï´Ù. ¹«¾ùÀ» ½ÇÇà ÇÑ´Ù°í ÇØµµ, ¼¹ö´Â PostgreSQL»ç¿ëÀÚ°èÁ¤À¸·Î ±âµ¿½ÃŰÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ·çÆ®¿©¼´Â ¾ÈµÇ°í , ´Ù¸¥ »ç¿ëÀÚ¶óµµ ¾µ ¸¸ÇÏÁö ¾Ê½À´Ï´Ù. µû¶ó¼, su -c '...' postgres¸¦ »ç¿ëÇØ ¸í·ÉÀ» ½ÇÇàÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
su -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog' postgres
ÇÑÃþ ´õ ¸î °¡ÁöÀÇ ¿î¿µ½Ã½ºÅÛ °íÀ¯ÀÇ Á¦¾ÈÀ» µì´Ï´Ù (¿©±â¿¡¼´Â ÀϹÝÀûÀÎ °ªÀ¸·Î ¼³¸íÇϰí Àֱ⠶§¹®¿¡, °¢ Ç׸ñ¿¡ ´ëÇØ ÀûÀýÇÑ ¼³Ä¡ µð·ºÅ丮¿Í »ç¿ëÀÚ¸í¿¡ ¿Å°Ü³õ¾Æ Àоî ÁÖ¼¼¿ä).
FreeBSD¿¡¼´Â, PostgreSQL·Î ¹èÆ÷µÇ´Â ¼Ò½º¾È¿¡ ÀÖ´Â contrib/start-scripts/freebsdÆÄÀÏÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
OpenBSD¿¡¼´Â, ÀÌÇÏÀÇ ¸î Áٱ⸦ /etc/rc.localÆÄÀÏ¿¡ Ãß°¡ÇØ ÁÖ¼¼¿ä.
if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; then
su - -c '/usr/local/pgsql/bin/pg_ctl start -l /var/postgresql/log -s' postgres
echo -n ' postgresql'
fi
/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data
(À»)¸¦ /etc/rc.d/rc.local¿¡ Ãß°¡ÇØ ÁÖ¼¼¿ä. ¶Ç´Â, PostgreSQL·Î ¹èÆ÷µÇ´Â ¼Ò½º¾È¿¡ ÀÖ´Â contrib/start-scripts/linuxÆÄÀÏÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
NetBSD¿¡¼´Â, FreeBSD³ª Linux°¡ ÁÁ¾ÆÇÏ´Â ÆíÀÇ ±âµ¿ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.
Solaris¿¡¼´Â, /etc/init.d/postgresql¶ó´Â ÆÄÀÏÀ» ÀÛ¼ºÇØ, °Å±â¿¡ ÀÌÇÏÀÇ 1ÇàÀ» ±â¼úÇØ ÁÖ¼¼¿ä.
su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"
±×¸®°í, /etc/rc3.dÀÌÇÏ¿¡ S99postgresql·Î¼ ±× ÆÄÀÏ¿¡ ´ëÇÑ ±âÈ£ ¿¬°áÀ» ÀÛ¼ºÇØ ÁÖ¼¼¿ä.
¼¹ö°¡ ½ÇÇàÇϰí ÀÖ´Â µ¿¾ÈÀº, ±× PID´Â µ¥ÀÌÅÍ µð·ºÅ丮 ¾ÈÀÇ postmaster.pidÆÄÀÏ¿¡ ±â¼úµÇ°í ÀÖ½À´Ï´Ù. À̰ÍÀº °°Àº µ¥ÀÌÅÍ µð·ºÅ丮¿¡¼ º¹¼öÀÇ ¼¹ö ÀνºÅϽº°¡ ½ÇÇàµÇ´Â °ÍÀ» ¹æÁöÇϰí, ¶Ç, ¼¹öÀÇ Á¾·á¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼¹öÀÇ ±âµ¿ÀÌ ½ÇÆÐÇÏ´Â ÀÌÀ¯·Î¼ ´ëÇ¥ÀûÀÎ °ÍÀÌ ¸î °¡Áö°¡ ÀÖ½À´Ï´Ù. ¼¹öÀÇ ·Î±× ÆÄÀÏÀ» üũÇÏ´ÂÁö, (Ç¥ÁØ Ãâ·ÂÀ̳ª Ç¥ÁØ ¿¡·¯¸¦ ¸®µð·ºÆ®ÇÏÁö ¾Ê°í) ¼öµ¿À¸·Î ±âµ¿ÇØ, ¾î¶°ÇÑ ¿¡·¯ ¸Þ¼¼Áö°¡ ³ª¿Í ÀÖ´ÂÁö È®ÀÎÇØ ÁÖ¼¼¿ä. ÀÌÇÏ¿¡, ÀÚÁÖ ¹ß»ýÇÏ´Â ¿¡·¯ ¸Þ¼¼ÁöÀÇ ¸î°¡Áö¸¦ º¸´Ù »ó¼¼ÇÏ°Ô ¼³¸íÇÕ´Ï´Ù.
LOG: could not bind IPv4 socket: Address already in use HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. FATAL: could not create TCP/IP listen socket
À̰ÍÀº ´ëºÎºÐÀÇ °æ¿ì ¸Þ¼¼Áö°¡ ³ªÅ¸³»´Â ±×´ë·ÎÀÇ ÀǹÌÀÔ´Ï´Ù. ÀÌ¹Ì ¼¹ö°¡ ¿òÁ÷À̰í ÀÖ´Â Æ÷Æ®·Î ´Ù¸¥ postmaster¸¦ ±âµ¿ÇÏ·Á°í ÇÑ °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ±×·¯³ª, Ä¿³Ú ¿¡·¯ ¸Þ¼¼Áö°¡ Address already in use³ª °Å±â¿¡ À¯»çÇÑ °ÍÀÌ ¾Æ´Ñ °æ¿ì´Â, ´Ù¸¥ ¹®Á¦ÀÇ °¡´É¼ºµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ¿¹¾à ³¡³ Æ÷Æ® ¹øÈ£·Î ¼¹ö¸¦ ±âµ¿ÇÏ·Á°í ÇÏ¸é ¾Æ·¡¿Í °°Àº ¸Þ¼¼Áö°¡ ³ª¿ÃÁöµµ ¸ð¸¨´Ï´Ù.
$ postgres -p 666 LOG: could not bind IPv4 socket: Permission denied HINT: Is another postmaster already running on port 666? If not, wait a few seconds and retry. FATAL: could not create TCP/IP listen socket
´ÙÀ½°ú °°Àº ¸Þ¼¼Áö°¡ Ç¥½ÃµÇ¾úÀ» °æ¿ì,
FATAL: could not create shared memory segment: Invalid argument DETAIL: Failed system call was shmget(key=5440001, size=4011376640, 03600).
À̰ÍÀº, ¾Æ¸¶ Ä¿³Ú¿¡ ÀÇÇÑ °øÀ¯ ¸Þ¸ð¸®ÀÇ »çÀÌÁîÀÇ »óÇÑÀÌ PostgreSQL°¡ ¸¸µé·Á Çϰí ÀÖ´Â ÀÛ¾÷ ¿µ¿ªº¸´Ù ÀÛÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù (ÀÌ ¿¹¿¡¼´Â 4011376640¹ÙÀÌÆ®ÀÔ´Ï´Ù). ¶Ç´Â, System V¹æ½ÄÀÇ °øÀ¯ ¸Þ¸ð ¸®»ç Æ÷Æ®°¡ Ä¿³Ú¿¡ ÀüÇô ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ» °¡´É¼ºµµ ÀÖ½À´Ï´Ù. ÀϽÃÀûÀÎ ¹æ¹ýÀ¸·Î¼(shared_buffers¸¦ »ç¿ëÇØ) ¼¹ö¸¦ Åë»óº¸´Ù ÀûÀº ¹öÆÛ¼ö·Î ±âµ¿ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±×·¯³ª ÃÖÁ¾ÀûÀ¸·Î´Â, Ä¿³ÚÀ» Àç¼³Á¤ÇØ, »ç¿ë °¡´ÉÇÑ °øÀ¯ ¸Þ¸ð ¸®»çÀÌÁ ´Ã¸®´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù. ÀÌ ¸Þ¼¼Áö´Â, °°Àº ¸Ó½Å»ó¿¡¼ º¹¼öÀÇ ¼¹ö¸¦ ±âµ¿ÇÏ·Á°í ÇßÀ» ¶§¿¡, ¿ä±¸µÈ ¿µ¿ªÀÇ ÇÕ°è°¡ Ä¿³ÚÀÇ »óÇÑÀ» ³Ñ¾úÀ» °æ¿ì¿¡µµ Ç¥½ÃµË´Ï´Ù.
¾Æ·¡¿Í °°Àº ¿¡·¯´Â µð½ºÅ©ÀÇ ºó ¿ë·®ÀÌ ¾ø¾îÁ³´Ù°í ÇÏ´Â °ÍÀ» ³ªÅ¸³»°í ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù .
FATAL: could not create semaphores: No space left on device DETAIL: Failed system call was semget(5440126, 17, 03600).
À̰ÍÀº Ä¿³ÚÀÇ System VsemaphoreÀÇ »óÇÑÀÌ, PostgreSQL°¡ ÀÛ¼ºÇÏ·Á´Â ¼öº¸´Ù ÀÛ´Ù´Â °ÍÀ» ÀǹÌÇϰí ÀÖ½À´Ï´Ù. »ó±â¿Í °°ÀÌ, Çã°¡µÇ´Â Á¢¼ÓÀÇ ¼ö¸¦ ÁÙ¿©(max_connections¸¦ »ç¿ëÇØ) ¼¹ö¸¦ ±âµ¿½ÃŰ´Â °ÍÀ¸·Î ¹®Á¦´Â ȸÇÇÇÒ ¼ö ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù¸¸, ÃÖÁ¾ÀûÀ¸·Î´Â Ä¿³ÚÀÇ ¼³Á¤À» ¹Ù²Ù¾î semaphoreÀÇ »óÇÑÀ» ´Ã¸®´Â °ÍÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.
"illegal system call"¶ó°í ÇÏ´Â ¿¡·¯°¡ Ç¥½ÃµÇ¾úÀ» °æ¿ì´Â, »ç¿ëÇϰí ÀÖ´Â Ä¿³Ú¿¡¼´Â °øÀ¯ ¸Þ¸ð¸®³ª semaphore°¡ ÀüÇô Áö¿øµÇÁö ¾ÊÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±× °æ¿ì, ÀÌ·¯ÇÑ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Ä¿³ÚÀ» ´Ù½Ã ¼³Á¤ÇÏ´Â °ÍÀÌ À¯ÀÏÇÑ ¼±ÅûçÇ×ÀÌ µË´Ï´Ù.
System V IPC¼³ºñÀÇ ¼³Á¤¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº Section 16.4.1À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ ÀϾ ¼ö ÀÖ´Â ¿¡·¯ »óÅ´ ±ØÈ÷ ´Ù¾çÇØ, ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÁ¸ÇÕ´Ï´Ù. ±× ÁßÀÇ ¸î°³´Â ¼¹ö°¡ ±âµ¿µÈ ¹æ¹ý°ú Á÷Á¢ °ü°èÇÒÁöµµ ¸ð¸¨´Ï´Ù. ÀÌÇÏ·Î ¼³¸íÇÏ´Â ÀÌ¿Ü »óÅ¿¡ ´ëÇØ¼´Â °¢°¢ÀÇ Å¬¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀÇ ÀڷḦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
psql: could not connect to server: Connection refused
Is the server running on host "server.joe.com" and accepting
TCP/IP connections on port 5432?
À̰ÍÀº ÀϹÝÀûÀÎ "Á¢¼ÓÇÏ´Â ¼¹ö¸¦ ã¾Æ³¾ ¼ö ¾ø´Ù"´Â ½ÇÆÐÀÔ´Ï´Ù. TCP/IPÅë½ÅÀ» ½ÃµµÇßÀ» ¶§¿¡ »ó±â¿Í °°ÀÌ Ç¥½ÃµË´Ï´Ù. ÀÚÁÖ ÀÖ´Â ½Ç¼ö´Â ¼¹ö¿¡ TCP/IP¸¦ Çã°¡ÇÏ´Â ¼³Á¤À» Àذí ÀÖ´Â °ÍÀÔ´Ï´Ù.
´ë½Å¿¡, ·ÎÄÃÀÇ ¼¹ö¿¡ Unix ¼ÒÄÏ Åë½ÅÀ» ½ÃµµÇÏ¸é ¾Æ·¡¿Í °°Àº Ç¥½Ã°¡ ³ª¿É´Ï´Ù.
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
¸¶Áö¸· ÇàÀº, Ŭ¶óÀÌ¾ðÆ®°¡ ¿Ã¹Ù¸¥ °÷¿¡ Á¢¼ÓÇÏ·Á°í Çϰí ÀÖ´Â °ÍÀ» ½ÇÁõÇϴµ¥ µµ¿òÀÌ µË´Ï´Ù. ¸¸¾à °Å±â¿¡ ¿òÁ÷À̰í ÀÖ´Â ¼¹ö°¡ ¾ø´Â °æ¿ì, ÀüÇüÀûÀÎ Ä¿³Ú ¿¡·¯ ¸Þ¼¼Áö´Â, Ç¥½ÃµÇ°í ÀÖµµ·Ï Connection refused ȤÀº No such file or directory°¡ µË´Ï´Ù (ÀÌ °æ¿ìÀÇ Connection refused´Â ¼¹ö°¡ Á¢¼Ó ¿ä±¸¸¦ Á¢¼ö °ÅºÎÇÑ °ÍÀÌ ¾Æ´Ñ °ÍÀ» ÀÌÇØÇØ µÎ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ¸¸¾à ±×·¨´ø °æ¿ì´Â Section 20.3À¸·Î ³ªÅ¸³ª´Â °Í°ú °°Àº ´Ù¸¥ ¸Þ¼¼Áö°¡ Ç¥½ÃµË´Ï´Ù). Connection timed out°°Àº ´Ù¸¥ ¸Þ¼¼Áö´Â, ¿¹¸¦ µé¸é ³×Æ®¿öÅ© Á¢¼ÓÀÇ °á¿©¿Í °°Àº Á» ´õ ±Ùº»ÀûÀÎ ¹®Á¦¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.