2011년 12월 11일 일요일

DB2 High Availability Disaster Recovery로 장애 예방

DB2의 High Availability Disaster Recovery를 사용하여 데이터베이스 장애 예방하기
* 출처: http://www.kdug.kr/

관리 | 2010-05-01 20:49:40

Data Studio 및 Optim Database Administrator를 사용하여 DB2 HADR 구성하기


IBM Data Studio 또는 Optim™ Database Administrator를 사용하여 DB2® High Availability Disaster Recovery를 구성하는 방법에 대해 알아봅니다. 먼저 이 기사에서는 기본 데이터베이스와 대기 데이터베이스를 둘 다 구성하는 방법, 로깅 유형을 구성하는 방법 및 기본 데이터베이스를 백업하는 방법을 포함하여 모든 단계에 대해 설명합니다. 그런 다음 설정을 실행하기 전에 생성되는 모든 명령을 미리보는 방법에 대해 알아봅니다. 마지막으로 HADR 환경을 시작하고 모든 단계가 예상대로 실행되었는지 확인합니다.

시작하기 전에


DB2 High Availability Disaster Recovery 소개하기

DB2 HADR(High Availability Disaster Recovery)은 소스 데이터베이스(기본)의 데이터베이스 변경사항을 대상 데이터베이스(대기)에 복제하여 데이터베이스 사이트 장애에 대한 고가용성 솔루션을 제공하는 DB2 기능이다. HADR은 기본 데이터베이스의 로그 데이터를 대기 데이터베이스에 제공하고 롤 포워드를 사용하여 지속적으로 로그 데이터를 대기 사이트에 적용하여 데이터 손실을 예방한다. 기본 사이트에 심각한 하드웨어, 네트워크 또는 소프트웨어 장애가 발생하는 경우 대기 사이트는 기본 사이트의 장애를 수리하는 데 걸리는 시간보다 훨씬 빠른 시간 내에 데이터베이스 서버 조작을 인계받을 수 있다. DB2에는 사용할 수 있는 다른 고가용성 솔루션도 있지만 DB2 HADR은 DB2 자체에 완전히 포함된 기능이므로 추가적인 하드웨어 또는 소프트웨어 솔루션이 필요하지 않다.

참고: DB2 9.7.1부터 DB2는 대기 데이터베이스에 대해 읽기 조작을 지원한다. 이로 인해 사용자는 읽기 전용 워크로드를 대기 데이터베이스에 직접 이동하여 기본 데이터베이스의 주기에 여유를 제공할 수 있기 때문에 성능에 상당한 도움이 될 수 있다.


Data Studio 및 Optim Database Administrator 소개하기

IBM Data Studio는 DB2(및 어느 정도까지는 Informix® Dynamic Database)에 대한 기본 데이터베이스 관리 및 데이터베이스 개발 기능을 제공하는 데이터베이스 라이센스와 함께 제공되는 무료 도구이다. DB2 9.5부터 Data Studio는 Developer Workbench를 포함한 이전 도구를 대체했다. Data Studio는 DB2 제어 센터의 기본 기능 중 일부도 제공한다. 저장 프로시저 및 사용자 정의 함수를 포함한 루틴의 테스트, 디버그 및 전개 기능과 함께 Data Studio는 다음과 같은 주요 데이터베이스 및 오브젝트 관리 기능도 포함하고 있다.

l DB2 인스턴스 관리(시작 및 중지, 정지, 구성 매개변수)

l 데이터베이스 관리 및 복구
l DB2 또는 Informix 데이터 소스에 대한 연결 및 데이터 오브젝트와 해당 특성 찾아보기
l 편집기 및 마법사를 사용하여 데이터 오브젝트 작성 및 변경
l 데이터 오브젝트 및 권한 ID에 대한 권한 수정
l 데이터베이스에서 데이터 오브젝트 제거
l 변경의 영향 분석
l 테이블의 데이터 관리(재구성, 가져오기 및 내보내기 포함)
l 데이터 백업 및 복구
l 데이터 다이어그램을 사용하여 데이터 오브젝트 간 관계 시각화 및 인쇄
l 데이터베이스 연결 가져오기 및 내보내기
l 자동 유지보수 및 로깅 구성
l 패키지 리바인드
l 단일 쿼리에 대한 인덱스 어드바이스 가져오기(독립형 패키지 전용)
l pureScale 멤버 구성(독립형 패키지 전용)

Data Studio는 IDE(Integrated Development Environment) 패키지와 독립형 패키지로 제공된다. 독립형 패키지는 공간을 적게 차지하며 이 튜토리얼을 위해 필요한 모든 항목을 포함하고 있다. 복잡한 데이터베이스 스키마 변경사항을 관리하는 데 필요한 고급 기능을 포함하고 있는 유료 오퍼링인 Optim Database Administrator도 사용할 수 있다. Optim Database Administrator에 포함된 추가 기능은 다음과 같다.


l 데이터베이스 오브젝트 및 데이터 복사하여 붙여넣기

l 스키마 변경 보고서 생성하기
l 관리 및 변경 스크립트를 CLP(Command Line Processor) 스크립트로 내보내기
l 실행 취소 스크립트 생성하기

이 튜토리얼의 경우 Data Studio와 Optim Database Administrator 중 아무거나 사용할 수 있다.
이 튜토리얼의 정보

Linux, UNIX 및 Windows용 DB2의 HADR(High-Availability Disaster Recovery) 기능을 사용하면 데이터 손실을 예방할 수 있다. Data Studio 또는 Optim Database Administrator를 사용하여 설정을 구성하면 프로세스가 상대적으로 간단해진다. 이 튜토리얼에서는 Data Studio 독립형 패키지를 사용하여 HADR 설정을 구성하고 실행하는 방법에 대해 살펴본다. Optim Database Administrator 또는 Data Studio IDE를 대신 사용할 수도 있다.

목표

이 튜토리얼의 목표는 Data Studio 또는 Optim Database Administrator를 사용하여 DB2 HADR을 설정하는 프로세스에 대해 설명하는 것이다. 이 튜토리얼에서는 다음에 대해 설명한다.

l 기본 데이터베이스에 연결하여 HADR을 위해 구성하는 방법(아카이브 로깅 구성 및 복사할 백업 작성 포함)

l 대기 데이터베이스에 연결하여 HADR을 위해 구성하는 방법
l 외부 오브젝트 복사 및 TCP/IP 구성과 같은 추가 옵션을 구성하는 방법
l 생성되는 HADR 명령을 검토하고 실행하는 방법
l 설정을 유효성 검증하는 방법

전제 조건

이 튜토리얼에서는 Linux, UNIX 및 Windows에서 DB2 데이터베이스를 관리하는 방법에 대한 기본적인 지식을 가지고 있다고 가정한다. Data Studio 또는 Optim Database Administrator에 익숙하면 좋다. Data Studio 전자책 시작하기(참고자료 참조)에서 적절한 기본 지식을 얻을 수 있다.

튜토리얼을 진행하려면 두 대의 다른 컴퓨터에 Linux, UNIX 및 Windows용 DB2 9.7이 설치되어 있어야 한다. 또한 DB2 인스턴스에 연결할 수 있는 시스템에 Data Studio(독립형) 2.2.0.1 또는 Optim Database Administrator 2.2.2가 설치되어 있어야 한다. 무료인 Data Studio의 다운로드나 Optim Database Administrator의 30일 시험판에 대한 링크는 참고자료에서 확인한다.


이 튜토리얼에 사용된 데이터베이스는 가상의 Great Outdoors Company의 샘플 데이터베이스이다. Integrated Data Management Information Center(참고자료 참조)에서 이 데이터베이스를 다운로드할 수 있다. DB2 SAMPLE 데이터베이스 또는 튜토리얼에 대한 기타 데이터베이스를 대신 사용할 수 있다.



시스템 요구사항
HADR 설정을 위해 권장되는 접근 방식은 기본 컴퓨터와 대기 컴퓨터로 사용할 두 대의 컴퓨터가 동일한 운영 체제를 가지도록 하는 것이다. 예제 설정에는 server1과 server2라는 두 개의 x86_64 SUSE Linux® 10 상자가 있다. Server1은 기본 컴퓨터이고 server2는 대기 컴퓨터이다. HADR 서비스를 위한 추가 TCP 포트도 필요하다.


DB2 HADR에 대한 시스템 요구 사항의 전체 목록은 참고자료를 참조한다.



다음 단계를 완료하여 Data Studio 연다.
1. 그림 1 표시된 대로 Windows 시작 메뉴에서Start > All Programs > IBM Data Studio stand-alone > IBM Data Studio 2.2 클릭하여 Data Studio 연다. <그림 1. Data Studio 2.2 열기>
2. 기본 데이터베이스에 대해 구성된 데이터베이스 연결이 이미 있는 경우에는 HADR 설정 시작하기로 건너뛴다. 기본 데이터베이스에 대해 구성된 데이터베이스 연결이 아직 없는 경우에는 다음 단계로 계속 진행한다.
3. 그림 2 표시된 대로 Data Source Explorer에서 Database Connections 폴더를 마우스 오른쪽 단추로 클릭한 New 선택한다. <그림 2. 기본 데이터베이스에 대한 Data Studio 연결 작성하기>
5. New Connection 창에서 Linux, UNIX Windows DB2 연결의 필수 필드의 값을 입력한 그림 3 표시된 대로 Test Connection 클릭하여 기본 데이터베이스에 성공적으로 연결할 있는지 테스트한다. <그림 3. 데이터베이스 연결의 필수 입력하기>
테스트 연결에 성공하면 Ping Succeeded! 메시지가 표시된다.
6. 그림 4 표시된 대로 OK 클릭하여 연결을 작성한다. <그림 4. 테스트 연결에 성공했음>


다음 단계를 완료하여 HADR 기본 데이터베이스를 설정한다.
1. 데이터베이스에 성공적으로 연결한 Data Source Explorer에서 데이터베이스 이름(: GSDB) 마우스 오른쪽 단추로 클릭한다.
2. 그림 5 표시된 대로 Setup HADR 선택한다. <그림 5. Data Studio에서 데이터베이스를 선택하고 Setup HADR 클릭하기>
Setup HADR 창의 Primary Database 탭에는 그림 6에 표시된 대로 이미 모든 정보가 기입되어 있어야 한다.
<그림 6. Setup HADR 패널, Primary Database 탭>
3. Database information 환경에 맞게 적절한 경우 데이터베이스 백업하기로 건너뛴다. 하지만 예를 들어 Logging 섹션의 빨간색 X 문제점을 나타낸다. GSDB HADR 구성 사용할 없는 순환 로깅을 사용한다.
데이터베이스 로깅 유형 변경하기
로깅 유형을 변경하려면 다음 단계를 완료한다.
1. 그림 6 표시된 대로 Configure 클릭하여 데이터베이스의 로깅 유형을 구성한다.
2. Configure Database Logging 패널에서 Archive 옵션을 체크하고 기본 아카이브 로그 위치 백업 로그 위치의 올바른 디렉토리를 입력한다. 기본 컴퓨터와 대기 컴퓨터 다에서 디렉토리가 올바른지 확인한다.
3. 그림 7 표시된 대로 Run 클릭하여 데이터베이스의 로깅 유형을 변경한다. <그림 7. Configure Database Logging 패널, Type >
데이터베이스의 로깅 유형을 변경하면 그림 8 표시된 대로 Setup HADR 창에 ARCHIVE 표시된다.
데이터베이스 백업하기
다음 단계를 완료하여 사용할 HADR 해당하는 데이터베이스의 백업을 작성한다.
1. 그림 8 표시된 대로 Backup 클릭하여 Backup 창을 연다. <그림 8. 기본 데이터베이스 설정을 완료하기 위해 데이터베이스 백업하기>
2. 그림 9 표시된 대로 Backup 창의 Type 탭에서 Backup the entire database 옵션을 선택한다. <그림 9. Back up the entire database 옵션 선택하기>
3. 그림 10 표시된 대로 Image 탭에서 Location of back up image 필드에 올바른 디렉토리를 입력한다. 위치가 기본 컴퓨터와 대기 컴퓨터에서 올바른지 확인한다. <그림 10. 백업 이미지의 위치 표시하기>
4. Options 탭에서 Full backup - backup all data 선택되어 있는지 확인한다.
5. Online backup 지정하여 사용자가 백업 중에 데이터베이스를 계속 사용할 있게 한다. Offline backup 사용하려면 데이터베이스를 먼저 정지한다.
6. 그림 11 표시된 대로 Run 클릭하여 백업을 시작한다. <그림 11. 전체 백업 온라인 백업 옵션 선택하기>
이제 기본 데이터베이스가 HADR 위해 설정되었으며 백업되었다. 다음 섹션으로 계속 진행하여 대기 데이터베이스를 구성한다.


기본 데이터베이스를 백업하고 나면 대기 데이터베이스를 구성할 준비가 된다.
1. 대기 데이터베이스에 대한 기존 데이터베이스 연결이 있는 경우 연결 프로파일 구성하기로 이동한다. 대기 데이터베이스에 대한 기존 데이터베이스 연결이 없는 경우에는 다음 단계로 계속 진행한다.
2. Setup HADR 창으로 돌아가서 Standby Database 탭을 클릭한다.
3. 그림 12 표시된 대로 Add 클릭하여 대기 데이터베이스에 대한 연결을 추가한다. <그림 12. 대기 데이터베이스에 대한 연결 추가하기>

연결
프로파일 구성하기
1. Create standby database connection profile 탭에서 대기 데이터베이스 연결의 필수 값을 입력한다.
2. 그림 13 표시된 대로 Test Instance 클릭하여 연결을 테스트한다. <그림 13. 대기 데이터베이스 연결 테스트 작성하기>
3. Connection Succeeded 메시지가 표시되면 Finish를 클릭하여 연결을 작성한다.

초기화
옵션 설정하기
1. 대기 연결을 작성한 Setup HADR 창으로 돌아간다. Standby database 탭에서 Connection profile 필드와 Instance name 필드는 기입되어 있어야 한다.
2. Initialization options 섹션에서 다음 옵션 하나를 선택한다.
Use an existing database on the standby system
옵션을 선택하면 Data Studio 수동으로 복사하여 대기 시스템에 복원한 대기 데이터베이스를 사용한다.
Create a new database by using a backup image
옵션을 선택하면 Data Studio 기본 백업 이미지를 복사하여 대기 컴퓨터로 복원한다. 그림 14 표시된 대로 예제 튜토리얼에서는 옵션을 선택한다.
3. 그림 14 표시된 대로 Backup Image Selection 섹션에서 사용 가능한 최신 백업 이미지를 선택하고 Image copy location 필드에 디렉토리를 입력한다. <그림 14. Standby Database, 초기화, 백업 복원 옵션 선택하기>
기본 대기 데이터베이스의 초기 구성을 완료했다. 다음으로 HADR 설정을 지원하는 추가 옵션을 구성한다.
이 섹션에서는 다음과 같은 구성 옵션에 대해 설명한다.
복사할 외부 오브젝트 지정하기
기본 HADR 설정에는 UDF 또는 저장 프로시저와 같이 데이터베이스 외부에 저장된 오브젝트가 포함되어 있지 않다. 그림 15에 표시된 대로 Copy Objects 탭을 사용하여 이러한 오브젝트가 저장되는 위치 및 복사할 오브젝트를 지정할 수 있다. 이 튜토리얼에서는 이 옵션에 대해 자세하게 설명하지 않지만 이러한 중요 아티팩트를 복사할 수 있는 다른 방법이 있는 경우가 아니면 많은 경우에 이 옵션을 사용하려고 한다. 이 튜토리얼에서는 이 필드를 공백으로 둔다.

<그림 15. Copy Objects >


TCP/IP
매개변수 구성하기
그림 16에 표시된 대로 TCP/IP Parameters 탭을 사용하여 HADR에서 사용할 서비스 이름 및 포트 번호를 입력한다. 이러한 포트는 DB2 인스턴스 자체에서 사용하는 포트 번호와 달라야 한다.

<그림 16. TCIP/IP Parameters 탭에서 사용된 HADR 포트 번호>

클라이언트 리라우트 매개변수 구성하기
Client Reroute 탭에서 장애 시 클라이언트 애플리케이션에서 사용할 대체 DB2 서버를 지정한다. 이 튜토리얼의 경우 그림 17에 표시된 대로 Specify alternate servers for the database 옵션을 선택 취소한다. 대체 서버를 지정하려는 경우에는 참고자료를 참조한다.

<그림 17. Client Reroute , Specify alternate servers for the databases 옵션 선택 취소>


동기화 옵션
Synchronization 탭에서 HADR 쌍의 동기화 모드를 지정한다. 동기화 모드는 시스템 성능에 직접적인 영향을 미친다. 동기화 모드는 세 가지가 있다.
Synchronous 모드
기본 데이터베이스는 로그 페이지를 대기 데이터베이스에 전송하기 전에 먼저 로그 페이지를 디스크에 작성한다. 기본 데이터베이스는 커미트에 성공했음을 애플리케이션에 알리기 전에 대기 데이터베이스의 수신확인을 기다린다. 이 모드는 시스템의 성능에 상당히 부정적인 영향을 미칠 수 있다.
Near synchronous 모드
기본 데이터베이스는 로그 페이지를 작성하는 동시에 로그 페이지를 대기 데이터베이스에 전송한다. 기본 컴퓨터와 대기 컴퓨터가 빠른 속도의 네트워크로 연결된 경우 이 모드는 전반적인 기본 데이터베이스 성능에 거의 영향을 미치지 않는다. 이 모드는 대부분의 경우에 권장된다.
Asynchronous 모드
기본 데이터베이스는 대기 데이터베이스의 수신확인을 기다리지 않는다. 이 모드는 성능에 가장 적은 영향을 미치지만 장애 발생 중에 로그 데이터가 손실될 수 있다.
연결 제한시간 및 피어 창 크기도 결정해야 한다.
  • HADR 연결 제한시간은 HADR 데이터베이스가 연결이 끊겼다고 결정하기 전에 피어에 대한 연결을 시도하는 최대 시간을 결정한다.
  • 피어 창 크기는 HADR 쌍이 네트워크 연결이 끊긴 후에도 피어 상태에 있는 것처럼 계속 작동하는 시간이다.
이 예제 튜토리얼의 경우에는 그림 18에 표시된 대로 다음과 같은 단계를 완료한다.
1. Near synchronous 모드를 선택한다.
2. Connection time-out period는 기본값인 120초를 유지한다.
3. Peer window size (in seconds) 필드를 0으로 설정한다.

<그림 18. 동기화 탭에 사용된 옵션>


이제 그림 19 표시된 대로 Summary 탭을 검토한다.

<그림 19. Summary 탭에서 옵션을 검토하여 모든 사항이 올바른지 확인하기>


실행 전에 모든 명령 미리보기
마지막으로 남은 옵션은 HADR 지금 시작할지 아니면 나중에 시작할지 선택하는 것이다. Start HADR on the databases 선택한 Preview Command 링크를 클릭하여 Listing 1 표시된 것과 같이 모든 명령을 미리본다.

<Listing 1. 명령 미리보기>
--  Configure Primary database ;
--  Update HADR configuration parameters for primary database;
UPDATE DB CFG FOR GSDB USING LOGINDEXBUILD ON ;
UPDATE DB CFG FOR GSDB USING INDEXREC RESTART ;
UPDATE DB CFG FOR GSDB USING HADR_LOCAL_HOST server1;
UPDATE DB CFG FOR GSDB USING HADR_LOCAL_SVC 50030;
UPDATE DB CFG FOR GSDB USING HADR_REMOTE_HOST server2;
UPDATE DB CFG FOR GSDB USING HADR_REMOTE_SVC 50030;
UPDATE DB CFG FOR GSDB USING HADR_REMOTE_INST db2inst3;
UPDATE DB CFG FOR GSDB USING HADR_SYNCMODE NEARSYNC;
UPDATE DB CFG FOR GSDB USING HADR_TIMEOUT 120;
UPDATE DB CFG FOR GSDB USING HADR_PEER_WINDOW 0;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
DEACTIVATE DATABASE GSDB;
UNQUIESCE DATABASE;
CONNECT RESET;
--  Configure Standby database ;
ATTACH TO GSDB1;
--  Restore database on standby system - server2;
RESTORE DATABASE GSDB FROM "/home/db2inst3/bkp" TAKEN AT 20091112163944 
REPLACE HISTORY FILE WITHOUT PROMPTING;
--  Update HADR configuration parameters for standby database;
UPDATE DB CFG FOR GSDB USING LOGINDEXBUILD ON ;
UPDATE DB CFG FOR GSDB USING INDEXREC RESTART ;
UPDATE DB CFG FOR GSDB USING HADR_LOCAL_HOST server2;
UPDATE DB CFG FOR GSDB USING HADR_LOCAL_SVC 50030;
UPDATE DB CFG FOR GSDB USING HADR_REMOTE_HOST server1;
UPDATE DB CFG FOR GSDB USING HADR_REMOTE_SVC 50030;
UPDATE DB CFG FOR GSDB USING HADR_REMOTE_INST db2inst3;
UPDATE DB CFG FOR GSDB USING HADR_SYNCMODE NEARSYNC;
UPDATE DB CFG FOR GSDB USING HADR_TIMEOUT 120;
UPDATE DB CFG FOR GSDB USING HADR_PEER_WINDOW 0;
--  Start HADR on standby database - GSDB;
DEACTIVATE DATABASE GSDB;
START HADR ON DATABASE GSDB AS STANDBY;
--  Start HADR on primary database - GSDB,host (instance)-server1 (db2inst3);
ATTACH TO GSDB;
DEACTIVATE DATABASE GSDB;
START HADR ON DATABASE GSDB AS PRIMARY;

미리보기에서 정보를 검토한 Run 클릭하여 실행을 시작한다.
그림 20 표시된 대로 먼저 Data Studio 백업 이미지 파일을 기본 컴퓨터에서 대기 컴퓨터로 전송한다.

<그림 20. 기본 컴퓨터에서 대기 컴퓨터로 백업 이미지 전송>
백업 이미지 전송 Data Studio HADR 설정하는 필요한 명령을 실행한다.
모든 명령이 실행된 실행에 성공했는지 확인한다. 예를 들어, HADR 조작의 상태는 그림 21 표시된 대로 Succeeded이다. 마지막으로 실행된 명령은 START HADR ON DATABASE GSDB AS PRIMARY 명령이었다. <그림 21. HADR 시작 성공>
HADR 설정 유효성 검증
이제 설정을 확인할 있다. db2pd 명령을 사용하여 기본 데이터베이스에서 HADR 상태를 확인할 있다. 그림 22 표시된 대로 Role Primary이고 connectStatus Connected 것에 유의한다.

<그림 22. db2pd 사용하여 기본 데이터베이스의 상태 확인하기>

이제
db2pd 사용하여 대기 데이터베이스에서 HADR 상태를 확인한다. 그림 23 표시된 대로 Role Standby이고 connectStatus Connected 것에 유의한다.

<그림 23. db2pd 사용하여 대기 데이터베이스의 상태 확인하기>
드디어 Data Studio 사용하여 DB2 HADR 구성을 완료했다.

댓글 없음:

댓글 쓰기