๐Ÿ–ฅ๏ธ ๋ฐ์ดํ„ฐ ์ถฉ๋Œ(2023-02-08)

๋ฆฌ์•ˆ๐Ÿคยท2023๋…„ 2์›” 8์ผ

[Data ์ถฉ๋Œ = Session ์ถฉ๋Œ = Lock ์ถฉ๋Œ]

1. Lock
- ๋ณ€๊ฒฝ ์ž‘์—… ๋ฐœ์ƒ์‹œ DBMS๋Š” ๊ด€๋ จ ํ–‰ ๋‹จ์œ„๋กœ Lock์„ ๊ตฌํ˜„ํ•˜๊ณ  ์ž‘์—…์„ ์ง„ํ–‰ํ•จ.
- Lock ํŠธ๋žœ์žญ์…˜ ์ง„ํ–‰ ์ค‘์—๋Š” ์œ ์ง€๋˜๊ณ , ํŠธ๋žœ์žญ์…˜ ์ข…๋ฃŒ ์‹œ ํ•ด์ œ๋จ.
- Lock์ด ๊ตฌํ˜„๋œ ๊ณณ์— ์ž‘์—…์ด ์š”์ฒญ๋˜๋Š” ๊ฒฝ์šฐ ํ๋ผ๊ณ  ํ•˜๋Š” ๋Œ€๊ธฐ๊ณต๊ฐ„์—์„œ ๊ธฐ๋‹ค๋ฆผ

2. Lock ์ถฉ๋Œ
- Waiting์ด ๊ธธ์–ด์ง€๋Š” ๊ฒฝ์šฐ Lock ์ถฉ๋Œ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ํ•ด๊ฒฐ๋˜์•ผํ•จ.

3. Lock ์ถฉ๋Œ์˜ ์›์ธ
- ํŠธ๋žœ์žญ์…˜์„ ๊ธธ๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ
- ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ์ž‘์—…์ด ๋‚จ์•„์žˆ๋Š” ๊ฒฝ์šฐ

4. Lock ์ถฉ๋Œ ๊ฐ์ง€ ๋ฐฉ๋ฒ•(๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐฉ๋ฒ•)
- v$session : DB์— ์ ‘์†๋œ ์„ธ์…˜ ์ •๋ณด์™€ Lock ์ถฉ๋Œ ์ •๋ณด๋ฅผ ๋ชจ๋‹ˆํ„ฐ์ผํ•  ์ˆ˜ ์žˆ๋Š” DB์„ธ์…˜

SQL> select username, sid, serial#, blocking_session
ย ย ย ย ย ย ย ย from v$session
ย ย ย ย ย ย ย ย where username is not null;

5. Session Kill ์‹œํ‚ค๊ธฐ => DBA๊ถŒํ•œ ํ•„์š”(sys์‚ฌ์šฉ์ž)

SQL> alter systeml kill session 'SID, Serial#' immediate;

6. Lock ์ถฉ๋Œ์˜ ํŠน์ด ์ผ€์ด์Šค : Deadlock(๊ต์ฐฉ์ƒํƒœ)
- ๋‘ ์„ธ์…˜์ด ๊ฐ์ž์˜ ์ž์›์„ ์„ ์ ํ•˜ ์ƒํƒœ์—์„œ ์ƒ๋Œ€๋ฐฉ์˜ ์ž์›์„ ์„œ๋กœ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ
- Deadlock์„ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ DBMS์— ์˜ํ•ด์„œ ์ž๋™ ๊ฐ์ง€๋˜๊ณ  ํ•ด๊ฒฐ๋จ.
- ํ•œ์ชฝ ์„ธ์…˜์œผ๋กœ Deadlock ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐœ์ƒ๋˜๋ฉด์„œ ํ•ด๊ฒฐ๋จ.

0๊ฐœ์˜ ๋Œ“๊ธ€