728x90

db2user님 | 기타 | 2013-03-06 11:00:39


 db2를 기존 시스템에서 백업을 받아서

다른 시스템에서 리스토어 하는 중에 있습니다.

os환경은 모두 window고 백업을 받았던 곳은 c드라이브에 작업 디렉토리(db data)가 있었습니다.

 

그런데 리스토어 하는 시스템에는 d드라이브에 넣고 싶은데,

기존 data가 d드라이브에 있어도 리스토어하고 나면 c로 옮겨집니다.

설치 시 설정에 문제가 있나하여 삭제 후 SQLLIB 위치나 rsp로그파일 생성 위치도 모두 d로 주었는데도 자꾸 c로 옮겨지네요.

 

리스토어 과정에서 새로운 데이터베이스로 리스토어 하여 작업 디렉토리를 D로 설정해주어도 C로 옮겨집니다.

 

데이터베이스 파일 디렉토리가 왜 c드라이브로 가는지,

D드라이브에 지정되도록 하려면 어떻게 해야되는지 물어보고 싶습니다.





pajama 2013-03-06 11:20:53
안녕하세요. 리스토어할때 별도 옵션이 없으면 기존 위치에 파일이 만들어집니다.
데이터베이스 파일 위치를 변경하시려면 redirect 옵션을 사용합니다.
예)
백업 파일이 MOVIES.0.prod.NODE0000.CATN0000.20030909143225.001 라고 했을 때

1. 먼저 redirect 옵션으로 restore 명령을 수행합니다.
db2 restore db movies from /home/prod taken at 20030909143225 redirect

2. 변경할 데이터베이스 파일 위치를 정해줍니다.
db2 set tablespace containers for 0 using (path 'd:tsc_moviests0con1') 
db2 set tablespace containers for 1 using (path 'd:tsc_moviests1con1') 
db2 set tablespace containers for 2 using (path 'd:tsc_moviests2con1') 

3. restore 작업을 계속합니다.
db2 restore db movies continue 

출처:
http://www.ibm.com/developerworks/data/library/techarticle/0211melnyk/0211melnyk.html

바즈라 2013-03-06 14:45:50
위와 같이 REDIRECT 옵션으로 경로 수정된 RESTORE를 수행할 경우 
REDIRECT GENERATE SCRIPT 옵션으로 일단 경로재지정 리스토어 스트립트를 생성해서 사용하는 것이 편리합니다.
생성된 스크립트에서 수정할 항목은 다음과 같습니다.

DBPATH on : 데이터베이스 디렉토리 경로 수정
ON : Automatic Storage Path 수정
NEWLOGPATH : Active Log 경로 수정

만약 Automatic Storage 가 아닌 DMS 또는 SMS 방식으로 테이블스페이스가 사용되는 경우에는 set tablespace containers 명령으로 각각의 컨테이너 경로를 D 드라이브 로 수정해야 합니다. 이 또한 생성된 스크립트에 포함되어 있습니다.

DB2 10.1 을 사용중인 경우 SET STOGROUP PATHS 명령으로 각각의 스토리지 그룹의 경로를 수정할 수 있습니다.

냉정과열정사이. 2013-03-08 17:51:57
리다이렉트 리스토어를 한다해도 DBPATH가 안 옮겨질 때가 있을 것입니다.

그럴 때는 기존 db를 uncatalog하거나 Drop 한 후 수행해야합니다.



728x90

+ Recent posts