IT479 Restricted Session 제한된 모드라고도 불리는 Restricted Session은 Restriced Session 권한이 없는 다른 유저의 접속을 제한하여, 데이터베이스 관리자가 작업을 용이하게 할 수 있게 해주는 DDL 명령어입니다. 사용방법은 startup 시 startup restrict 명령어로 시작하는 방법과 Open된 상태에서 alter system enable restricted session 명령어로 변경하는 방법 두가지가 있습니다. 확인은 v$instance 뷰의 logins컬럼으로 확인이 가능합니다. ALLOWED는 일반적인 상태이고 RESTRICTED는 제한된 모드입니다. 1.startup 시 SYS@ysbae> startup restrict ORACLE instance started. Total Syst.. 2020. 8. 22. Offset , Limit (페이징 처리) 12c 이전의 Oracle은 Top-N쿼리를 구현하기 위해 ROWNUM을 사용해 왔습니다. 하지만 이는 쿼리를 View로 감싸야 하고 순서보장을 원한시에는 한번더 View로 감싸 쿼리가 복잡해지는 단점이 있었습니다. Oracle 12c부터 Row limiting 절을 이용하여 기존에 사용하던 방식을 간단하게 풀어 Top-N 쿼리를 구현할 수 있게 되었습니다. 구문의 이해 [ OFFSET offset { ROW | ROWS } ] [ FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT } ] { ROW | ROWS } { ONLY | WITH TIES } ] OFFSET 건너뛸 행의 수를 지정, 즉 시작 행을 정함. 생략 시 offset 값은 0 FETCH 반환.. 2020. 8. 19. Shared lock과 Execlusive lock Lock? 같은 데이터를 동시에 접근해서 조회 및 수정을 해야하는 DB환경에서 일관성과 무결성 유지를 위해서는 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화(Serialization)장치가 필요하게 됩니다. 즉, 같은 데이터를 동시에 접근했을 때 한명만 사용할 수 있게 해야한다는 것입니다. 그때 다른 사용자는 해당 데이터에 lock이 걸린 상태로 대기해야 합니다. Shared Lock? 데이터를 읽고자 할 때 사용됩니다. Read lock이라고도 불리며 어떤 트랜잭션에서 데이터를 읽고자 할 때 다른 Shared lock은 허용이 되지만 Execlusice lock은 불가능합니다. 리소스를 다른 사용자가 동시에 읽을 수 있게 하되 변경은 불가능하게 됩니다. 즉, 어떤 사용자가 읽고 있는 레코드 혹은 테이.. 2020. 8. 17. 트랜잭션 격리 수준(isolation level) 제가 관리하는 사이트에서 일어난 이슈였던 격리 수준에 대해서 정리하는 글을 올려보려고 합니다. ANSI/ISO SQL 표준은 4개 레벨의 트랜잭션 고립성(isolation level)을 정의하고 있습니다. 레벨에 따라 같은 트랜잭션 시나리오로 4개의 다른 결과를 받게 됩니다. 트랜잭션 고립성 수준에 따라 세개의 현상이 발생하게 됩니다. 세개의 현상은 아래에서 설명하겠습니다. - Dirty read : 커밋되지 않거나 아직 더티버퍼에 있는 데이터를 읽을 수 있는것을 말합니다. 예를들어 변경 후 아직 커밋되지 않은 값을 읽는데 변경을 가한 트랜잭션이 최종적으로 롤백된다면 그 값을 읽은 트랜잭션은 일관성이 없는 상태가 됩니다. - Non repeatable read : 한 트랜잭션 내에서 같은 쿼리를 두번 수.. 2020. 8. 17. 이전 1 ··· 90 91 92 93 94 95 96 ··· 120 다음