๐ Data์ถฉ๋ = Session์ถฉ๋ = Lock์ถฉ๋
1. Lock
- ๋ณ๊ฒฝ ์์
๋ฐ์ ์, DBMS๋ ๊ด๋ จ ํ ๋จ์๋ก Lock๋ฅผ ๊ตฌํํ๊ณ ์์
์ ์งํํจ.
- Lock ํธ๋์ญ์
์งํ์ค์๋ ์ ์ง๋๊ณ , ํธ๋์ญ์
์ข
๋ฃ์ ํด์ ๋จ.
- Lock์ด ๊ตฌํ๋ ๊ณณ์ ์์
์ด ์์ฒญ๋๋ ๊ฒฝ์ฐ ํ๋ผ๊ณ ํ๋ ๋๊ธฐ๊ณต๊ฐ์์ ๊ธฐ๋ค๋ฆผ
2. Lock ์ถฉ๋
- Waiting์ด ๊ธธ์ด์ง๋ ๊ฒฝ์ฐ Lock์ถฉ๋๋ก ๊ฐ์งํ๊ณ ํด๊ฒฐํด์ผํจ.
3. Lock ์ถฉ๋์ ์์ธ
- ํธ๋์ญ์
์ ๊ธธ๊ฒ ์งํํ๋ ๊ฒฝ์ฐ
- ์ปค๋ฐ๋์ง ์์ ์์
์ด ๋จ์์๋ ๊ฒฝ์ฐ
4. Lock ์ถฉ๋ ๊ฐ์ง ๋ฐฉ๋ฒ(๋ชจ๋ํฐ๋ง ๋ฐฉ๋ฒ) => DBA๊ถํํ์!(sys์ฌ์ฉ์)
- v$session : DB์ ์ ์๋ ์ธ์
์ ๋ณด๋ฅผ ๋ชจ๋ํฐ๋ง ํ ์ ์๋ DB์ฌ์
select username, sid, serial#, blocking_session
from v$session
where username is not null;
=> 243 : ๋ธ๋กํน์ ์์ธ์ ์ ๊ณตํ๊ณ ์๋ ๋ฒํธ
5. Session Kill ์ํค๊ธฐ => DBA๊ถํํ์!(sys์ฌ์ฉ์)
SQL> alter system kill session 'SID, Serial#' immediate
6. Lock ์ถฉ๋์ ํน์ด์ผ์ด์ค : Deadlock(๊ต์ฐฉ์ํ)
- ๋ ์ธ์
์ด ๊ฐ์์ ์์์ ์ ์ ํ ์ํ์์ ์๋๋ฐฉ์ ์์์ ์๋ก ์์ฒญํ๋ ๊ฒฝ์ฐ,
Deadlock์ ํน์ํ ๊ฒฝ์ฐ์ด๋ฏ๋ก DBMS์ ์ํด์ ์๋ ๊ฐ์ง๋๊ณ ํด๊ฒฐ๋จ.
- ํ์ชฝ ์ธ์
์ผ๋ก Deadlock ์ค๋ฅ ๋ฉ์์ง๊ฐ ์๋์ผ๋ก ๋ฐ์๋๋ฉด์ ํด๊ฒฐ๋จ.