데이터베이스 / 테이블을 지정된 시간 또는 SCN으로 플래시백

먼저 마운트 모드에서 플래시백 기능을 활성화해야합니다.. URL을 확인할 수 있습니다 https://www.roamway.com/2792.html 자세한 내용은.

예: 지정된 시간으로 데이터베이스 플래시백

SQL> 즉시 종료;
데이터베이스가 닫혔습니다..
데이터베이스 분리.
ORACLE 인스턴스 종료.

SQL> 시작 마운트;
ORACLE 인스턴스가 시작되었습니다..
전체 시스템 전역 영역 1.0155E + 10 바이트
고정 크기 2262008 바이트
가변 크기 7818185736 바이트
데이터베이스 버퍼 2315255808 바이트
리두 버퍼 19296256 바이트
데이터베이스가 마운트되었습니다..

SQL> 데이터베이스를 타임 스탬프 to_timestamp로 플래시백('2019-11-14 18:14:00′,’yyyy-mm-dd hh24:나를:ss’);
플래시백 완료.

SQL> 데이터베이스 열기 변경;
데이터베이스가 변경됨.

관련 플래시백 로그

데이터베이스를 타임 스탬프 to_timestamp로 플래시백('2019-11-14 18:15:00′,’yyyy-mm-dd hh24:나를:ss’)
플래시백 복원 시작
금 12 월 06 14:03:39 2019
플래시백 복원 완료
플래시백 미디어 복구 시작
시작된 logmerger 프로세스
병렬 미디어 복구 시작 40 노예
플래시백 미디어 복구 로그 /home/oracle/archivelog/thread_2_seq_3212.9393.1024328389
플래시백 미디어 복구 로그 /home/oracle/archivelog/thread_1_seq_3166.9382.1024318427
플래시백 미디어 복구 로그 /home/oracle/archivelog/thread_1_seq_3167.10153.1024328285
금 12 월 06 14:04:37 2019
플래시백 미디어 복구 로그 /home/oracle/archivelog/thread_1_seq_3168.9405.1024344047
금 12 월 06 14:05:53 2019
플래시백 미디어 복구 로그 /home/oracle/archivelog/thread_2_seq_3213.9377.1024339487
금 12 월 06 14:07:43 2019
변경 될 때까지 불완전 복구 적용 5984486155041 시각 11/14/2019 18:15:01
금 12 월 06 14:07:44 2019
플래시백 미디어 복구 완료
완료: 데이터베이스를 타임 스탬프 to_timestamp로 플래시백('2019-11-14 18:15:00′,’yyyy-mm-dd hh24:나를:ss’)

예: 지정된 SCN으로 데이터베이스 플래시백

또한 데이터베이스를 지정된 SCN으로 플래시백 할 수 있습니다.. 그러나 SCN은 spedifice tome에서 변환되어야합니다..
예를 들어 변환 “2019-12-06 10:20:00” SCN에.

SQL> 세트 라인 500;
SQL> timestamp_to_scn 선택(to_timestamp('2019-12-06 10:20:00′,’YYYY-MM-DD HH24:나를:SS’)) 듀얼에서;
TIMESTAMP_TO_SCN(TO_TIMESTAMP('2019-12-0610:20:00′,’YYYY-MM-DDHH24:나를:SS’))
5.9865E + 12
SQL> numwidth 설정 20;
SQL> timestamp_to_scn 선택(to_timestamp('2019-12-06 10:20:00′,’YYYY-MM-DD HH24:나를:SS’)) 듀얼에서;
TIMESTAMP_TO_SCN(TO_TIMESTAMP('2019-12-0610:20:00′,’YYYY-MM-DDHH24:나를:SS’))
5986520769578

그래서, 데이터베이스를 플래시백하기 위해 다음 명령을 실행합니다..

SQL> 데이터베이스를 scn으로 플래시백 5986520769578;
데이터베이스를 scn으로 플래시백 5986520769578
줄에 오류가 있습니다. 1:
ORA-38754: FLASHBACK DATABASE가 시작되지 않았습니다.; 필요한 리두 로그를 사용할 수 없습니다.
ORA-38762: SCN에 필요한 리두 로그 4394725 SCN으로 5986520769578
ORA-38761: 리두 로그 시퀀스 114 실에서 1, 강생 2 액세스 할 수 없습니다

위의 오류가 발생한 경우 RMAN으로 데이터베이스를 플래시백 할 수 있습니다..

RMAN> 데이터베이스를 scn으로 플래시백 5986520769578;
플래시백 시작 2019:12:06 11:27:11
복구 카탈로그 대신 대상 데이터베이스 제어 파일 사용
할당 된 채널: ORA_DISK_1
채널 ORA_DISK_1: SID = 5860 장치 유형 = DISK

예: 테이블을 지정된 시간으로 플래시백

시작 기능 “행 이동”
SQL>ALTER TABLE YOUR_TABLENAME 행 이동 활성화;

지정된 시간으로 테이블 플래시백
SQL> FLASHBACK TABLE YOUR_TABLENAME TO TIMESTAMP
TO_TIMESTAMP('2018-04-23 16:06:00′,’yyyy-mm-dd hh24:나를:ss’);

그러나 데이터베이스를 읽고 쓸 수 있는지 확인해야합니다.
그렇지 않으면 다음 오류가 발생합니다..

줄에 오류가 있습니다. 1:
지금-00604: 재귀 SQL 레벨에서 오류가 발생했습니다. 1
ORA-16000: 읽기 전용 액세스를 위해 열린 데이터베이스

기능 중지 “행 이동”
SQL>ALTER TABLE YOUR_TABLENAME DISABLE ROW MOVEMENT;

부착

데이터베이스가 플래시백 할 수있는 가장 빠른 SCN 확인

SQL> 고르다 * v $ flashback_database_log에서;
OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
5984398987742 09-11 월 -19 일 57600 188668223488 0

플래시백 로그 파일의 세부 정보 확인

SQL> 고르다 * v $ flashback_database_stat에서;
BEGIN_TIM END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE
07-DEC-19 08-DEC-19 8192 9342976000 0 0

플래시백 로그의 세부 사항 확인

SQL> 고르다 * v $ flashback_database_logfile에서;
………………
이름 LOG # THREAD # SEQUENCE # BYTES FIRST_CHANGE # FIRST_TIM TYPE
/path ../ flashback / o1_mf_7t11_.flb 28 1 28 16777216000 0 10-11 월 -19 일 정상
/path ../ flashback / o1_mf_t2o3_.flb 29 1 29 33554432000 0 11-11 월 -19 일 정상
/path ../ flashback / o1_mf_v7ml_.flb 30 1 30 42949672960 0 12-11 월 -19 일 정상
………………

답장을 남겨주세요