
Postgresql Lock์ด๋? (์กฐํ ๋ฐ kill, Dead lock)
1. Lock ํ์ธ๋ฐฉ๋ฒ SELECT PSAT.RELNAME, PL.LOCKTYPE, PL.PID, PL.MODE, PL.GRANTED FROM PG_LOCKS PL, PG_STAT_ALL_TABLES PSAT WHERE PL.RELATION = PSAT.RELID 2. Lock Kill ๋ฐฉ๋ฒ SELECT PG_CANCEL_BACKEND([PID]) SELECT PG_TERMINATE_BACKEND([PID]) Lock ๋ฆฌ์คํธ์์ ์กฐํ๋ PID๋ฅผ ๋ฃ๊ณ cancel, ํน์ terminate ์์ผ์ฃผ๋ฉด ๋๋ค. cancel์ ํด๋น ํ๋ก์ธ์ค๋ง์, terminate๋ ์์ ํ๋ก์ธ์ค๋ค๊น์ง ์ข ๋ฃ์ํจ๋ค. 3. Lock ์ด๋? (Postgresql) Postgresql์ ๋ค์ํ ์ข ๋ฅ์ lock ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋จ์์ ์ ์ด๋ ๊ฐ๋ฅํ์ง๋ง, ๋๋ถ๋ถ ๊ธฐ๋ณธ์ ์ธ SQL ์คํ ์ ์ ์ ํ ๋ฝ์ ์๋์คํ์์ผ ๊ด๋ จ ํ ์ด๋ธ์ ๋ฌด๊ฒฐ์ฑ ์ ์งํ๋ค. 3-1.ย ํ ์ด๋ธ ๋จ์ Lock ๋ค์ ๋ฝ ๋ค์ ๋ชจ๋ ํ ์ด๋ธ ๋จ์์ ๋ฝ์ด๋ฉฐ, ๋ช ์นญ๊ณผ ์๊ด์์ด ํ ์ด๋ธ ๋จ์๋ก ์ ์ฉ๋๋ค. ์๋ก ๋ค๋ฅธ ๋ฝ์ด ์ถฉ๋ํ์๋์ ์๊ด๊ด๊ณ์ ์ํด ๋๊ธฐ ์ํ๋ก ๋์ ํ๋ค. (ํ ์ด๋ธ ๋จ์ ๋ฝ์ ์ ํ์ ๋ฐ๋ผ ์๋ก ์ถฉ๋์ฌ๋ถ๊ฐ ๋ค๋ฆ) ํ ํ ์ด๋ธ์๋ 2๊ฐ์ ํธ๋์ญ์ ์ด ๋์์ ๋ฝ ์ ์ฉ ๋ ์ ์๋ค. (์๋ก ์ถฉ๋๋์ง ์๋ ๋ฝ์ ์ฌ๋ฌ ํธ๋์ญ์ ์ ๋์์ ์ ์ฉ๋ ์ ์๋ค.) ํน์ ๋ฝ์ self-conflicting ๋ ์ ์๋ค. (ex. access exclusive ๋ฝ์ ์ค์ฒฉ๋ถ๊ฐ access share ๋ฝ์ ์ฌ๋ฌ ํธ๋์ญ์ ์์ ๋ค์ค์ผ๋ก ์ ์ฉ๋ ์ ์๋ค.) ...