본문 바로가기

IT468

ORA-00838,ORA-47500 테스트서버를 재기동한 후 DB가 안올라와서 확인해보니 위와 같은 에러가 발생하였습니다. 기본적인 테스트용도로만 사용할꺼라 XE 버전을 사용하고 있었고, 서버재기동을 하면 자동적으로 DB기동을 시켜주는데.. 안되는 상황이었습니다. 이 에러를 해결하고 DB를 띄웠지만 XE버전에 대한 이해가 낮아 DB를 다시 재기동했을때 다른 에러가 발생하였습니다.. 에러명 ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1036M 증상 : DB down 상태에서 startup 시 no mount상태로 갈떄 spfile또는 pfile을 읽으면서 발생 원인 : MEMORY_TARGET에 설정된 메모리가 DB 기동하는데 필요한 메모리보다.. 2021. 1. 21.
ORA-04031 : unable to allocate 120 bytes of shared memory 원인 : 해당 에러는 Oracle DB에 설정된 메모리보다 더 많은 메모리를 할당하려고 할 때 발생하는 에러입니다. 저의 케이스의 경우에는 Stream pool Size와 관련된 메모리 할당에서 에러가 발생하였습니다. 아래는 alert log에 찍힌 에러 원본입니다. ORA-04031: unable to allocate 120 bytes of shared memory ("streams pool","unknown object","streams pool","kod objects") 조치 : DB 재기동. 해당 에러가 발생하면 SQL로 작업하는게 불가능해지기 때문에 DB재기동하여 메모리를 flush하여 다시 할당 하는방법 밖에 없습니다. 하지만 추후에 이런 에러를 발생하는 것을 방지하는 방법은 있습니다. 그것.. 2021. 1. 19.
InnoDB Locking InnoDB에서 사용하는 Lock Type에 대한 정리입니다. Shared and Exclusive Locks row-level의 lock에서 사용합니다. Shared lock(S)는 보유한 트랜잭션이 row를 읽기 위해서 허용해주는 Lock입니다. Exclusive lock(X)은 보유한 트랜잭션이 row를 update하거나 delete하게 허용해주는 Lock입니다. 만약, 트랜잭션 T1이 row r의 Shared Lock을 잡고 있다면, 트랜잭션 T2에 대한 row r의 lock은 다음과 같이 처리됩니다. - T2에 대한 Shared lock 요청 즉시 허용됩니다. 즉 T1과 T2 둘다 r의 Shared lock을 유지합니다. - T2에 대한 Exclusive lock 요청은 즉시 허용되지 않습니다... 2021. 1. 18.
InnoDB Undo Log Undo log는 단일 트랜잭션과 관련된 Undo log 레코드의 집합입니다. undo log 레코드에는 클러스터드 인덱스 레코드의 트랜잭션에 의한 제일 최근의 변경사항의 변경 전 데이터에 대한 정보를 포함하고 있습니다. 만약 다른 트랜잭션이 변경 전 데이터를 읽기를 원한다면 undo log 레코드에서 변경 전 데이터를 읽습니다. 롤백 세그먼트내에 포함된 undo log 세그먼트 내에 undo log가 존재합니다. 롤백 세그먼트는 undo 테이블스페이스와 global temporary 테이블스페이스 내에 있습니다. global temporary 테이블스페이스 내에 있는 undo log는 사용자 정의 임시 테이블의 데이터를 수정하는 트랜잭션에 사용됩니다. 이러한 unodo log는 crash recover.. 2021. 1. 16.