목록2018/04 (9)
정미나닷컴
DB에 대해 쥐뿔도 아는게 없던 시절에도 Lock이라는 단어는 많이 들어봤었다.애플리케이션에서 뭔가가 수정이 안되거나 저장이 안될 때면 늘 누군가 외쳤었으니깐. "락 걸린 것 같아!" 대학 시절 deadlock에 대해 배우면서 아래와 같은 그림도 뻔질나게 봤었다.근데 막상 "Lock의 종류나 원리에 대해 설명해봐라." 라고 하면 말문이 막히기 일쑤다.흠.. 대학교에선 들입다 외워서 시험보느라 바빴고회사에선 Lock을 1초라도 빨리 푸는데만 바빴다고 구차하게 변명해본다.그럼 이제부터 Lock에 대해 본격적으로 파헤쳐보자. 오라클이 제공하는 Lock에는 꽤 여러 종류가 있다.DML Lock, DDL Lock, Latch, 버퍼 Lock, 라이브러리 캐시 Lock/Pin 등등..대충 아는 것도 있고, 저건 뭐..
트랜잭션 수준 읽기 일관성 앞서 알아보았던 문장수준 읽기 일관성이 쿼리 시작 시점을 기준으로 삼았다면 트랜잭션 수준 읽기 일관성은 트랜잭션이 시작된 시점을 기준으로 일관성 있게 데이터를 읽어들이는 것을 말한다. ☑
무슨 일이 있어도 내력이 있으면 버티는거야. 내 친구 중에 정말 똑똑한 놈이 하나 있었는데, 이 동네에서 정말 큰 인물 하나 나오겠다 싶었는데 근데 그 놈이 대학 졸업하고 얼마 안 있다가 뜬금없이 머리 깎고 절로 들어가버렸어. 그때 걔네 부모님들 앓아 누우시고 정말 동네 전체가 충격이었는데 걔가 떠나면서 한 말이 있어. 아무것도 갖지 않은 인간이 돼보겠다고.. 다들 평생을 뭘 가져보겠다고 고생고생하면서 나는 어떤 인간이다 라는걸 보여주기 위해서 아둥바둥 사는데 뭘 갖는건지도 모르겠고.. 어떻게 원하는 걸 갖는다고 해도 나를 안전하게 만들어준다고 생각했던 것들에, 나라고 생각했던 것들에 금이 가기 시작하면 못견디고.. 무너지고.. 나라고 생각했던 것들.. 나를 지탱하는 기둥인줄 알았던 것들이 사실은 내 진..
Snapshot too old, 말 그대로 Snapshot이 너무 오래됐다는 말이다.Snapshot이 뭔데?* Snapshot : Data Buffer Cache 블록에 갱신이 일어날 때 복사해 놓은 Copy본 (CR 블록)CR 블록이 뭔지 모르겠다면 ☑[Oracle] 오라클 다중 버전 읽기 일관성 모델 알아보기 그럼 오라클에서 이런 에러가 나는 이유에 대해 알아보도록 하자. Undo 실패- 데이터를 읽어 내려가다가 쿼리 SCN 이후에 변경된 블록을 만나 과거 시점으로 롤백한 'Read Consistent' 이미지를 얻으려고 하는데, Undo 블록이 다른 트랜잭션에 의해 이미 재사용 돼 필요한 Undo 정보를 얻을 수 없는 경우 (Undo 세그먼트가 너무 작을때)① SCN 123 시점에 1시간 쯤 걸리는..
오늘은 어디선가 들어본 적 있는 블록 클린아웃에 대해 알아보자.우선 cleanout은 '청소'라는 뜻이므로 『블록 청소』 뭔가 dirty 상태의 블록을 free 상태로 바꿔주는 행위같다는 느낌적인 느낌이 든다. 블록 클린아웃 (Block Cleanout)- 트랜잭션에 의해 설정된 로우 Lock을 해제하고 블록 헤더에 커밋 정보를 기록하는 오퍼레이션- 보통은 트랜잭션 커밋 후 블록 클린아웃까지 완료해야 완전한 커밋이라고 할 수 있지만 대량 갱신 작업 후에는 시간 관계상 커밋 정보를 트랜잭션 테이블에만 기록하고 빠르게 커밋을 완료, 나중에 해당 블록이 처음 액세스되는 시점에 블록 클린아웃을 함흠.. 커밋을 때리면 Redo Log Buffer의 정보를 Redo Log File에 기록한다 라고 알고 있는데 위 ..
지난 번에 Consistent 모드로 블록을 읽으면 읽기 일관성이 보장된다는 것을 알았다. ☑[Oracle] 오라클 다중 버전 읽기 일관성 모델 알아보기 이제 오라클에 존재하는 Consistent 모드 읽기와 Current 모드 읽기의 차이점에 대해 알아보도록 하자. Consistent 모드 읽기 - 쿼리 실행 시간에 상관없이 항상 쿼리가 시작된 시점의 데이터를 가져옴 [ SQL Trace ]call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.41 1.15 66 28..