Oacle 데이터 시트 를 잘못 삭제 하여 복원 하 는 두 가지 방법(Oacle 복원)

1.방금 삭제 한 것 이 라면 두 가지 방법 이 있 습 니 다.
먼저 show parameter undo;명령 은 당시 데이터베이스 인자 undo 보기retention 설정.
다음 과 같이 표 시 됩 니 다:

undo_management   string   AUTO

undo_retention  integer 10800

undo_suppress_errors  boolean  FALSE

undo_tablespace   string   UNDOTBS1

undo_retention(유 지력),10800 단 위 는 초 입 니 다.즉 3 시간.
기본 undo 수정retention 매개 변수 설정:

ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;
방법 1,Oacle 을 통 해 제공 하 는 플래시 기능:

exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss'));

set serveroutput on

DECLARE r_temp hr.job_history%ROWTYPE;

CURSOR c_temp IS SELECT * FROM hr.job_history;

BEGIN

OPEN c_temp;

dbms_flashback.disable;

LOOP

FETCH c_temp INTO r_temp;

EXIT WHEN c_temp%NOTFOUND;

insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values (r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);

commit;

END LOOP;

CLOSE c_temp;

END;

방법 2,insert into hr.jobhistory

select * from hr.job_history as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');
이런 방법 은 간단 하고 쉽게 파악 할 수 있 습 니 다.기능 은 위의 똑 같은 시간 에 조작 하기 전의 시간 을 오 작 동 시 키 는 것 이 좋 습 니 다.오 작 동 과 가 까 운 것 이 좋 습 니 다.Oacle 이 스크롤 유지 단계 에 저 장 된 데이터 시간 은 일정한 시간 제한 이 있 기 때문에 undoretention 이 매개 변수 값 이 결 정 됩 니 다.
2.삭제 한 지 오래 되 었 지만 새로운 데이터베이스 백업 이 있 으 면 백업 을 통 해 복원 합 니 다.새 라 이브 러 리 를 만 들 고 백업 을 복원 하여 표 데 이 터 를 내 보 내 고 현재 사용 하고 있 는 라 이브 러 리 로 가 져 옵 니 다.
3.삭제 한 지 오래 되 고 백업 이 없 지만 데 이 터 는 표 에 쓸 때 다른 관련 표를 동시에 기록 합 니 다.그러면 SQL 문 구 를 써 서 다른 표 에서 데 이 터 를 꺼 내 insert 에서 삭 제 된 표 에 넣 으 려 고 합 니 다.
4.백업 시트 에 복원

create table tableName_bak
as
select * from tableName as of TIMESTAMP to_timestamp('20081126 103435','yyyymmdd hh24miss');

좋은 웹페이지 즐겨찾기