Oracle에서 SCN은 System Change Number로서, Database의 commit된 version을 나타내는 database 구조라고 볼 수 있다.
Transactiion이 commit되면 그 transaction은 transaction을 구분지어주는 SCN을 부여 받는다.
database내에 commit이 수행 될 때마다 새로운 값이 생성되며, 항상 증가만 하고 감소하지는 않는다.
일반적으로 transaction이 commit을 수행 할 때마다 1씩 증가하며, 이렇게 commit시 scn이 부여되는 되는 것을, 이후 그 scn을 사용되는 것과 구별하여 commit scn 이라고 한다. 이 scn은 concurrency control이나 recovery시에 이용 된다.
v$log나 v$log_history등에서 ChANGE#을 컬럼 이름으로 포함하는 것은 대부분이 scn을 나타내는 것 이다.(분산 환경이나 OPS에서는 다른 instance와 맞추기 위해 값이 연속적이 않게 크게 증가될 수 있다.)
-- Quiesce State는 non-DBA transaction 및 질의, -- PL/SQL 처리가 시작되지 못하게 한다. SQL> ALTER SYSTEM QUIESCE; SQL> SELECT CHECKPOINT_CHANGE# FROM V$DATABASE; CHECKPOINT_CHANGE# ------------------ 443582 -- quiesce 상태에서 해제 SQL> ALTER SYSTEM UNQUIESCE; SQL> ALTER SYSTEM SWITCH LOGFILE;
- 강좌 URL : http://www.gurubee.net/lecture/1875
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.