23/02/08 [Database]

์›ฐ์น˜์Šคยท2023๋…„ 2์›” 8์ผ
0

๐Ÿ“Œ 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 ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐœ์ƒ๋˜๋ฉด์„œ ํ•ด๊ฒฐ๋จ.

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