## oracle 10g recyclebin 및 as of timestamp 이용 데이터 복구DB
업무간 실수 및 자의 또는 타의에 의해 table 및 data가 날라가 버리면~~ 아주 된장 이다...
그때 복구 할수 있는 간단한 admin 작업을 해보면...
우선 table이 완전 drop되 었는지 data만 지워 졌는지 확인 한다..
select * from user_tables
where table_names=' tablename'
첫째 : table이 drop 되었을시~~
이때는 recyclebin 을 이용 object를 복구 할 수 있는데....
recyclebin 기능을 간단히 알아 보면....
window 휴지통에 개념과 유사한 flashback table 에 존재하는 논리적으로 존재하는 data file을 다시 되살리는 기능과 유사합니다... 물론 10g에서만 가능 하구요...
9i 이전 버젼은 tablespace 복구 시킨다음 export/import 등 기타 메소드를 사용하여 tablespace 생성하여 복구 시키는데... 프로시져를 수행하고 복제위한 다른데이터베이스 이용해야 하고...
으~~ 머리 아픈 작업을 실시해야 합니다...
sql> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ ------------------
SHIN BIN$04LhcpndanfgMAAAAAANPw==$0 TABLE 2009-10-19:21:13:31
sql> flashback recyclebin shin to before drop ;
FLASHBACK COMPLETE..
sql> select tablename,tablespace_name from user_tables
where table_name='shin';
TABLE_NAME TABLESPACE_NAME
------------- ---------------------
SHIN TABLESPACENAME
복구 되었네요....
둘째 : table이 drop 되어있지 않고 truncate 나 delete 가 되었을시...
sql>select tablename,tablespace_name from user_tables
where table_name='shin';
TABLE_NAME TABLESPACE_NAME
------------- ---------------------
SHIN TABLESPACENAME
table은 있네요...
데이터를 조회해 보면
sql> select * from shin
where rownum='101';
조회해 보니 값이 없네요...
지워진지 한 10분쯤 되었다네요...
이때 as of timestamp 를 이용 조회 하여 복구 합니다...
sql> create table shin1 as
select * from shin
as of timestamp to_timestamp('20091019 21:10:00','yyyyMMdd hh24:mi:ss')
backup table을 생성하고 데이터를 복구 합니다...
실시간 access 되거나 사용이 잦은 table은 그에 맞추어 exists 를 이용 없는 값을 insert 시키고
그렇지 않으면 간단히 rename 시킵니다...
sql> alter table rename shin to shin1;
출처 : http://blog.naver.com/captain5030/50074212011
'ORACLE' 카테고리의 다른 글
테이블스페이스 생성, 사용자 추가, 사용자 권한설정 (0) | 2012.05.18 |
---|---|
테이블스페이스 관리 (0) | 2012.04.30 |
오라클 테이블스페이스 용량늘리기 (0) | 2012.04.30 |
[SQL] 제약조건, Constraint(NOT NULL, UNIQUE, PRIMARY KEY(기본키), FOREIGN KEY(외래키)) (0) | 2012.02.28 |
DBMS_CRYPTO를 이용한 암호화/복호화 (오라클) (0) | 2011.11.18 |