IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  Information Management  >

DB2 기초: Redirected Restore를 사용하여 DB2 데이터베이스 복제하기 (한글)

developerWorks
문서 옵션

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.


제안 및 의견
피드백

난이도 : 초급

Roman Melnyk, Staff Information Development, IBM Toronto

2007 년 4 월 10 일

이 글에서 Linux, UNIX, Windows용 DB2를 복제하는 방법을 설명합니다.

© 2002 International Business Machines Corporation. All rights reserved.

본 글은 Linux, UNIX®, Windows®용® DB2® Universal DatabaseTM를 기반으로 합니다.

데이터베이스 복원(restore)은 데이터베이스 백업 이미지를 사용하여 데이터베이스를 재생성 하는 것이다. 하나의 머신에서 또 다른 머신으로 데이터베이스를 복제하는 가장 간단한 방법은 백업 이미지에서 데이터베이스를 복원하는 것이다. 데이터베이스에 사용된 파일 시스템 경로 역시 백업 이미지에 포함된다. 따라서, 소스 시스템에 있는 데이터베이스에 의해 참조되는 파일 시스템과 물리적 장치가 대상 시스템에서와 똑 같은 방법으로 설정되지 않으면 redirected restore 연산을 수행해야 한다.

Redirected Restore 연산은 두 단계의 데이터베이스 복원 프로세스와 테이블 공간 컨테이너 정의 단계로 구성된다.

  1. RESTORE DATABASE 명령을 REDIRECT 옵션과 함께 실행한다.
  2. SET TABLESPACE CONTAINERS 명령을 사용하여 복원된 데이터베이스에 대한 테이블 공간 컨테이너를 지정한다. (DB2는 테이블 공간이 대상 시스템의 어디에 있는지를 알아야 한다.)
  3. RESTORE DATABASE 명령을 다시 실행하여, CONTINUE 옵션을 지정한다.

모든 Redirected Restore 연산이 같은 세션에서부터 실행되어야 한다. 그렇지 않으면, SQL0900N이 리턴되고 복원 연산은 실패하게 된다. 이러한 일이 발생하지 않도록 하는 한 가지 방법은 Redirected Restore 절차의 세 부분을 포함하고 있는 스크립트를 만들어서 실행하는 것이다.

다음 예제를 통해 Windows 또는 UNIX 기반 시스템에서 Redirected Restore 연산을 성공적으로 수행하는 방법을 설명한다. 또 다른 서버에서 백업 이미지를 복원하는 대신, 다른 인스턴스에서 백업 이미지를 복원하는 방법을 설명할 것이다. 원리는 동일하고 상세도 같다.

Windows 예제의 소스 인스턴스는 PROD이다. 대상 인스턴스는 MYINST이다. MYINST에 복원(생성)될 PROD 상의 기존 데이터베이스는 MOVIES이다. MOVIES 데이터베이스는 D 드라이브에 위치한다.

유닉스 예제용 소스 인스턴스는 prod이다. 대상 인스턴스는 myinst이다.

  1. MOVIES 데이터베이스 전체의 백업 이미지를 만든다. Windows에서 BACKUP DATABASE 명령을 실행하기 전에, 현재 인스턴스가 PROD인지를 확인한다.
     
    set DB2INSTANCE=PROD 
    db2start 
    db2 backup db movies 
    

    이 이미지의 타임 스탬프는 20030909143225이다. Windows에서, 이 이미지는 D:\MOVIES.0\PROD\NODE0000\CATN0000\20030909에 위치해 있다. DB2는 이 디렉토리의 하위 디렉토리를 만들어서, 이곳에서 BACKUP DATABASE 명령이 실행되도록 한다. 유닉스 예제에서, 이미지는 /home/prod에 위치해 있다.

    Windows에서, 하위 디렉토리 이름은 다음과 같다.

     
    <database_alias.backup_type>\<instance_name>\<node_number>\ 
    <catalog_node_number>\<date> 
     
    

    이 하위 디렉토리 트리 안에, 실제 백업 이미지를 나타내는 파일(143225.0)이 있을 것이다. 이 파일 이름은 백업이 되었던 시간을 나타내고 있다.

    주: 백업 이미지를 또 다른 머신에 재배치 하려면, 대상 머신에 위 경로를 만들고(PROD 대신 대상 인스턴스 이름으로 대체함), 백업 이미지(이 경우 143225.0)를 그 디렉토리에 복사한다. 또한 압축 툴을 사용하여 백업 이미지를 패키징 하고, 전송을 위한 디렉토리 트리를 관리한다.

    유닉스 예제에서, 실제 백업 이미지 이름은 다음과 같다.

     
    MOVIES.0.prod.NODE0000.CATN0000.20030909143225.001 
    

    이 이름의 컴포넌트는 다음과 같다.

     
    <database_alias>.<backup_type>.<instance_name>.<node_number>. 
    <catalog_node_number>.<timestamp>.<sequence_number> 
    

  2. Windows에서 MYINST를 시작한 다음 Redirected Restore 연산을 실행한다.
     
    set DB2INSTANCE=MYINST 
    db2start 
    db2 restore db movies from d taken at 20030909143225 redirect 
    

    RESTORE DATABASE 명령이 백업 이미지를 포함하고 있는 디렉토리가 아닌 다른 디렉토리에서 실행된다면 FROM 매개변수가 지정되어야 한다.

    유닉스 기반 시스템에서, 다음 명령어를 실행하고, myinst로 로그인 한다.

     
    db2 restore db movies from /home/prod taken at 20030909143225 redirect 
    

  3. 복원된 데이터베이스와 제휴된 세 가지 기본 테이블 공간에 대해 새로운 테이블 공간 컨테이너를 정의한다. (SYSCATSPACE, TEMPSPACE1, USERSPACE1). Windows에서 다음을 실행한다.
     
    db2 set tablespace containers for 0 using (path 'd:\tsc_movies\ts0con1') 
    db2 set tablespace containers for 1 using (path 'd:\tsc_movies\ts1con1') 
    db2 set tablespace containers for 2 using (path 'd:\tsc_movies\ts2con1') 
    

    유닉스 기반 시스템에서 다음을 실행한다.

     
    db2 "set tablespace containers for 0 using (path 'ts0con1')" 
    db2 "set tablespace containers for 1 using (path 'ts1con1')" 
    db2 "set tablespace containers for 2 using (path 'ts2con1')" 
    

    LIST TABLESPACES SHOW DETAIL 명령을 사용하여 소스 데이터베이스에 있는 모든 테이블 공간에 있는 정보를 얻는다. 이렇게 하면 컨테이너가 대상 데이터베이스에서 모든 테이블 공간에 대해 설정되었는지를 확인할 수 있다.

  4. Redirected Restore 연산을 완료한다.
     
    db2 restore db movies continue 
    

  5. 복원된 데이터베이스 목록이 올바르게 되었는지, 여러분이 정의했던 테이블 공간 컨테이너가 복원된 데이터베이스와 연결되었는지를 확인한다.
     
    db2 list db directory 
    db2 connect to movies 
    db2 list tablespace containers for 0 
    db2 list tablespace containers for 1 
    db2 list tablespace containers for 2 
    db2 connect reset 
    db2 terminate 
    db2stop 
    

소셜 북마크

mar.gar.in mar.gar.in
digg Digg
del.icio.us del.icio.us
Slashdot Slashdot

기사의 원문보기



참고자료



필자소개

Photo: Roman B. Melnyk

Roman B. Melnyk 박사는 DB2 Information Development 팀 멤버로서, 데이터베이스 관리, DB2 유틸리티, SQL 전문가이다. IBM에서 11년 이상을 근무하면서, 다양한 DB2 관련 서적, 아티클 등을 집필했다. DB2 Version 8: The Official Guide, DB2: The Complete Reference, DB2 Fundamentals Certification for Dummies, DB2 for Dummies의 공동 저자이다. 최근에는 Apache Derby -- Off to the Races를 편집했다.




기사에 대한 평가


보다 나은 서비스를 제공하기 위함이오니 잠시 짬을 내어 이 양식을 제출하여 주십시오.



아니오잘 모르겠음
 


 


12345
 



위로


developerWorks 콘텐트를 다른 사이트에 전재하기:
developerWorks 콘텐트에 대한 저작권은 IBM에 있습니다. IBM의 서면 허가나 원본 저자의 허락이 없이는 전재를 금합니다. 저희 콘텐트를 전재하시려면 IBM developerWorks 담당자 에게 문의하십시오.

    IBM 소개개인정보 보호정책문의