database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 27497 게시물 읽기
No. 27497
트랜잭션에 대해서 궁금한점이 있습니다.
작성자
오라클
작성일
2006-08-06 16:42
조회수
1,307

현재 트랜잭션이 있습니다. commit는 안되어 있습니다.(활성트랜잭션)

이것을 shutdown immediate 로 내리면 롤백작업을 끝내고 디비 셧다운 시키고

다시 startup 하면 인스턴스 리크버리를 하지 않는걸로 알고 있습니다.

그리고 shutdown abort로 셧다운 시키면 롤백작업을 하지 않고 디비를 셧다운시키는

걸로 알고 있고 startup시 인스턴스 리커버리를 하는걸로 알고 있습니다.

질문 1. 만약 활성트랜잭션의 내용이 중요하지 않다면 shutdown immediate 가 더 좋나요?

아니면 shutdown abort가 더 좋나요??

질문 2. shutdown abort로 셧다운 시켰을 경우 startup시에 인스턴스 리커버리를 하고

디비를 오픈 한 다음 위에 있는 활성트랜잭션들을 롤백작업을 하나요?? 아니면

롤백작업을 하지 않나요??

select * from 테이블이름 ; 했을 경우 값이 나오는지??

질문 3. 인스턴스 리커버리라는게 뭔가요??

 

이 글에 대한 댓글이 총 1건 있습니다.

1. shutdown abort는 긴급한 상황이 아니면 쓰지 마세요.

중요한 트랜잭션이 아니면 immediate 써야합니다.

 

2. OPEN의 한과정으로써 SMON이 uncommitted 트랜잭션의 rollback을 수행합니다.

일관성이 맞게 되어야 open 상태로 됩니다.

 

3. 인스턴스 복구는 인스턴스의 갑작스런 종료로 인해서

(shutdown abort 또는 정전과 같은 이유 등)

commit 되었지만 데이터파일에는 쓰여지지 않은 경우나

commit 되지 않아서 rollback이 필요한 경우

두 트랜잭션의 경우들이 있을 때 발생합니다.

첫 번째 경우는 redo 로그에는 로그가 기록되어 있기 떄문에 이를 따라

트랜잭션 내용을 디스크에 반영합니다.

두 번째 경우는 redo 로그 파일을 뒤져서 트랜잭션 중에 commit 표시가 없는

트랜잭션을 찾아서 rollback 시킵니다.

이렇게 함으로써 DB는 일관성을 지켜지게 되죠.

김병두(kirio1)님이 2006-08-06 23:47에 작성한 댓글입니다.
이 댓글은 2006-08-06 23:54에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
27501퀄리 관련 질문입니다. [1]
dbtmdwn
2006-08-07
1350
27499TNS:리스너가 전용 서버 프로세스를 시작하는 데 실패했습니다 [1]
headfirst
2006-08-07
4015
27498좀 복잡한(?) 쿼리질문 입니다. [5]
이철
2006-08-07
1761
27497트랜잭션에 대해서 궁금한점이 있습니다. [1]
오라클
2006-08-06
1307
27496테이블 생성할 때 설정하는 값 [1]
송은정
2006-08-04
1215
27495undo recovery 문제 해결 요청!!!ㅡ,.ㅜ [1]
강민정
2006-08-04
1241
27494오라클의 버그인지...?? [1]
lenzing
2006-08-04
1027
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다