Sun Java System Application Server Enterprise Edition 8.1 2005Q2 고가용성 관리 설명서

HADB 확장

원래 HADB 구성을 확장하는 이유에는 다음의 두 가지가 있습니다.

이 절에서는 Application Server 클러스터 또는 데이터베이스를 종료하지 않고 HADB를 확장하는 방법에 대해 설명합니다.

또한 HADB 시스템 유지 관리의 관련 정보도 참조하십시오.

기존 노드에 저장 공간 추가

HADB 저장 공간 추가:

노드에 사용되지 않은 디스크 공간이 있거나 디스크 용량을 추가하는 경우에도 기존 노드에 저장 공간을 추가하려 할 수 있습니다. 권장하는 데이터 장치 크기에 대한 자세한 내용은 장치 크기 지정을 참조하십시오.

저장 공간을 노드에 추가하려면 hadbm set 명령을 사용하여 데이터 장치 크기를 늘립니다.

명령 구문은 다음과 같습니다.

hadbm set DataDeviceSize=size

여기서 size는 데이터 장치 크기(MB)입니다.

명령 옵션에 대한 설명은 일반 옵션을 참조하십시오.

FaultTolerant 이상의 상태에 있는 데이터베이스에 대한 데이터 장치 크기를 변경하면 데이터 또는 가용성의 손실 없이 시스템이 업그레이드됩니다. 재구성하는 동안에도 데이터베이스는 작동 상태를 유지합니다. FaultTolerant 이상의 상태가 아닌 시스템에서 장치 크기를 변경하면 데이터가 손실됩니다. 데이터베이스 상태에 대한 자세한 내용은 데이터베이스 상태를 참조하십시오.


예 3–12 데이터 장치 크기 설정의 예

다음 명령은 데이터 장치 크기 설정의 예입니다.

hadbm set DataDeviceSize=1024

시스템 추가

HADB에 처리 또는 저장 용량이 더 필요한 경우 시스템을 추가할 수 있습니다. HADB를 실행할 새 시스템을 추가하려면 2 장, 고가용성 데이터베이스 설치 및 설정에 설명된 대로 Application Server의 여부에 관계 없이 HADB 패키지를 설치합니다. 다른 노드 토폴로지에 대한 설명을 보려면 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide의 3 장, Selecting a Topology를 참조하십시오.

Procedure기존 HADB 인스턴스에 새 시스템을 추가하는 방법

  1. 새 노드에서 관리 에이전트를 시작합니다.

  2. 관리 도메인을 새 호스트로 확장합니다.

    자세한 내용은 hadbm extenddomain 명령을 참조하십시오.

  3. 이 호스트에서 새 노드를 시작합니다.

    자세한 내용은 노드 추가를 참조하십시오.

노드 추가

HADB 시스템의 처리 및 저장 용량을 늘리려면 새 노드를 만들고 이 노드를 데이터베이스에 추가합니다.

노드를 추가하면 HADB JDBC 연결 풀의 다음 등록 정보를 업데이트합니다.

노드를 추가하려면 hadbm addnodes 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm addnodes  [--no-refragment]  [--spares=sparecount]  
[--historypath=path]  
[--devicepath=path]  
[--set=attr-name-value-list]  
[--dbpassword=password | --dbpasswordfile=file ]  
[--adminpassword=password | --adminpasswordfile=file]  
--hosts=hostlist  [dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다. 데이터베이스는 HAFaultTolerant 또는 FaultTolerant 상태여야 합니다. 데이터베이스 상태에 대한 자세한 내용은 HADB 상태 가져오기를 참조하십시오.

--devicepath--historypath 옵션을 지정하지 않으면 새 노드의 장치 경로는 동일하며, 기존 데이터베이스와 같은 내역 파일을 사용합니다.

노드를 추가하면 기존 데이터의 재조각화 및 재배포가 수행되어 시스템에 새 노드가 포함됩니다. 온라인 재조각화를 수행하려면 재조각화가 끝날 때까지 HADB 노드에 대한 디스크에 기존 데이터와 새 데이터를 동시에 포함할 수 있는 충분한 공간이 있어야 합니다. 즉, 사용자 데이터 크기는 사용자 데이터에 사용 가능한 공간의 50%를 초과하지 않아야 합니다. 자세한 내용은 장치 정보 가져오기를 참조하십시오.


주 –

시스템 로드가 적을 때가 노드를 추가하기 가장 좋습니다.



예 3–13 노드 추가의 예

예를 들면 다음과 같습니다.

hadbm addnodes --dbpassword secret123 -adminpassword=
password --hosts n6,n7,n8,n9

다음 표에서는 특수 hadbm addnodes 명령 옵션에 대해 설명합니다. 다른 옵션에 대한 설명은 일반 옵션을 참조하십시오.

표 3–13 hadbm addnodes 옵션

옵션 

설명 

기본값 

--no-refragment

-r 

노드를 만드는 동안에는 데이터베이스를 재조각화하지 마십시오. 이 경우 나중에 hadbm refragment 명령으로 새 노드를 사용할 수 있도록 데이터베이스를 재조각화합니다. 재조각화에 대한 자세한 내용은 데이터베이스 재조각화를 참조하십시오.

재조각화를 위한 디스크 공간이 충분하지 않은 경우 데이터베이스를 더 많은 노드로 다시 만듭니다. 데이터베이스를 다시 만들어 노드 추가를 참조하십시오.

적용할 수 없음 

--spares= number

-s 

이미 존재하는 예비 노드를 포함하여 새 예비 노드의 수이 숫자는 짝수여야 하며 추가된 노드 수보다 크지 않아야 합니다. 

--devicepath= path

-d 

장치에 대한 경로. 장치는 다음과 같습니다. 

  • DataDevice

  • NiLogDevice(노드 내부 로그 장치)

  • RelalgDevice(관계형 algebra 쿼리 장치)

    이 경로는 반드시 존재해야 하며 쓰기 가능해야 합니다. 각 노드 또는 각 장치마다 이 경로를 서로 다르게 설정하려면 이기종 장치 경로 설정을 참조하십시오.

Solaris 및 Linux: HADB_install_dir/device

Windows: C:\Sun\AppServer\SUNWhadb\vers. 여기서 vers는 HADB 버전 번호입니다.

--hosts= hostlist

-H 

데이터베이스의 새 노드에 대한 새 호스트 이름의 쉼표로 구분된 목록. 목록에서 쉼표로 구분된 각 항목에 대해 한 개의 노드가 만들어집니다. 노드 수는 짝수여야 합니다. HADB 호스트의 IP 주소는 IPv4 주소여야 합니다. 

중복되는 호스트 이름을 사용하여 동일한 시스템에 포트 번호가 다른 여러 노드를 만듭니다. 동일한 시스템의 노드가 미러 노드가 아닌지 확인합니다. 

홀수 번호가 지정된 노드는 한 DRU에 있고, 짝수 번호가 지정된 노드는 다른 DRU에 있습니다. --spares를 사용하는 경우 새 예비 노드는 숫자가 가장 큽니다.

이중 네트워크 인터페이스로 데이터베이스를 만든 경우 새 노드를 동일한 방법으로 구성해야 합니다. 네트워크 중복 구성을 참조하십시오.

없음 

데이터베이스 재조각화

데이터베이스를 재조각화하여 새로 만든 노드에 데이터를 저장합니다. 재조각화는 데이터베이스를 모든 활성 노드에 균등하게 분산합니다.

데이터베이스를 재조각화하려면 hadbm refragment 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm refragment  [--dbpassword=password | --dbpasswordfile=file]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다. 데이터베이스는 HAFaultTolerant 또는 FaultTolerant 상태여야 합니다. 데이터베이스 상태에 대한 자세한 내용은 HADB 상태 가져오기를 참조하십시오.

명령 옵션에 대한 설명은 일반 옵션을 참조하십시오. 자세한 내용은 hadbm-refragment(1)을 참조하십시오.

온라인 재조각화를 수행하려면 재조각화가 끝날 때까지 HADB 노드에 대한 디스크에 기존 데이터와 새 데이터를 동시에 포함할 수 있는 충분한 공간이 있어야 합니다. 즉, 사용자 데이터 크기는 사용자 데이터에 사용 가능한 공간의 50%를 초과하지 않아야 합니다. 자세한 내용은 장치 정보 가져오기를 참조하십시오.


주 –

시스템 로드가 적을 때가 데이터베이스를 재조각화하기 가장 좋습니다.


여러 번 시도한 후에도 이 명령이 실패하는 경우 데이터베이스를 다시 만들어 노드 추가를 참조하십시오.


예 3–14 데이터베이스 재조각화의 예

예를 들면 다음과 같습니다.

hadbm refragment --dbpassword secret123

데이터베이스를 다시 만들어 노드 추가

새 노드를 추가할 때 데이터 장치 공간이 부족하거나 기타 이유로 인해 온라인 재조각화가 영구적으로 실패하는 경우 데이터베이스를 새 노드로 다시 만듭니다. 이렇게 하면 기존 사용자 데이터 및 스키마 데이터가 손실됩니다.

Procedure데이터베이스를 다시 만들어 노드를 추가하는 방법

이 절차를 사용하면 프로세스 전체에 HADB 가용성을 유지할 수 있습니다.

  1. 각 Application Server 인스턴스에 대해 다음을 수행합니다.

    1. 로드 밸런서에서 Application Server 인스턴스를 비활성화합니다.

    2. 세션 지속성을 비활성화합니다.

    3. Application Server 인스턴스를 다시 시작합니다.

    4. 로드 밸런서에서 Application Server 인스턴스를 다시 활성화합니다.

    가용성을 유지할 필요가 없는 경우 로드 밸런서에서 모든 서버 인스턴스를 한 번에 비활성화한 후에 다시 활성화할 수 있습니다. 이렇게 하면 시간이 절약되고 오래된 세션 데이터의 페일오버를 방지할 수 있습니다.

  2. 데이터베이스 중지에 설명된 대로 데이터베이스를 중지합니다.

  3. 데이터베이스 제거에 설명된 대로 데이터베이스를 삭제합니다.

  4. 데이터베이스 만들기에 설명된 대로 데이터베이스에 추가 노드를 다시 만듭니다.

  5. JDBC 연결 풀 구성에 설명된 대로 JDBC 연결 풀을 재구성합니다.

  6. 세션 지속성 저장소를 다시 로드합니다.

  7. 각 Application Server 인스턴스에 대해 다음을 수행합니다.

    1. 로드 밸런서에서 Application Server 인스턴스를 비활성화합니다.

    2. 세션 지속성을 활성화합니다.

    3. Application Server 인스턴스를 다시 시작합니다.

    4. 로드 밸런서에서 Application Server 인스턴스를 다시 활성화합니다.

    가용성을 유지할 필요가 없는 경우 로드 밸런서에서 모든 서버 인스턴스를 한 번에 비활성화한 후에 다시 활성화할 수 있습니다. 이렇게 하면 시간이 절약되고 오래된 세션 데이터의 페일오버를 방지할 수 있습니다.