๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

“autovacuum ์ž‘์—…์ž๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜์ „์— ์‹œ์ž‘๋˜์–ด ์ค‘์ง€๋จ” ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ PostgreSQL์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด
๊ฐ‘์ž๊ธฐ DB ์ ‘์†์ด ๋˜์ง€ ์•Š๊ณ ,
๋กœ๊ทธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : autovacuum ์ž‘์—…์ž๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜์ „์— ์‹œ์ž‘๋˜์–ด ์ค‘์ง€๋จ

DBeaver๋‚˜ Spring Boot, ํ˜น์€ psql์—์„œ๋„
์—ฐ๊ฒฐ์ด ์•ˆ ๋˜๋ฉฐ ์„œ๋น„์Šค๊ฐ€ ๋ฉˆ์ถฐ๋ฒ„๋ฆฌ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.


๋ฌธ์ œ ํ˜„์ƒ ์š”์•ฝ

๋‹ค์Œ ์ฆ์ƒ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค:

  • DBeaver์—์„œ “Connection timed out”
  • Spring Boot ์ฝ˜์†” ๋กœ๊ทธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋‚˜ํƒ€๋‚จ
Failed to obtain JDBC Connection

 


์›์ธ ๋ถ„์„

์ด ๋ฌธ์ œ๋Š” PostgreSQL ๋‚ด๋ถ€์˜ autovacuum ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ต์ฐฉ ์ƒํƒœ์— ๋น ์กŒ์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
autovacuum์€ ๋ถˆํ•„์š”ํ•œ ๋ ˆ์ฝ”๋“œ ์ •๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์ธ๋ฐ,
์‹œ์Šคํ…œ์ด ์ค‘๊ฐ„์— ์ ˆ์ „/๊ฐ•์ œ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜
๋””์Šคํฌ I/O ์˜ค๋ฅ˜, ์žฅ์‹œ๊ฐ„ ๋ฝ(lock)์ด ๊ฑธ๋ฆฌ๋ฉด ๋ฉˆ์ถฐ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ ๊ฒฐ๊ณผ:

  • PostgreSQL ํ”„๋กœ์„ธ์Šค(postgres.exe)๊ฐ€ ์™„์ „ํžˆ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ณ  ๋‚จ์Œ
  • postmaster.pid ํŒŒ์ผ์ด ์ž ๊ธˆ ์ƒํƒœ๋กœ ๋‚จ์Œ
  • ์ƒˆ๋กœ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๊ฒŒ ๋จ

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์€ Windows ์žฌ๋ถ€ํŒ…์ž…๋‹ˆ๋‹ค.

PostgreSQL์€ ์„œ๋น„์Šค ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
๋‹จ์ˆœ ์žฌ๋ถ€ํŒ…๋งŒ์œผ๋กœ๋„ autovacuum ๊ต์ฐฉ๊ณผ PID ๋ฝ์ด ํ•ด์ œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์žฌ๋ถ€ํŒ… ํ›„, PostgreSQL์ด ์ •์ƒ์ ์œผ๋กœ ์‹œ์ž‘๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
services.msc → postgresql-x64-17 → ์ƒํƒœ๊ฐ€ “์‹คํ–‰ ์ค‘”์ด๋ฉด ์ •์ƒ์ž…๋‹ˆ๋‹ค.


๊ทธ๋ž˜๋„ ์•ˆ๋  ๊ฒฝ์šฐ

(1) PostgreSQL ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ข…๋ฃŒ

๊ด€๋ฆฌ์ž CMD(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ) ์‹คํ–‰ ํ›„:

taskkill /F /IM postgres.exe

(2) postmaster.pid ํŒŒ์ผ ์‚ญ์ œ

PostgreSQL์˜ ์‹คํ–‰ ์ž ๊ธˆ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ ๊ฒฝ๋กœ์—์„œ postmaster.pid ํŒŒ์ผ์„ ์ฐพ์•„ ์‚ญ์ œํ•˜์„ธ์š”:

C:\Program Files\PostgreSQL\๋ฒ„์ „\data\postmaster.pid
ํ•ด๋‹น ํŒŒ์ผ์€ PostgreSQL์ด "์ด๋ฏธ ์‹คํ–‰ ์ค‘"์ด๋ผ๊ณ  ์ฐฉ๊ฐํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์›์ธ์ž…๋‹ˆ๋‹ค.

 

(3) PostgreSQL ์„œ๋น„์Šค ์žฌ์‹œ์ž‘

net start postgresql-x64-17

๋˜๋Š”
services.msc → “PostgreSQL” → ์‹œ์ž‘(Start)


์ด ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ autovacuum ํ”„๋กœ์„ธ์Šค ๊ต์ฐฉ + PID ํŒŒ์ผ ์ž ๊ธˆ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋ฉฐ,
๋ฐ์ดํ„ฐ ์†์ƒ๋ณด๋‹ค๋Š” ์„œ๋น„์Šค ๋ฝ(lock) ์ด ์›์ธ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

โœ… ์žฌ๋ถ€ํŒ…์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ ,
โœ… ๊ทธ๋ž˜๋„ ์•ˆ ๋˜๋ฉด PID ์‚ญ์ œ ๋ฐ ์žฌ์„ค์น˜๋กœ ์™„์ „ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 
๋ฐ˜์‘ํ˜•