일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- #Oracle
- Oracle
- 웹영상배속
- 컨테이너 백업
- GUI 또는 CLI전환
- Windows
- cmd인스톨러설치
- CentOS7
- cloudready OS
- ipvlan
- 컨테이너 복원
- Linux
- VPN
- Dell Venue 8 Pro
- 파이썬 스톱워치
- docker
- ventoy 사용법
- OTT셋톱박스
- cubrid
- 딜라이브플러스h3
- putty
- 인강배속
- YCSB
- MySQL
- CentOS
- 영상배속
- 시스템예약종료
- docker container restore
- docker container backup
- cmd로msi파일설치
- Today
- Total
일단은 프로그래머 나부랭이
Flashback 정리 본문
DB를 restore 하지 않고, 과거 특정 시점의 data를 조회하는 기술로, backup된 db를 restore하는 것과는 다르다
(flashback이란? : https://www.oracle.com/kr/database/technologies/high-availability/flashback.html)
(flashback transaction, total recall은 보고 있던 책에 예제가 없어서 따로 정리하지 않음)
- flashback query : 특정 시점의 테이블의 데이터 조회
- flashback version query : 특정 기간의 테이블의 데이터 버전 조회
- flashback transaction query : 특정 기간의 트랜잭션에 의한 변경정보 조회
- flashback table : 특정시점으로 테이블을 되돌림
- flashback drop : 삭제된 테이블을 원하는 시점으로 복원
- flashback database : DB를 지정한 시점으로 되돌림 (과거에 생성한 backup db를 restore하는 것과는 다름)
참고로 각 기능은 아래에 정리된 저장소(?) 또는 log의 정보를 기반으로 동작한다. (불친절한 SQL 프로그래밍 921p에서 발췌)
- undo segment 사용 : flashback query, version query, transaction query, table
- 때문에 만약 undo segment 공간이 재사용 될 경우, error가 발생할 수 있다. (ora-08180)
- 이 경우 flashback으로도 해당 시점의 내용을 조회할 수 없게 된다. (다른 방법이 있는지는 찾아보지 않음)
- recyclebin 사용 : flashback drop
- flashback log 사용 : flashback database
flashback table 생성 및 사용방법 (flashback query, flashback version query 사용법 정리)
- flashback 기능을 사용하기 위해서는 table 생성시 enable row movement를 포함하여 생성해야 한다.
(ex : create table t1 (col number) enable row movement;) - data를 insert 혹은 delete해준다. (insert 혹은 delete시 commit 잘 해줄것)
- 다음의 query 형식으로 조회하며, 아래의 timestamp는 scn 변경하여도 조회 가능.
- flashback query (as of timestamp 절을 이용)
ex : select * from [table name]as of timestamp timestamp 'yyyy-mm-dd hh:mi24:ss'; - flashback version query (versions between timestamp 절을 이용)
ex : select * from t1 versions between timestamp timestamp 'yyyy-mm-dd hh:mi24:ss' and [timestamp 혹은 maxvalue];
- flashback query (as of timestamp 절을 이용)
flashback transaction query 조회 방법 (단 dba 권한 필요)
: select * from flashback_transaction_query;
flashback table 사용 방법
: flashback table [table name] to timestamp timestamp 'yyyy-mm-dd hh:mi24:ss';
flashback drop 사용 방법
: flashback table [복원할 table name] to before drop rename to [rename할 table name];
※ 참고 : 복원할 table이 recyclebin에 남아 있는지 확인하는 방법 : select * from user_recyclebin;
flashback database 사용 방법
- 관련 옵션 활성화 (dba 권한 필요)
- shutdown immediate
- startup mount
- alter database archivelog;
- alter database flashback on;
- alter database open;
- 되돌리기
- shutdown immediate
- startup mount
- ex : (DB를 10분전으로 되돌림) flashback database to timestamp (systimestamp - interval '10' minute);
'DBMS' 카테고리의 다른 글
(메모) CUBRID python driver test (0) | 2021.10.11 |
---|---|
태블릿 pc에서 DBMS 의 benchmark를 돌려보자 (0) | 2021.03.28 |
MVCC에 관하여 정리 (0) | 2021.03.25 |
MSSQL의 timestamp에 대해서 (0) | 2018.07.05 |
varchar와 nvarchar의 차이 (0) | 2018.05.29 |