본문 바로가기

Note

[복구] 경로재지정 복구

데이터가 삭제되었거나, 동일한 H/W환경에 백업 이미지로 테스트 DB 환경을 만들어야 되는 경우 db의 경로를 다르게 하여 restore를 해야 할 필요가 생긴다. 이럴 경우 테이블 공간 혹은 스토리지 그룹의 경로를 일일이 적어주는 것은 불편할 것이다.

 

경로재지정 복구 작업을 위해 db2는 해당 필요한 script를 만들어 준다. (V9.1 부터 지원된다)

 

-- script 추출

db2 “restore db 디비명 from 백업_경로 taken at 백업_시간소 redirect generate script 경로재지정_복구.clp

-- 추출 script 예
RESTORE DATABASE SAMPLE
-- USER '<username>'
-- USING '<password>'
FROM '/home/jseifert/backups' TAKEN AT 20050906194027
-- DBPATH ON '<target-directory>'
INTO SAMPLE
-- NEWLOGPATH '/home/jseifert/jseifert/NODE0000/SQL00001/SQLOGDIR/'
-- WITH <num-buff> BUFFERS
-- BUFFER <buffer-size>
-- REPLACE HISTORY FILE
-- REPLACE EXISTING REDIRECT
-- PARALLELISM <n>
-- WITHOUT ROLLING FORWARD
-- WITHOUT PROMPTING

SET TABLESPACE CONTAINERS FOR 0
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( PATH 'SQLT0000.0' );

SET TABLESPACE CONTAINERS FOR 1
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( PATH 'SQLT0001.0' );

SET TABLESPACE CONTAINERS FOR 2
-- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( FILE '/tmp/dms1' 1000 , FILE '/tmp/dms2' 1000 );

RESTORE DATABASE SAMPLE CONTINUE;

 

DB이름, DB 경로, 테이블공간 경로 등 여러 경로를 원하는 방식으로 변경하여 복구 작업을 진행하면 된다.

 

과거 V8에서는 해당 script를 일일이 만들다 보면 신택스 오류가 발생하여 script 만드는 데 시간이 많이 소요되었다.

(운영체제에 따라 시스템 테이블 공간은 지정해주지 않아도 알아서 경로재지정이 복구가 진행되기도 했었다.)

 

많이 쓰이는 기능은 아니나, 지워진 데이터를 찾아내기 위해서 혹은 공간 부족으로 다른 곳으로 경로를 변경해야 되는 경우가 있을 때

 

이 방법을 쓰면 작업 진행에 도움이 될 것 같다.

'Note' 카테고리의 다른 글

[보안] SSL 설정  (0) 2014.06.18
[관리] db2gcf  (0) 2014.05.19
[관리] Backup Pending 풀기  (0) 2014.03.31
[구성] Federation MS-SQL Server  (0) 2014.03.20
[성능] Actual Section & db2caem  (0) 2014.02.28