INSTANCE MMAN RECO RFS SGA Data Buffer Cache
오라클 서버의 구조 INSTANCE MMAN RECO RFS SGA Data Buffer Cache 서버 프로세스 MRP ORBn Stream Pool RBAL Shared pool MMON Dnnn Snnn Large Pool Java Pool Log Buffer PGA 사용자 프로세스 PMON DBWR CKPT LGWR SMON RVWR ARCH Flash-Back Database Logs Archive files Control files Redo log files Data files Parameter File 파일 Archive files
Select문의 처리 1 Instance. 구문분석(Parse) SGA . 실행(Execute). 인출(Fetch) 사용자 프로세스 서버 프로세스 PGA 4 1주종면부산 Database 2주영현서울 buffer cache Shared pool Library cache SELECT * FROM emp ORDER BY ename; Redo log buffer Data dictionary cache 3 . 접속일자. 사용자/ 암호 %sqlplus scott/tiger 1> SELECT * 2> FROM emp 3> ORDER BY ename; 2 Data files EMP 1주종면부산 2주영현서울 Control files Database Redo log files
DML문의 처리 3. 구문분석(Parse) Instance SGA 4 Library cache . 실행(Execute) 사용자 프로세스 Server process Database 1주종면 110 1주종면 100 buffer cache 1주종면 100 Shared pool UPDATE emp SET sal=sal*1. 1 WHERE empno=1 1주종면 100 Redo log 1주종면 110 buffer Rollback-block Data dictionary DBA_TABLES cache 2 . 접속일자. 사용자/ 암호 %sqlplus scott/tiger UPDATE emp SET sal=sal*1. 1 WHERE empno=1; 1 Data files EMP 1주종면 100 2주영현120 RBS 01 Control files Database Redo log files
COMMIT문 처리 2 Instance SGA 1주종면 110 Database 2주영현132 buffer 1주종면 100 cache 서버 프로세스 1 2주영현120 4 DBWR Committed. 사용자 프로세스 Sql> commit; Committed. Shared pool SCN: 8014 1주종면 100 Redo log 1주종면 110 UPDATE emp SET sal=sal*1. 1 WHERE empno=1 buffer 2주영현120 2주영현132 CKPT 7 LGWR 3 6 8014 Data files EMP 1주종면 110 2주영현132 RBS 01 103 Control 8014 files 5 102 103 Redo log SCN: 8014 1주종면 100 files 2주영현120 2주영현132 1주종면 110
Init. ora 시작과 종료 SQL> Startup Instance Started. Finxed Size Data. Buffer Cache 3000000 Log Buffer 8192 Shared pool Buffer 3500000 Database mounted. Database opened. db_name=ORA 9 Shared_pool_size=1000 Log_buffer=8192 1 1) Init. ora를 읽는다. 2) SGA 영역을 만든다. 3) Background 프로세스를 만든다. 4) Alert_<DB명>. log에 정보를 변경한다. 메모리(Instance) Data Buffer Cache SGA Log Shared pool Buffer Large Pool 3 DBWR 1)Control 파일의 정보를 이용하여 파일들의 무결성을 확인한다. 2)일반 사용자가 데이터베이스에 접속할 수 있도록 허용한다. C: SYSTEM. DBF D: INSA. DBF E: RBS. DBF 2 CKPT LGWR PMON SMON 1) control. ctl(컨트롤파일)을 읽는다. 2) init. ora와 Control 파일 정보를 읽는다. 3) db_name 값이 일치하는지 검사한다. 4) 상태정보를 읽는다. Control. ctl db_name=ORA 9 C: SYSTEM. DBF D: INSA. DBF E: RBS. DBF
데이터베이스의 구조분석 데이터 파일 컨트롤 파일 SCN: 100 SYSTEM 01. DBF CONTROL 01. CTL REDO 01. LOG SCN: 100 UNDOTBS 01. DBF CONTROL 02. CTL REDO 02. LOG SCN: 100 TEMP 01. DBF CONTROL 03. CTL REDO 03. LOG SCN: 100 USERS 01. DBF SCN: 100 QUERY 01. DBF 리두로그 파일 파라메터 파일 INIT. ORA
무결성의 검증 SQL> Startup Instance Started. Finxed Size Data. Buffer Cache Logo Buffer Shared pool Buffer Database mounted. 3000000 8192 3500000 ORA-01157 데이터 9 파일을 식별 또는 잠금할 수 없습니다 ORA-01110 : 9 데이터 파일: c: users 01. dbf 100 C: USERS 01. DBF 100 CONTROL. CTL DB Name : ORA 92 SCN : 100 Log-S/N : 57 SYSTEM : C: SYSTEM. DBF 100 M UNDO : C: UNDO 01. DBF 300 M TEMP : C: TEMP 01. DBF 200 M USERS : C: USERS 01. DBF 500 M REDO 1 : D: REDO 1. LOG 500 K REDO 2 : D: REDO 2. LOG 500 K Max Data Files : 1200 Max. Log files : 10 Max. Log Member : 5 Characterset : KO 16 KSC 5601 Control Files 100 ON-LINE OFF-LINE ON-LINE C: SYSTEM. DBF 100 C: TEMP 01. DBF 100 C: UNDO 01. DBF
System Change Number 1 2001년 6월 30일 Backup 2 2001년 7월 31일 Backup 100 Control files 101 Parameter files Control files Data files Log files 3 현재시점 102 Oracle 9 i Control Files-101 files Data files Parameter files Log files
Files 구조 V$CONTROLFILE_RECORD_SECTION V$DATABASE CREATE DATABASE ora 90 LOGFILE GROUP 1 (‘c: oracleoradataora 90redo 01. log’) size 10 m, GROUP 2 (‘c: oracleoradataora 90redo 02. log’) size 10 m) DATAFILE ‘c: oracleoradataora 90system 01. dbf’ size 100 m UNDO TABLESPACE undo DATAFILE ‘c: oracleoradataora 90undo 01. dbf’ size 50 m DEFAULT TEMPORARY TABLESPACE temp TEMPFILE ‘c: oracleoradataora 90temp 01. dbf’ size 30 m EXTENT MANAGEMENT LOCAL UNIFORM size 1 m CHARACTER SET ko 16 ksc 5601 NATIONAL CHARACTER SET al 16 utf 16 SET TIME_ZONE = ‘Korea/Seoul’; Data Files 80014 SYSTEM. DBF , , , 80014 UNDO. DBF , , , 80014 TEMP. DBF , , , 80014 INSA. DBF , , , Control Files 80014 CONTROL. CTL DB Name : ORA 9 SCN : 800014 Log-S/N : 257 SYSTEM : C: SYSTEM. DBF 100 M ON-LINE UNDO : C: UNDO. DBF 300 M ON-LINE TEMP : C: TEMP. DBF 200 M ON-LINE INSA : C: INSA. DBF 500 M ON-LINE REDO 1 : D: REDO 1. LOG 500 K ON-LINE REDO 2 : D: REDO 2. LOG 500 K ON-LINE Max Data Files : 1200 Max. Log files : 10 Max. Log Member : 5 Characterset : KO 16 KSC 5601 Redo-Log Files 80014 REDO 1. LOG 1주종면 100 1주종면 110 256 80014 REDO 2. LOG 2주영현120 2주영현132 257 Parameter File INIT. ORA DB_NAME=ORA 8
백업과 복구방법 Backup Method Physical (Archive, No. Archive) Off. Line Backup (Close, Cold Backup) Physical (Archive) On. Line Backup (Open, Hot Backup) Physical (Archive, No. Archive) RMAN Utility Logical Mode Export/Import Utility Recovery Method No. Archive Mode Full DB Recovery Archive Mode Complete Recovery 1) Full DB 2) Tablespace 3) Datafile In. Complete Recovery 1) Cancel Based 2) Time Based 3) Change Based 4) 컨트롤 파일 및 Redo-Log의 유실
논-파티션 테이블 & 파티션 뷰 D: datainsa 1. dbf Create tablespace chul Datafile ‘d: datachul. dbf’ size 500 m; jeon Create table jeon(idate, no char(2), name v 2(20), qty number) Tablespace chul; 199912 1 tv tube 100 200001 2 power cable ………… Create tablespace chul 1999 Datafile ‘d: datachul 1999. dbf’ size 500 m; Create tablespace chul 2000 Datafile ‘e: datachul 2000. dbf’ size 500 m; Create table jeon 1999(idate, no char(2), name v 2(20), qty number) Tablespace chul 1999; Create table jeon 2000(idate, no char(2), name v 2(20), qty number) Tablespace chul 2000; Create view tot_chul As select * from chul 1999 Union all select * from chul 2000; D: datachul 1999. dbf jeon 199912 1 tv tube 100 ………… E: datachul 12000. dbf jeon 200001 2 power cable …………
파티션 테이블 D: datachul 1999. dbf Create tablespace chul 1999 Datafile ‘d: datachul 1999. dbf’ size 500 m; Create tablespace chul 2000 Datafile ‘e: datachul 2000. dbf’ size 500 m; Create tablespace chul 2001 Datafile ‘f: datachul 2001. dbf’ size 500 m; Create table jeon(idate, no char(2), name v 2(20), qty number) Partition By Range(idate) (Partition t 1 values less than(200001) Tablespace chul 1999, Partition t 2 values less than(200101) Tablespace chul 2000, Partition t 3 values less than(MAXVALUE) Tablespace chul 2001); Jeon 199911 1 tv tube 100 ………… E: datachul 12000. dbf jeon 200001 2 power cable ………… F: datachul 12001. dbf jeon 200101 3 case box …………
다중 컨트롤 파일 CKPT Data files Disk-1 Control files -1 102 103 Redo log SCN: 8014 1주종면 100 files 2주영현120 2주영현132 1주종면 110 Undo file Disk-2 Control files -2 Disk-3 Control files -3 Temp file System file
컨트롤 파일 복사하기(PFILE) 1 2 데이터베이스를 종료하십시오. SQL> SHUTDOWN 원본 컨트롤 파일을 복사하십시오. C: > copy control 01. ctl control 04. ctl INIT<DB명>. ORA 파일에 새로운 파일을 추가하십시오. 3 Control_files= (control 01. ctl, , , control 04. ctl) 데이터베이스를 다시 시작하십시오. 4 SQL> STARTUP ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
컨트롤 파일 복사하기(SPFILE) 1 SQL> ALTER SYSTEM SET control_files = ‘c: oracleoradataora 90control 01. ctl’, ‘c: oracleoradataora 90control 02. ctl’, ‘c: oracleoradataora 90control 03. ctl’, ‘c: oracleoradataora 90control 04. ctl’ SCOPE =SPFILE; 2 SQL> SHUTDOWN 원본 컨트롤 파일을 복사하십시오. 3 C: > copy control 01. ctl control 04. ctl 4 데이터베이스를 다시 시작하십시오. SQL> STARTUP
다중 리두로그 파일 서버 프로세스 Instance Redo-Log Buffer 2주영현110 2주영현121 4홍길동 100 4홍길동 110 6황진이 100 6황진이 110 8이황 100 8이횡 110 1주종면 100 1주종면 110 3홍경옥 110 5유관순 100 5유관순 110 7윤봉길 100 7윤봉길 110 Redo log buffer 3홍경옥 100 %sqlplus scott/tiger UPDATE emp ARCH LGWR SET sal=sal*1. 1; C: log 1 D: log 1 E: log 1 7윤봉길 100 1주종면 100 Redo log 1주종면 110 7윤봉길 110 3홍경옥 100 Redo log 3홍경옥 110 5유관순 100 Redo log 5유관순 110 2주영현110 8이황 110 2주영현121 8이황 121 4홍길동 110 4홍길동 121 6황진이 110 6황진이 121 files-2 files-3 Disk-1 F: log 1 G: log 1 H: log 1 7윤봉길 100 1주종면 100 Redo log 1주종면 110 7윤봉길 110 3홍경옥 100 Redo log 3홍경옥 110 5유관순 100 Redo log 5유관순 110 2주영현110 8이황 110 2주영현121 8이황 121 4홍길동 110 4홍길동 121 6황진이 110 6황진이 121 files-2 files-3 Disk-2
체크포인트와 백업원리 2 Log_checkpoint_timeout Log_checkpoint_interval Fast_start_io_target Fast_start_mttr_target 서버 프로세스 1 Instance SGA 1주종면 110 Database 2주영현132 buffer 1주종면 100 cache 2주영현120 4 DBWR Committed. 사용자 프로세스 Sql> commit; Committed. Shared pool SCN: 8014 1주종면 100 Redo log 1주종면 110 UPDATE emp SET sal=sal*1. 1 WHERE empno=1 buffer 2주영현120 2주영현132 CKPT 7 LGWR 3 6 8014 Data files EMP 1주종면 110 2주영현132 RBS 01 103 Control 8014 files 5 102 103 Redo log SCN: 8014 1주종면 100 files 2주영현120 2주영현132 1주종면 110
Data Mirror 1) 자동 미러링 . Hardware Based RAID - RAID (Redundant Arrays of Independent Disks) SYSTEM. Soft. Ware Based RAID - Logical Volume Manager (Unix, Linux, Window-NT/XP 등) - ORACLE 사 (Automatic Storage Management) 2) 수동 미러링 Create or replace trigger back_emp After update or delete or insert on emp Begin Insert into backup_emp Values ( , , ); End;
R A I D
RAID의 구조 1) HA-Solution 2) FS-Solution RAID Controller Disk Controller
WINDOW-NT의 RAID-5
Automatic Storage Management CREATE DISKGROUP dgroup 1 NORMAL REDUNDANCY 2 FAILGROUP controller 1 DISK '/devices/diska 1', '/devices/diska 2', '/devices/diska 3', FAILGROUP controller 2 DISK '/devices/diskb 1', '/devices/diskb 2', '/devices/diskb 3‘; CREATE TABLESPACE sales DATAFILE '+dgroup 1' SIZE 200 M AUTOEXTEND ON;
사용자의 구조 Sqlplus scott/tiger Sqlplus sales/sales 123 SQL> CREATE TABLE emp SQL> CREATE TABLE ord (a NUMBER) (a TABLESPACE t_sales; SQL> CREATE TABLE item (b NUMBER) SQL> CREATE TABLE inv NUMBER) (b TABLESPACE t_account; NUMBER) TABLESPACE t_account; Oracle DB t_sales t_account SCOTT. EMP SALES. ORD SCOTT. BORD SCOTT. DEPT SALES. SLIP SCOTT. ITEM SALES. PROD SALES. INV
사용자의 구조설계 Oracle DB SALES/SALES 123 sales_s emp dept ACOUNT/ACC 123 sales_l sal Oracle DB account slip 업무별로 사용자를 생성하는 경우 Create user sales Identified by sales 123; Create user account Identified by acc 123; MIS/MIS 123 mis s_emp s_dept a_slip 전체업무를 하나의 사용자로 생성하는 경우 Create user mis Identified by mis 123;
노-아카이브 모드 Instance Redo-Logo Buffer 2주영현110 2주영현121 4홍길동 100 6황진이 100 4홍길동 110 Redo 6황진이 110 log 8이황 100 8이횡 110 buffer 1주종면 100 1주종면 110 3홍경옥 100 3홍경옥 110 5유관순 100 5유관순 110 7윤봉길 100 7윤봉길 110 LGWR Disk-1 7윤봉길 100 1주종면 100 Redo log 1주종면 110 7윤봉길 110 3홍경옥 100 Redo log 3홍경옥 110 5유관순 100 Redo log 5유관순 110 2주영현110 8이황 110 2주영현121 8이황 121 4홍길동 110 4홍길동 121 6황진이 110 6황진이 121 files-2 files-3
Off. Line Backup Oracle 9 i Control File Redo-Log File Data File Parameter File Oracle 8 1 SQL> connect sys/man as sysdba SQL > shutdown SQL > cd $ORACLE_HOME 2 SQL > copy *. ctl c: backup*. ctl SQL > copy *. log c: backup*. log SQL > copy *. dbf c: backup*. dbf SQL > copy *. ora c: /backup*. ora
2001년 6월 30일 Backup 2001년 7월 31일 Backup 100 Control files 201 Parameter files Data files Parameter files Control files Data files Log files 현재시점 302 Oracle 9 i Control Files-201 files Data files Parameter files Log files
Full DB Recovery(No. Archive) 2001년 6월 10일 12시 2001년 6월 12일 13시 Oracle 9 i 1 SQL> connect sys/man as sysdba SQL> shutdown SQL> cd $ORACLE_HOME SQL> copy *. ctl c: backup*. ctl SQL> copy *. log c: backup*. log SQL> copy *. dbf c: backup*. dbf SQL> copy *. ora c: /backup*. ora Oracle 8 2 copy c: backup*. ctl copy c: backup*. log copy c: backup*. dbf copy c: backup*. ora SQL> connect sys/man as sysdba SQL> startup
아카이브 모드 Instance 1주종면 100 Redo log 1주종면 110 files-1 Redo-Logo Buffer 2주영현110 2주영현121 4홍길동 100 6황진이 100 4홍길동 110 Redo 6황진이 110 log 2주영현110 2주영현121 8이황 100 8이횡 110 buffer 1주종면 100 1주종면 110 3홍경옥 100 3홍경옥 110 5유관순 100 5유관순 110 7윤봉길 100 7윤봉길 110 ARCH LGWR 3홍경옥 100 Archive 3홍경옥 110 files-2 4홍길동 110 4홍길동 121 5유관순 100 5유관순 110 Archive files-3 6황진이 110 6황진이 121 Disk-1 7윤봉길 100 1주종면 100 Redo log 1주종면 110 7윤봉길 110 3홍경옥 100 Redo log 3홍경옥 110 5유관순 100 Redo log 5유관순 110 2주영현110 8이황 110 2주영현121 8이황 121 4홍길동 110 4홍길동 121 6황진이 110 6황진이 121 files-2 files-3 Disk-2
Archive Mode 설정 1 * INIT<DB명>. ORA 파일에 다음 파라메터를 정의하십시오 LOG_ARCHIVE_START = TRUE LOG_ARCHIVE_DEST = [archivefile의 경로와 파일명] LOG_ARCHIVE_DEST_n = [archivefile의 다른 경로와 파일명] LOG_ARCHIVE_FORMAT = [format type]. [확장자] DB_RECOVERY_FILE_DEST = ‘’ SQL> STARTUP MOUNT 2 SQL> ALTER DATABASE [ ARCHIVELOG | NOARCHIVELOG]; SQL> ALTER DATABASE OPEN; 3 SQL> ARCHIVE LOG LIST;
Full DB 복구 2001년 6월 10일 12시 2001년 6월 12일 13시 Oracle 9 i SCN: 95 LGWR SQL> shutdown copy *. ctl copy *. log copy *. dbf copy *. ora c: backup*. ctl c: /backup*. log c: /backup*. dbf c: /backup*. ora ARCH LOG 1 ARC 1(6/10) LOG 2 ARC 2(6/11) LOG 3 ARC 3(6/12) del user 01. dbf copy c: backupusers 01. dbf SQL> startup mount SQL> recover database; SQL> alter database open;
2001년 6월 10일 12시 시점의 백업 데이터 파일 컨트롤 파일 2001년 6월 12일 13시 현재 시점의 데이터 파일 컨트롤 파일 SCN: 95 SCN: 100 SYSTEM 01. DBF UNDOTBS 01. DBF CONTROL 01. CTL SCN: 95 SCN: 100 TEMP 01. DBF QUERY 01. DBF SCN: 95 SCN: 100 USERS 01. DBF 리두로그 파일 SCN: 95 REDO 01. LOG REDO 02. LOG 리두로그 파일 SCN: 95 REDO 03. LOG SCN: 100 REDO 01. LOG REDO 02. LOG SCN: 100 REDO 03. LOG
무결성의 검증 SQL> Startup Instance Started. Finxed Size Data. Buffer Cache Logo Buffer Shared pool Buffer Database mounted. 3000000 8192 3500000 ORA-01113: 9 파일이 매체 복구되어야 합니다. ORA-01110: 9 데이터 파일: c: users 01. dbf 95 C: USERS 01. DBF 100 CONTROL. CTL DB Name : ORA 92 SCN : 100 Log-S/N : 57 SYSTEM : C: SYSTEM. DBF 100 M UNDO : C: UNDO 01. DBF 300 M TEMP : C: TEMP 01. DBF 200 M USERS : C: USERS 01. DBF 500 M REDO 1 : D: REDO 1. LOG 500 K REDO 2 : D: REDO 2. LOG 500 K Max Data Files : 1200 Max. Log files : 10 Max. Log Member : 5 Characterset 100 ON-LINE OFF-LINE ON-LINE C: SYSTEM. DBF 100 C: TEMP 01. DBF : KO 16 KSC 5601 100 Control Files C: UNDO 01. DBF
Archive의 적용 2001년 6월 10일 12시 Backup Data 100 SYSTEM. DBF UNDO. DBF 100 TEMP. DBF 6월 10일 12시이후 ~ 6월 10일 밤 12시까지 Archive ARC 1. LOG 95 100 USERS 01. DBF CONTROL. CTL 6월 10일 밤 12시이후 ~ 6월 11일 밤 12시까지 Archive ARC 2. LOG 100 REDO 1. LOG 100 REDO 2. LOG 6월 11일 밤 12시이후 ~ 6월 12일 문제싯점까지 Archive ARC 3. LOG
플래시-백 데이터베이스 메모리(Instance) Data Buffer Cache SGA Shared pool Logo Buffer Large Pool 서버 프로세스 PGA 사용자 프로세스 PMON DBWR CKPT LGWR SMON RVWR Control files Redo log files Data files Parameter File 파일 Flash-Back Database Logs
플래시-백 데이터베이스 Flash-Back Database Logs 2004/07/01 Flash. Back Logs 2004/07/02 Flash. Back Logs 2004/07/03 Flash. Back Logs 2 Control files 3 Data files 현재 시점 2004/07/01 2004/07/02 2004/07/03 1 SQL> FLASHBACK TO DATABASE TIMESTAMP(SYSDATE – 1) ;
플래시-백 테이블 Flash-Back Database Logs 2004/07/03 18: 20: 25 Logs 2 2004/07/03 19: 20: 43 Logs 2004/07/03 20: 25: 35 Logs Control files 3 Data files 현재 시점 2004/07/03 18: 20: 25 Update emp Set sal = sal * 2; 2004/07/03 19: 20: 43 Update emp Set sal = sal * 3; 2004/07/03 20: 25: 35 1 SQL> FLASHBACK TABLE emp TO TIMESTAMP TO_TIMESTAMP(‘ 2004/07/03 19: 20: 43’)
환경 설정 * INIT<DB명>. ORA 파일에 다음 파라메터를 정의하십시오 1 DB_RECOVERY_FILE_DEST = ‘[경로]’ # LOG_ARCHIVE_START = TRUE # LOG_ARCHIVE_DEST = [archivefile의 경로와 파일명] # LOG_ARCHIVE_DEST_n = [archivefile의 다른 경로와 파일명] # LOG_ARCHIVE_FORMAT = [format type]. [확장자] SQL> STARTUP MOUNT 2 SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE FLASHBACK ON; SQL> ALTER DATABASE OPEN;
플래시-백 기타기능 1) Flash-Back DROP 2) Flash-Back Row History 3) Flash-Back Transaction History
플래시-백 테이블(V 9 i) 7900 사원정보를 확인하십시오. SQL> connect scott/tiger SQL> SELECT empno, ename, job FROM emp WHERE empno = 7900; EMPNO ENAME JOB --------------------7900 JAMES CLERK SQL> SELECT systimestamp FROM dual; SYSTIMESTAMP ---------------------------2002. 03/25 23: 58: 13. 000000 +09: 00 SQL> DELETE FROM emp WHERE empno = 7900; SQL> COMMIT; 현재 시스템 시간을 확인해 두세요 7900 사원정보를 삭제하세요. COMMIT 까지. . 큰일났네 !! (SCN이 발생합니다) SQL> SELECT empno, ename, job FROM emp WHERE empno = 7900; 선택된 레코드가 없습니다. SQL> connect system/manager 이궁. . 없어졌네 !! SQL> EXECUTE DBMS_FLASHBACK. ENABLE_AT_TIME(‘ 2002. 03/25 23: 58: 13. 000000 ‘); SQL> SELECT empno, ename, job FROM scott. emp WHERE empno = 7900; EMPNO ENAME JOB --------------------7900 JAMES CLERK SQL> EXECUTE DBMS_FLASHBACK. DISABLE; UNDO 세그멘트에서 이전 정보를 검 색합니다. 아~ 이 내용은 언두 세그멘트 내용입 니다. 플래쉬백 기능을 종료합니다.
Init. ora undo_management = auto undo_retention = 300 1 PMON 시간: 2001/11/2 15: 02: 12 Delete From emp Where empno = 7902; Commit; Scn: 81089 4 2 81012 Select ~~; , , , , , 81089 Delete ~~; , , , , , Map-Table 3 시간: 2001/11/2 18: 30: 34 UNDOTBS Tablespace <81089> 2001/11/2 15: 02: 12 7902 주종면 1000 <81090> 7456 주영현 2300 , , , , , , , , , , , , , , , , , , , , , Exec dbms_flashback. enable _at_time(‘ 01/11/2 15: 02: 12’) Select * from emp Where empno = 7902; 5 7902 주종면 1000 Exec dbms_flashback. disable;
5 Data Guard
Data Guard 1) Fail-Over 전 Primary DB Stand. By DB ORA 10 g (Instance A) (Instance B) 2) Fail-Over 후 Standby DB Primary DB ORA 10 g (Instance A) (Instance B)
Data Guard의 구성 Data Guard Broker Process Target DB ORA 10 g ORCL Stand. By DB ARCH 2 *. DBF *. LOG *. ORA ARC 36 ORA 10 g ORCL 1 ARC 36 1 SQL> alter database create standby conrolfile as ‘stnb. ctl’; SQL>alter system archive log current; copy *. LOG 192. 9. 200. 2*. LOG copy *. DBF 192. 9. 200. 2*. DBF copy *. ORA 192. 9. 200. 2*. ORA copy stnb. ctl 192. 9. 200. 2*. CTL copy *. ARC 192. 9. 200. 2*. ARC 3 SQL>startup nomount; SQL>alter database mount standby database; SQL>recover standby database; SQL>alter database open;
실시간 적용 Data Guard Broker Process Target DB Stand. By DB ORA 10 g 192. 9. 200. 1 192. 9. 200. 2 LGWR Synchronous RFS MRP 실시간 적용 Online Redo-Log ARCH Archive Redo-Log Standby Online Redo-Log ARCH Archive Redo-Log
Fail Over Listener 1 (Port : 1521) Client Node 1(192. 9. 200. 1) Node 2(192. 9. 200. 2) Listener 2 (port : 1522) Tnsnames. ora ORA 816=(DESCRIPTION = (FAILOVER=on) (Load_Balance=on) (ADDRESS_LIST = (ADDRESS=(PROTOCOL=tcp)(HOST=192. 9. 200. 1)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192. 9. 200. 2)(PORT=1522)) ) (CONNECT_DATA = (SID = ORA 90)) )
복구 Time의 산정방법 Files = 200 GB Archive = 5 GB (100 Mx 50개) SYSTEM. DBF ……………. ARC 1. log 전체 On. Line Backup 시간 : 3시간 1개 Datafile(4 GB) Restore 시간 : 10분 전체 Datafile(200 GB) Restore시간 : 4시간 1개 Archive-File 적용시간 RBS. DBF : 5분 ……………. ARC 2. log TEMP. DBF ……………. . . INSA. DBF ……………. REDO 1. LOG REDO 2. LOG . ARC 50. log 1) 1개 Datafile(4 GB)의 복구시간 = 10분 + (5분 x 50개) = 260분(4시간20분) 2) 전체 Datafile의 복구시간 = 240분 + (5분 x 50개) = 490 분(8시간 20 분)
- Slides: 61