๋ชฉ์ฐจ
PostGreSQL ํ์ฌ ์คํ์ค์ธ SQL ์กฐํ, ์ข ๋ฃ
ํ์ฌ ์คํ์ค์ธ SQL ์กฐํ ์ฟผ๋ฆฌ๐
select *
from pg_stat_activity
;
์ปฌ๋ผ ์ ๋ณด
lock ๊ฑธ๋ฆฐ ํ ์ด๋ธ ์กฐํ๐
SELECT t.relname,
l.locktype,
page,
virtualtransaction,
pid,
mode,
granted
FROM pg_locks l, pg_stat_all_tables t
WHERE l.relation = t.relid ORDER BY relation asc
;
ํ์ฌ ํ ์ด๋ธ์ lock์ ํ์ธ ํ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ถ๋ถ์ lock ํ ์ด๋ธ์ ๊ด์ฐฎ์ผ๋
RowExclusiveLock ์ด ๊ฒ์๋๋ค๋ฉด ํด๋น ํ ์ด๋ธ์ ์ ๊ทผ์ด ์ง์ฐ๋์ด ๋ค๋ฅธ ์ฟผ๋ฆฌ์๋ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฏ๋ก ๋ฐ๋์ ์ก๊ณ ์๋ ํธ๋์ญ์ ์ด๋ ์๋ฒ ์ํ ๋ฑ์ ์ ๊ฒํ์ฌ lock์ ํด์ ํด ์ฃผ๋ ์์ ์ด ํ์ํ๋ค.
ํด๋น ์์ ์ข ๋ฃ๐
pg_cancel_backend(int pid)
SELECT pg_cancel_backend(int pid);
-- ex pg_stat_activity์์ ์กฐํํ pid๊ฐ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ผ๋ก ๋ฃ์ด์ค
SELECT pg_cancel_backend(20020);
return ๊ฐ : true or false
pg_cancel_backend๋ ํด๋น pid๋ง ์ค์ง์ํด, ์ด๋ ๊ฒ ํด์ ์ข ๋ฃ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์์
์ด ๊ฒฝ์ฐ pg_terminate_backen๋ก ์ค์ง์ํจ ํ ๋ค์ pg_cancel_backend()๋ฅผ ๋ค์ ์คํ
pg_terminate_backen(int pid)๐
select pg_terminate_backen(int pid);
-- ex) pg_stat_activity์์ ์กฐํํ pid๊ฐ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ผ๋ก ๋ฃ์ด์ค
select pg_terminate_backen(20020);
pg_terminate_backend๋ ํด๋น PID์ ์ฐ๊ณ๋ ๋ชจ๋ ์์ ์ฟผ๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ์ํจ๋ค.
return ๊ฐ : true or false
์ฐธ์กฐ : Kwomy's DB World๋ ๋ธ๋ก๊ทธ, 2021.06.30, https://kwomy.tistory.com/80
[PostgreSQL] ํ ์ด๋ธ lock ์กฐํ ๋ฐ killํ๊ธฐ
ํ์ฌ ์ํ์ค์ธ SQL ์ ์ฒด ์กฐํ select datname, pid, usename, application_name, client_addr, client_port, backend_start, query_start, wait_event_type, state, backend_xmin query from pg_stat_activity; ์..
kwomy.tistory.com

'IT > DataBase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle] system ๊ณ์ ๋น๋ฐ๋ฒํธ ๋ง๋ฃ/๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ(feat. ORA-00988) (0) | 2022.11.28 |
---|---|
[SQL] Oracle SELECT query ์คํ ์์ (1) | 2022.11.28 |
[Oracle] oracle ์ฟผ๋ฆฌ ๋ก๊ทธ ๋ณด๊ธฐ (1) | 2022.11.28 |
[PostGreSQL] ํ ์ด๋ธ/ํ ์ด๋ธ ๋ชฉ๋ก ์กฐํ (0) | 2022.11.28 |
[Cubrid]ํ ์ด๋ธ ์กฐ์ธ - ์ปฌ๋ผ update (0) | 2022.11.28 |
๋๊ธ