"리두로그"의 두 판 사이의 차이
rlatpdbs2931 (토론 | 기여) |
잔글 |
||
(같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''리두로그'''<!--리두 로그-->(Redo Log)란 [[오라클]] [[RDBMS]]에서 일어나는 [[ | + | '''리두로그'''<!--리두 로그-->(Redo Log)란 [[오라클]] [[RDBMS]]에서 일어나는 [[트랜잭션]]에 대한 변경내역들을 기록하는 파일이다. 리두로그에 남겨진 기록을 이용하여 원래 상태로 복구할수 있으며 [[티베로]] [[데이터베이스]] 또한 동일한 기능이 지원된다.<ref>〈[https://blog.naver.com/dangtong76/140068296740 오라클 리두로그]〉, 《당통》, 2009-05-17 </ref> |
− | |||
== 개요 == | == 개요 == | ||
리두로그는 리두엔트리로 구성되어져있으며, 오라클 프로세스 [[LGWR]]에 의해 로그버퍼에 쓰여진 내용이 리두로그파일에 쓰여진다. 리두로그는 Online Redo와 Archived Redo 로 구성된다. <ref name="리드로그파일">〈[https://blog.naver.com/PostView.nhn?blogId=miss_stilla&logNo=90170009401&proxyReferer=https:%2F%2Fwww.google.com%2F Redo log 구성]〉, 《한잔디》, 2013-03-31 </ref> | 리두로그는 리두엔트리로 구성되어져있으며, 오라클 프로세스 [[LGWR]]에 의해 로그버퍼에 쓰여진 내용이 리두로그파일에 쓰여진다. 리두로그는 Online Redo와 Archived Redo 로 구성된다. <ref name="리드로그파일">〈[https://blog.naver.com/PostView.nhn?blogId=miss_stilla&logNo=90170009401&proxyReferer=https:%2F%2Fwww.google.com%2F Redo log 구성]〉, 《한잔디》, 2013-03-31 </ref> | ||
− | == | + | == 리두로그 == |
− | === | + | === 리두로그 목적 === |
<ref name="리드로그파일" /> | <ref name="리드로그파일" /> | ||
:{|class=wikitable width=1000 style="background-color:#ffffee" | :{|class=wikitable width=1000 style="background-color:#ffffee" | ||
24번째 줄: | 23번째 줄: | ||
|} | |} | ||
− | + | == 리두로그 파일(Redo Log File) == | |
− | == | ||
redo log 파일은 일정 공간을 할당해 놓고 재사용하는 파일이며, 온라인백업(Online backup 혹은 Hot Backup) 을 위해 Archive log 모드로 | redo log 파일은 일정 공간을 할당해 놓고 재사용하는 파일이며, 온라인백업(Online backup 혹은 Hot Backup) 을 위해 Archive log 모드로 | ||
데이터베이스를 운영하면 재사용되는 시점의 redo log 파일이 Archive log 파일로 복사된다.<ref>〈[https://kimazfactory.tistory.com/21 Redo log file]〉, 《김과장의 AZ팩토리》, 2018-10-17 </ref> | 데이터베이스를 운영하면 재사용되는 시점의 redo log 파일이 Archive log 파일로 복사된다.<ref>〈[https://kimazfactory.tistory.com/21 Redo log file]〉, 《김과장의 AZ팩토리》, 2018-10-17 </ref> | ||
− | === | + | === 리두로그 파일 구성 === |
* 리드로그 파일은 그룹과 멤버라는 개념으로 관리되며, 같은 그룹일 경우 멤버들은 같은내용을 담고 있기 때문에 하나의 멤버가 삭제되거나, 장애가 발생해도 다른 멤버가 존재 함으로 데이터가 보존된다. | * 리드로그 파일은 그룹과 멤버라는 개념으로 관리되며, 같은 그룹일 경우 멤버들은 같은내용을 담고 있기 때문에 하나의 멤버가 삭제되거나, 장애가 발생해도 다른 멤버가 존재 함으로 데이터가 보존된다. | ||
37번째 줄: | 35번째 줄: | ||
[[파일:리드로그파일.PNG|500픽셀|섬네일|가운데|Redo Log File 구성]] | [[파일:리드로그파일.PNG|500픽셀|섬네일|가운데|Redo Log File 구성]] | ||
− | === | + | === 리두로그 파일 상태 === |
<ref name="리드로그파일" /> | <ref name="리드로그파일" /> | ||
:{|class=wikitable width=900 style="background-color:#ffffee" | :{|class=wikitable width=900 style="background-color:#ffffee" | ||
55번째 줄: | 53번째 줄: | ||
|} | |} | ||
− | === | + | === 리두로그 파일 관리 === |
− | + | ① 그룹 생성하기 | |
SQL > alter database add logfile group 4 '주소'; <br> | SQL > alter database add logfile group 4 '주소'; <br> | ||
− | + | ② 멤버 추가하기 | |
SQL > alter database add logfile member '주소' to group 4; <br> | SQL > alter database add logfile member '주소' to group 4; <br> | ||
− | + | ③ 멤버 삭제하기 | |
SQL > alter database drop logfile member '주소'; <br> | SQL > alter database drop logfile member '주소'; <br> | ||
− | + | ④ 그룹 삭제하기 | |
SQL > alter database drop logfile group 4; <br> | SQL > alter database drop logfile group 4; <br> | ||
− | + | ⑤ 강제로 로그 스위치 발생시키기 | |
SQL > alter system switch logfile; (CURRENT → ACTIVE) <br> | SQL > alter system switch logfile; (CURRENT → ACTIVE) <br> | ||
− | + | ⑥ 강제로 체크포인트 발생시키기 | |
SQL > alter system checkpoint; (ACTIVE → INACTIVE) <br> | SQL > alter system checkpoint; (ACTIVE → INACTIVE) <br> | ||
− | + | ⑦ 파일위치 변경 및 파일이름 변경 | |
SQL > alter database rename file '주소' to '주소' <br> | SQL > alter database rename file '주소' to '주소' <br> | ||
− | + | ⑧ 상태 확인 | |
SQL > select * from v$log; | SQL > select * from v$log; | ||
SQL > select * from v$logfile; | SQL > select * from v$logfile; | ||
{{각주}} | {{각주}} | ||
− | |||
== 참고자료 == | == 참고자료 == | ||
84번째 줄: | 81번째 줄: | ||
== 같이 보기 == | == 같이 보기 == | ||
+ | * [[로그]] | ||
* [[오라클]] | * [[오라클]] | ||
− | * [[ | + | * [[트랜잭션]] |
* [[데이터베이스]] | * [[데이터베이스]] | ||
− | + | {{데이터|검토 필요}} | |
− | {{ |
2021년 8월 7일 (토) 03:10 기준 최신판
리두로그(Redo Log)란 오라클 RDBMS에서 일어나는 트랜잭션에 대한 변경내역들을 기록하는 파일이다. 리두로그에 남겨진 기록을 이용하여 원래 상태로 복구할수 있으며 티베로 데이터베이스 또한 동일한 기능이 지원된다.[1]
목차
개요[편집]
리두로그는 리두엔트리로 구성되어져있으며, 오라클 프로세스 LGWR에 의해 로그버퍼에 쓰여진 내용이 리두로그파일에 쓰여진다. 리두로그는 Online Redo와 Archived Redo 로 구성된다. [2]
리두로그[편집]
리두로그 목적[편집]
/ 내용 DB recovery - 물리적으로 디스크가 깨지는 등의 Media Fail 발생시 데이터베이스를 복구하기 위해 사용 Instance recovery - Instance가 비정상적으로 종료됐을 때 트랜잭션 데이터의 유실에 대비하기 위해 사용 Fast commit - 원래 완전한 commit은 LGWR, DBWR이 다 내려써야 완벽한 commit인데, 대량의 데이터 변경이 발생했을 때는 시간이 오래 걸리므로 redo 로그를 믿고 빠르게 commit을 완료한다는 의미
- 트랜잭션 발생시 하나씩 데이터 파일에 기록하기 보단느 우선 변경사항을 Redo log에 기록하고 메모리 데이터블록과 데이터 파일 간 동기화는 나중에 일괄적으로 수행하는 기능
리두로그 파일(Redo Log File)[편집]
redo log 파일은 일정 공간을 할당해 놓고 재사용하는 파일이며, 온라인백업(Online backup 혹은 Hot Backup) 을 위해 Archive log 모드로 데이터베이스를 운영하면 재사용되는 시점의 redo log 파일이 Archive log 파일로 복사된다.[3]
리두로그 파일 구성[편집]
- 리드로그 파일은 그룹과 멤버라는 개념으로 관리되며, 같은 그룹일 경우 멤버들은 같은내용을 담고 있기 때문에 하나의 멤버가 삭제되거나, 장애가 발생해도 다른 멤버가 존재 함으로 데이터가 보존된다.
- 멤버수가 많으면 안정적이지만 기록시간이 늘어난다. 멤버수가 적으면 기록시간은 짧지만 안정성에 문제가 생긴다.
- 같은 그룹의 멤버는 절대 같은 디스크에 함께 있을 수 없고, 같은 그룹안의 멤버들끼리는 서로 저장하고 있는 내용과 크기가 동일하다.[2]
리두로그 파일 상태[편집]
/ 내용 * CURRENT 현재 LGWR이 내용을 기록하고 있는 상태 * ACTIVE Redo log file의 내용이 아직 DB buffer cache에서 Datafile로 저장이 안되서 지워지면 안되는 상태. * INACTIVE Redo log file의 내용이 데이터 파일에도 다 저장이 되어서 삭제되어도 된다는 의미.
(redo log file을 삭제 할 대는 반드시 INACTIVE 상태여야 한다.)
리두로그 파일 관리[편집]
① 그룹 생성하기 SQL > alter database add logfile group 4 '주소';
② 멤버 추가하기 SQL > alter database add logfile member '주소' to group 4;
③ 멤버 삭제하기 SQL > alter database drop logfile member '주소';
④ 그룹 삭제하기 SQL > alter database drop logfile group 4;
⑤ 강제로 로그 스위치 발생시키기 SQL > alter system switch logfile; (CURRENT → ACTIVE)
⑥ 강제로 체크포인트 발생시키기 SQL > alter system checkpoint; (ACTIVE → INACTIVE)
⑦ 파일위치 변경 및 파일이름 변경 SQL > alter database rename file '주소' to '주소'
⑧ 상태 확인 SQL > select * from v$log; SQL > select * from v$logfile;
각주[편집]
- ↑ 〈오라클 리두로그〉, 《당통》, 2009-05-17
- ↑ 2.0 2.1 2.2 2.3 〈Redo log 구성〉, 《한잔디》, 2013-03-31
- ↑ 〈Redo log file〉, 《김과장의 AZ팩토리》, 2018-10-17
참고자료[편집]
- 리드로그〈오라클 리두로그〉, 《당통》, 2009-05-17
- 리드로그파일〈Redo log란〉, 《김과장의 AZ팩토리》, 2018-10-17
- 리드로그목적 〈Redo log file〉, 《한잔디》, 2013-03-31
같이 보기[편집]