Allow reverse scans allow reverse scnas. allow reverse scans allow reverse scnas.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
SQL 언어 SQL.
DB2 Information Management DB2 UDB CLP Command Summary.
소리가 작으면 이어폰 사용 권장!.
데이터 모델링 방법론 2003년 03월.
DRIMS-Cloud 소개.
PL/SQL.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
오라클 데이터베이스 성능 튜닝.
DataBase 기본 교육 신입사원용 최지철.
Database & Internet Computing Laboratory 한 양 대 학 교
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
제 5 장 인덱스 생성 및 관리.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
APM 실습 (MySQL).
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
JDBC 프로그래밍 이수지 이동주 1.
You YoungSEok 고급 SQL You YoungSEok
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
MySQL performance Xhark 김재홍.
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
Toad for Oracle 설치 방법.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Chapter 01 데이터베이스 시스템.
Supported Protocol 다음의 예문들은 CLP를 사용하는 방법들을 보여줍니다. 명령어들은 Windows의 DB2 명령창 프롬프트에서 실행합니다. 12. CLP 에서 +c 옵션을 이용하면 autocommit 모드가 사용되지 않으므로.
11장. 데이터베이스 서버 구축과 운영.
오라클 데이터베이스 성능 튜닝.
kHS 데이터베이스 테이블 및 인덱스 kHS.
기초 T-SQL.
MySQL 기본 사용법.
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
14장 뷰.
Chapter 05 데이터베이스 프로그래밍.
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
9장 테이블 생성 및 변경, 삭제하기(DDL).
SQL.
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
1. Log in WCMS에서 사용하는 ID와 PW를 동일하게 사용.
고급 T-SQL.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
13장 무결성 제약조건.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
View(뷰) 1 가상 테이블(Virtual Relation)
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
기본적인 SELECT문 작성.
8장 테이블의 생성 및 변경 정인기.
                              데이터베이스 설계 및 실습 #4 - loadcompany 만들기 한국외국어대학교 DaPS 연구실                              
12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
06. SQL 명지대학교 ICT 융합대학 김정호.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
상세 개념적 모델링. 상세 개념적 모델링 정규화를 하는 이유 데이터의 중복성 제거 데이터 모형의 단순화 Entity, Attribute의 누락 여부검증 데이터 모형의 안전성 검증.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 2 장종원
Stored program 장종원
Data Base Mysql.
제 5 장 MariaDB인덱스 생성 및 관리.
Presentation transcript:

allow reverse scans allow reverse scnas

1. dbxxxxxx에 접속하십시오. db2 connect to dbxxxxxx 2. userxxxxxx 라는 스키마를 생성한 후, user01 이라는 사용자에게 그 사용 권한을 부여하십시오. db2 create schema userxxxxxx authorization user01 3. 스키마 KES 에 대한 정의를 확인하십시오. db2 "select * from syscat.schemata where schemaname=‘USERXXXXXX'" 4. 테이블 userxxxxxx.dept와 userxxxxxx.empl을 생성하기 위한 DDL문을 작성하여 xxxxxx.db2 라는 파일로 저장합니다. 각 DDL문은 세미콜론(; 부호)로 구별합니다. create table userxxxxxx.dept ( id smallint not null, name varchar(20) not null, man smallint, budget int ) in ts04_xxxxxx; create table userxxxxxx.empl ( name varchar(30) not null, sex char(1), mydept smallint, hiredate date, salary smallint, email varchar(30) not null, resume clob(1K) not logged ) in ts01_xxxxxx index in ts02_xxxxxx long in ts03_xxxxxx; 5. xxxxxx.db2 파일을 이용하여 테이블 userxxxxxx.dept와 userxxxxxx.empl을 생성하십시오. db2 -svtf xx.db2 6. userxxxxxx.dept 테이블에 대한 인덱스를 다음과 같이 생성하십시오. db2 "create unique index userxxxxxx.dept_X on userxxxxxx.dept (id) include (name) cluster"

7. userxxxxxx.empl 테이블에 대한 인덱스를 다음과 같이 생성하십시오. db2 "create unique index userxxxxxx.empl_X on userxxxxxx.empl (id) cluster" db2 "create index userxxxxxx.empl_A on userxxxxxx.empl (mydept)" 8. userxxxxxx.dept 테이블에 대해 다음과 같이 기본키를 추가하십시오. db2 "alter table userxxxxxx.dept add constraint dept_pk primary key (id)" 9. userxxxxxx.empl 테이블에 대해 다음과 같이 제약 조건들을 추가하십시오. db2 "alter table userxxxxxx.empl add constraint empl_pk primary key (id)" db2 "alter table userxxxxxx.empl add constraint empl_uk unique (email)" db2 "alter table userxxxxxx.empl add constraint empl_fk foreign key (mydept) references userxxxxxx.dept on delete restrict" db2 "alter table userxxxxxx.empl add constraint empl_cc check (sex in (‘M’,'F’))" 10. 테이블 kes.empl 에 관한 정보를 확인하십시오. db2 describe table userxxxxxx.empl db2 "select * from syscat.tables where tabschema=‘USERxxxxxx'and tabname ='EMPL'" db2 "select * from syscat.references where tabschema=‘USERxxxxxx'and tabname ='EMPL'" db2 "select * from syscat.colchecks where tabschema=‘USERxxxxxx'and tabname ='EMPL'" db2 "select * from syscat.checks where tabschema=‘USERxxxxxx'and tabname ='EMPL'" db2 "select * from syscat.keycoluse where tabschema=‘USERxxxxxx'and tabname ='EMPL'" 11. 테이블 userxxxxxx.empl의 인덱스에 관한 정보를 확인하십시오. db2 describe indexes for table userxxxxxx.empl show detail db2 "select * from syscat.indexes where tabschema=‘USERxxxxxx'and tabname ='EMPL'" 12. 아래의 insert 문을 실행하십시오. db2 "insert into userxxxxxx.dept values (1,’총무부’,10,100), (2,’기획부’,5,250), (3,’개발부’,20,140)" 13. 아래의 insert 문을 실행하십시오. db2 "insert into userxxxxxx.empl values (1,’김은숙’,’F’,3,’2001-01-01’,250,’kes@kr.ibm.com’,’DB2 UDB POST’)" db2 "insert into userxxxxxx.empl values (2,’신유리’,’F’,1,’2002-02-23’,170,’yuri@kr.ibm.com’,null)" 14. userxxxxxx.empl 테이블에 대해 아래의 뷰를 생성하십시오. db2 "create view empl_v1 as select * from userxxxxxx.empl where salary > 200 with check option" db2 "create view empl_v2 as select a.name employee, b.name department from userxxxxxx.empl a, userxxxxxx.dept b where a.mydept = b.id"

15. 아래의 update 문을 실행하십시오. 두 번째 update 문은 실패하는 것이 정상입니다. db2 "update empl_v1 set salary = 220 where id = 1" db2 "update empl_v1 set salary = 190 where id = 1" 16. 뷰 empl_v1, empl_v2의 정의를 확인하십시오. db2 "select * from syscat.tables where tabname like'EMPL_V%'" db2 "select * from syscat.views where viewname like'EMPL_V%'" 17. 아래와 같이 알리아스(별명)를 생성하십시오. db2 create alias empl for userxxxxxx.empl db2 create alias empl_a1 for empl db2 create alias empl_a2 for empl_v1 db2 create alias dept for kes.dept 18. 알리아스 empl에 대해 아래의 select 문을 실행하십시오. db2 "select * from empl" 19. 알리아스 empl의 정의를 확인하십시오. db2 "select * from syscat.tables where type ='A'and tabname like'EMPL%'" 20. mydb에 생성된 테이블의 목록을 확인하십시오. db2 list tables db2 list tables for all db2 list tables for system db2 list tables for user db2 list tables for schema userxxxxxx 21. 임의의 파일을 이용하여 4번과 동일한 방법으로 테이블 update_list 를 생성하십시오. create table update_list ( id smallint not null, name varchar(20) not null, osalary smallint, nsalary smallint, ts timestamp in ts04_xxxxxx;

22. 임의의 파일을 이용하여 4번과 동일한 방법으로 트리거 empl_t1을 생성하십시오. create trigger empl_t1 after update of salary on empl referencing old as o new as n for each row mode db2sql when ( n.salary > o.salary * 1.2 ) insert into update_list values ( o.id, o.name, o.salary, n.salary, current timestamp ); 23. 테이블 update_list의 내용을 확인하십시오. db2 "select * from update_list" 24. 아래의 update 문을 실행하십시오. db2 "update empl set salary = salary + 60 where id = 1" 25. 트리거 empl_t1의 정의를 확인하십시오. db2 "select * from syscat.triggers where trigname ='EMPL_T1'" 26. 떼이터베이스 dbxxxxxx 에 생성된 모든 오브젝트에 대한 DDL 문을 확인하십시오. db2look –d dbxxxxxx –e 27. 테이블 kes.empl 에 대한 DDL 문을 확인하십시오. db2look –d dbxxxxxx –e –z userxxxxxx –t empl 28. 뷰 empl_v1 에 대한 DDL 문을 확인하십시오. db2look –d dbxxxxxx –e -v empl_v1

1. dbxxxxxx에 접속하십시오. db2 connect to dbxxxxxx 2. DEL 형식의 파일인 x1.del, x2.del을 생성하십시오. 데이터는 2건입니다. db2 "export to x1.del of del select * from empl" db2 "export to x2.del of del modified by coldel! select * from empl" 3. WSF 형식의 파일 x3.wsf를 생성하십시오. 데이터는 2건입니다. db2 "export to x3.wsf of wsf messages x3.msgs select * from empl" 4. IXF 형식의 파일 x4.ixf, x5.ixf를 생성하십시오. 데이터는 2건입니다. db2 "export to x4.ixf of ixf select * from empl where id < 100" db2 "export to x5.ixf of ixf method N (c1,c2,c3,c4,c5,c6,c7,c8) select * from empl where id < 100" 5. 조인을 이용하여 IXF 형식의 파일인 x6.ixf를 생성하십시오. 데이터는 2건입니다. db2 "export to x6.ixf of ixf select e.id, e.name, d.name from empl e, dept d where e.mydept = d.id" 6. 데이터베이스 sample 에 접속하여 IXF 형식의 파일인 x7.ixf과 DEL 형식의 파일인 x8.del을 생성하십시오. db2 connect to sample mkdir C:\educ\mylob db2 "export to x7.ixf of ixf select * from emp_photo where empno ='zzzzzz’" db2 "export to x8.del of del lobs to C:\educ\mylob\ modified by lobsinfile select * from emp_photo"

1. dbxxxxxx에 접속하십시오. db2 connect to dbxxxxxx 2. IXF 형식의 파일인 x5.ixf 를 이용하여 empl2 테이블을 생성하십시오. empl2 테이블의 컬럼명과 데이터가 2건인 것을 확인하십시오. db2 "import from x5.ixf of ixf method N (c1,c2,c3,c6,c5,c4,c7,c8) replace_create into empl2" db2 "select * from empl2" 3. IXF 형식의 파일인 x4.ixf를 이용하여 empl2 테이블을 다시 생성하십시오. 데이터가 2건인 것을 확인하십시오. db2 drop table empl2 db2 "import from x4.ixf of ixf create into empl2" 4. DEL 형식의 파일인 x1.del을 이용하여 empl2 테이블에 데이터를 추가하십시오. 데이터는 4건이며, C4와 C6의 값을 주의해서 확인하십시오. db2 "import from x1.del of del messages x1.msgs insert into empl2" 5. DEL 형식의 파일인 x1.del을 이용하여 empl2 테이블에 데이터를 다시 추가하십시오. 데이터는 6건이며, C4와 C6의 값을 주의해서 확인하십시오. db2 "import from x1.del of del method P (1,2,3,6,5,4,7,8) messages x1.msgs insert into empl2" 6. DEL 형식의 파일인 x2.del 을 이용하여 empl2 테이블에 데이터를 대체하십시오. 데이터는 1건입니다. db2 "import from x2.del of del modified by coldel! restartcount 1 replace into empl2" 7. WSF 형식의 파일인 x3.wsf 를 이용하여 empl2 테이블에 데이터를 추가하십시오. empl2의 데이터는 3건입니다. db2 "import from x3.wsf of wsf insert into empl2" 8. 데이터 파일인 x9.asc를 다음과 같이 생성하십시오. #은 공백 문자 또는 임의의 문자를 의미합니다. 91조용필#M##12001-04-07100#phil@mymail.com 92심수봉#F##22001-01-02200#bong@mymail.com 9. ASC 형식의 파일인 x9.asc 를 이용하여 empl2 테이블의 기존 데이터를 입력 파일의 데이터를 추가하십시오. empl2의 데이터는 5건입니다. db2 "import from x9.asc of asc method L (1 2,3 8,10 10,13 13,14 23,24 26,28 46) insert into empl2" 10. x7.ixf, x8.del을 이용하여 emp_photo2 테이블을 생성하고 데이터를 추가하십시오. db2 "import from x7.ixf of ixf create into emp_photo2" db2 "import from x8.del of del lobs from C:\educ\mylob\ modified by lobsinfile insert into emp_photo2" db2 "select * from emp_photo2"

1. dbxxxxxx에 접속하십시오. db2 connect to dbxxxxxx 2. empl 테이블을 위한 예외 테이블인 emplexcp를 생성하십시오. db2 "create table emplexcp like empl" db2 "alter table emplexcp add column ts timestamp add column msg clob(32k)" 3. 데이터 파일인 x0.dat를 다음과 같이 생성하십시오. vi x0.dat 11,"이문세","M", 1, "2002-03-07", 100, "lms@mymail.com" 11,"김경호","M", 2, "2001-04-25", 200, "kkh@mymail.com" 13,"이기찬","M", 1, "2002-02-19", 300, "lkc@mymail.com" 14,"김현정","F", 3, "2002-07-17", 400, "lkc@mymail.com" 15,"김건모","m" ,2, "2001-08-02", 500, "kkm@mymail.com" 16,"제이","F", 1, "2000-05-08", 120, "j@mymail.com" 17,"양희은","F", 2, "2002-10-20", "130", "yhe@mymail.com" 18, ,"M", 2, "2001-11-29", 140, "god@mymail.com" 19,"신화","M", 4 , "2001-04-07", 150, "sh@mymail.com" "20","엄정화","F", 1, "2001-04-28", 160, "ejw@mymail.com" 4. 만약 REPLACE 모드를 이용한다면 백업을 받아두십시오. 백업의 옵션은 로깅 정책에 따라 다릅니다. 지금은 필요하지 않습니다. db2 "backup db dbxxxxxx" 또는 db2 "backup db dbxxxxxx tablespace (ts01_xxxxxx,ts02_xxxxxx,ts03_xxxxxx)" 5. x0.dat를 이용하여 empl 테이블에 데이터를 로드하십시오. db2 "load from x0.dat of del modified by coldel, dumpfile=C:\educ\dump savecount 5 messages x0.msgs insert into empl for exception emplexcp" 6. load할 데이터가 많은 경우에는 load 명령어가 실행되는 동안 다른 세션에서 진행 정도를 확인할 수 있습니다. db2 load query table empl summaryonly 7. load 명령어를 실행한 후, 메시지 파일의 내용을 확인하십시오. 2건 (8,10번째)의 데이터가 load되지 못한 것을 확인하십시오. type x0.msgs 8. dump 파일의 내용을 확인하십시오. 메시지 파일에 기록된 이유로 load 되지 못한 2건의 데이터가 있습니다. type C:\educ\dump\dump*

9. load 명령어를 실행한 후, 예외 테이블의 내용을 확인하십시오. 2건 (2,4번째)의 데이터가 조회됩니다. db2 "select * from emplexcp" 10. empl 테이블의 내용을 확인하십시오. db2 "select * from empl" 11. 만약 테이블의 액세스가 허용되지 않고, 백업 보류 상태 (Backup Pending)가 되었다면 전체 데이터베이스 또는 empl이 속한 테이블 공간을 백업하십시오. 지금은 Circular 로깅 모드이므로 백업 보류 상태가 되지 않습니다. db2 "backup db dbxxxxxx" 또는 db2 "backup db dbxxxxxx tablespace (ts01_xxxxxx,ts02_xxxxxx,ts03_xxxxxx)" 12. empl 테이블의 내용을 다시 확인하십시오. 13. 만약 SQL0668N으로 액세스가 허용되지 않고, 점검 보류 상태 (Check Pending)가 되었다면, empl 테이블의 제약 조건들을 점검하는 명령어를 실행하십시오. db2 ? SQL0668N db2 "select const_checked from syscat.tables where tabname ='EMPL'" db2 "set integrity for empl immediate checked for exception in empl use emplexcp" 14. emplexcp 테이블을 확인하십시오. 데이터는 4 건(2,4,5,9번째) 입니다. msg 컬럼의 값을 확인하십시오. db2 "select id, name, substr(msg,1,30) from emplexcp" 15. empl 테이블을 확인하십시오. 데이터는 4 건(1,3,6,7번째) 이 추가되어 6 건입니다. 6번째 데이터의 salary 컬럼이 null 값인 것을 확인하십시오. db2 "select id, name, salary from empl" 16. 만약 로드 작업을 실패했다면 다음과 같이 재시작하십시오. 성공한 경우는 하지 마십시오. db2 "load from x0.dat of del savecount 5 messages x0.msgs restart into empl for exception emplexcp" 17. 만약 로드 작업을 실패한 경우 재시작을 원하지 않는다면 다음과 같이 종료하십시오. 성공한 경우는 하지 마십시오. 로드 작업이 실패한 경우에는 반드시 restart 또는 terminate 옵션을 이용한 처리가 필요합니다. db2 "load from x0.dat of del savecount 5 messages x0.msgs terminate into empl for exception emplexcp"

. . . end of logs minimum timestamp without rollingforward Archived Log . . . 2 3 4 1 without rollingforward minimum timestamp point in time end of logs

1. 오프라인 백업을 이용한 리스토어 복구입니다. dbxxxxxx에 접속하십시오. db2 connect to dbxxxxxx 2. empl 테이블의 데이터 건수를 확인하십시오. db2 "select count(*) from empl" 3. dbxxxxxx를 오프라인 모드로 백업하십시오. 그 백업 이미지 파일을'BACKUP-A'라고 하고, 백업 이미지가 생성된 시간 소인은 2002-05-01-12:00:00 라고 가정하겠습니다. 백업 이미지 파일 이름에 반영되는 시간 소인은 백업이 시작된 시점입니다. db2 connect reset db2 backup db dbxxxxxx 4.'BACKUP-A'에 대한 정보를 확인하십시오. db2 list backup all for dbxxxxxx 5. dbxxxxxx에 접속하십시오. 6. empl 테이블의 자료를 아래와 같이 삭제하십시오. id 컬럼의 값이 1,2,11인 데이터가 삭제됩니다. db2 "delete from empl where id < 13" 7. empl 테이블의 데이터 건수를 확인하십시오. 3 건의 데이터가 삭제되었으므로 3 건의 데이터가 남게 됩니다. db2 select count(*) from empl 8. 데이터베이스 mydb에 대한 접속을 종료하십시오. 9.'BACKUP-A' 이미지 파일을 이용하여 데이터베이스 mydb 를 복원하십시오. db2 restore db dbxxxxxx 10. mydb에 접속하여 empl 테이블의 데이터 건수가 2번의 실행 결과와 일치하는지 확인하십시오. 11. 데이터베이스 dbxxxxxx에 대한 접속을 종료하십시오.

1. 오프라인 백업을 이용한 롤포워드 복구 과정입니다. 롤포워드 복구를 위해서 아카이브 로깅 정책이 필요합니다 1. 오프라인 백업을 이용한 롤포워드 복구 과정입니다. 롤포워드 복구를 위해서 아카이브 로깅 정책이 필요합니다. dbxxxxxx의 로깅 정책을 아카이브 로깅으로 바꾸십시오. db2 update db cfg for dbxxxxxx using logretain on 2. mydb에 접속하십시오. 아카이브 로깅 정책으로 변경되었으므로 최초의 시작점이 되는 백업본을 생성하기 위해서 데이터베이스에 대한 오프라인 백업이 요구됩니다. db2 connect to dbxxxxxx 3. 백업 보류 상태를 풀기 위해 dbxxxxxx를 오프라인 모드로 전체 백업하십시오. 그 백업 이미지 파일을'BACKUP-B'라고 하고, 그 백업 이미지가 생성된 시간 소인은 2005-05-01-15:00:00 라고 가정하겠습니다. db2 backup db mydb 4. dbxxxxxx에 접속한 후, empl 테이블의 현재 데이터 건수가 6 건인 것을 확인하고, 시간 소인을 기록하십시오. 이 시점을'TS-A'라고 하고, 현재의 시간 소인을 2005-05-01-15:20:00 이라고 가정하겠습니다. db2 "select count(*), current timestamp LOCAL, current timestamp – current timezone ISO from empl" 5. 다음과 같이 3 건의 자료를 삭제하십시오. 현재의 데이터가 3 건인 것을 확인하고, 시간 소인을 기록하십시오. 이 시점을'TS-B'라고 하고, 현재의 시간 소인을 2005-05-01-15:40:00 이라고 가정하겠습니다. db2 "delete from empl where id <13" 6. 오프라인 모드로 dbxxxxxx를 전체 백업하십시오. 그 백업 이미지 파일을'BACKUP-C'라고 하고, 이 백업 이미지가 생성된 시간 소인은 2002-05-01-16:00:00 이라고 가정하겠습니다. db2 backup db dbxxxxxx 7. 다시 1 건의 자료를 더 삭제하십시오. 현재의 데이터가 2 건인 것을 확인하고, 시간 소인을 기록하십시오. 이 시점을'TS-C'라고 하고, 현재의 시간 소인을 2005-05-01-16:20:00 이라고 가정하겠습니다. db2 "delete from empl where id <15" 8. 다시 1 건의 자료를 더 삭제하십시오. 현재의 데이터가 1 건인 것을 확인하고, 시간 소인을 기록하십시오. 그 시각을'TS-D'라고 하고, 현재의 시간 소인을 2005-05-01-16:40:00 이라고 가정하겠습니다. db2 "delete from empl where id <17" 9. 이 시점에서 데이터베이스가 손상되었다고 가정하겠습니다. 6번에서 생성된'BACKUP-C'이미지 파일를 이용하여 dbxxxxxx 데이터베이스를 복원하십시오. taken at 옵션에는 20050501160000 대신에 6번에서 생성된 백업 이미지 파일의 이름에 있는 실제 시간 소인을 이용하십시오. db2 connect reset db2 restore db dbxxxxxx taken at 20050501160000

10. dbxxxxxx에 접속하십시오. db2 connect to dbxxxxxx 10. 롤포워드 보류 상태에 걸렸다면 로그 파일을 적용해야 합니다. 이 과정은 아카이브 상태로 보관된 로그 파일들의 일부를 현재 로그 디렉토리에 옮겨 놓은 후에 여러 번 반복하여 원하는 시점까지 반복할 수 있습니다. 데이터베이스를 손상 직전의 시점인 8번의'TS-D'시점까지 복구하기 위하여 최근까지의 로그 파일을 적용하십시오. db2 rollforward db dbxxxxxx to end of logs 11. dbxxxxxx에 다시 접속하십시오. 12. 로그의 적용을 중지한다는 옵션을 사용하지 않았으므로 데이터베이스는 아직도 롤포워드 보류 상태에 걸려있게 됩니다. 더 이상 적용할 로그 파일이 없다면, 로그 파일의 적용을 중지하고 복구를 종료하십시오. db2 rollforward db dbxxxxxx stop 13. dbxxxxxx에 다시 접속하십시오. 14. empl 테이블의 현재 데이터 건수를 확인하십시오. 8번에서 기록한 데이터의 건수와 동일한 1건인 것을 확인하십시오. db2 "select count(*) from empl" 15. 다시'BACKUP-B'이미지 파일을 이용하여 데이터베이스를 복원 후, 'TS-B'시점까지의 로그 파일만 적용하여 empl 테이블의 데이터 건수를 확인하십시오. 5번에서 기록한 데이터의 건수와 동일한 3건이 된 것을 확인하십시오. taken at 옵션에는 3번에서 생성된 백업 이미지 파일의 이름에 있는 실제 시간 소인을 이용하십시오. 롤포워드시 to 옵션에는 5번에서 기록해 둔 LOCAL 또는 ISO 시각을 이용하십시오. db2 connect reset db2 restore db dbxxxxxx taken at 20050501150000 db2 rollforward db dbxxxxxx to 2005-05-01-15.40.00 using local time and stop (또는 db2 rollforward db mydb to 2005-05-01-06.40.00 and stop ) 16. 다시'BACKUP-B'이미지 파일을 이용하여 데이터베이스를 복원 후, 로그 파일을 전혀 적용하지 않았을 때, empl 테이블의 데이터 건수를 확인하십시오. 4번에서 기록한 데이터의 건수와 동일한 6건인 것을 확인하십시오. taken at 옵션에는 3번에서 생성된 백업 이미지 파일의 이름에 있는 실제 시간 소인을 이용하십시오. db2 restore db dbxxxxxx taken at 20020501150000