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

2장 고가용성 데이터베이스 설치 및 설정

이 장은 다음 내용으로 구성되어 있습니다.

고가용성 데이터베이스 개요

이 절에서는 고가용성 데이터베이스(HADB)를 소개하고 Application Server에서 사용할 수 있도록 HADB를 설정 및 구성하는 방법을 설명합니다.

이 절은 다음 내용으로 구성되어 있습니다.

HADB 및 Application Server

HADB는 응용 프로그램 서버 계층과는 별도로 실행 및 관리할 수 있는 수평 확장 가능한 데이터베이스입니다. HADB는 로드 균형 조정, 페일오버 및 상태 복구 기능을 통해 최고 99.999%의 서비스 및 데이터 가용성을 지원하도록 설계되었습니다.

Application Server에서는 HADB를 사용하여 HTTP 및 Stateful Session Bean(SFSB) 세션 데이터를 저장합니다. 세션 지속성 메커니즘이 없으면 웹 또는 EJB 컨테이너가 페일오버될 때 HTTP 또는 SFSB 세션 상태 데이터가 손실됩니다.

Application Server와는 별도로 상태 관리를 수행하면 큰 이점을 얻을 수 있습니다. 응용 프로그램 서버 인스턴스는 외부 고가용성 상태 서비스에 상태 복제를 위임하는 확장 가능하고 성능이 뛰어난 Java™ 2 Platform, Enterprise Edition(J2EE™ 플랫폼) 컨테이너의 역할을 수행합니다. 이와 같이 구조가 느슨하게 연결되어 있으므로 클러스터에서 응용 프로그램 서버 인스턴스를 쉽게 추가 및 제거할 수 있습니다. 최적의 가용성 및 성능을 얻기 위해 HADB 상태 복제 서비스를 독립적으로 확장할 수 있습니다.

HADB 서버 구조

고가용성은 업그레이드를 위한 계획된 작동 중단이나 하드웨어 또는 소프트웨어 장애로 인한 갑작스러운 작동 중단에도 불구하고 가용성이 보장되는 것을 의미합니다. HADB는 간단한 데이터 모델과 확장성이 뛰어난 중복형 고성능 토폴로지를 기반으로 합니다. HADB는 고성능 엔터프라이즈 응용 프로그램 서버 환경 내에서 모든 유형의 세션 상태 지속성을 전달하기 위한 이상적인 플랫폼을 제공합니다.

다음 그림은 네 개의 활성 노드와 두 개의 예비 노드가 있는 데이터베이스 구조를 나타냅니다. 노드 0과 1, 노드 2와 3은 미러 노드 쌍을 이룹니다.

그림 2–1 HADB 구조

HADB 구조

HADB는 데이터의 조각화 및 복제를 통해 고가용성을 구현합니다. 데이터베이스의 모든 테이블은 조각이라고 하는 거의 같은 크기의 하위 집합을 만들 수 있도록 분할되어 있습니다. 조각화는 데이터베이스 노드 간에 데이터를 균일하게 분산시키는 해시 기능을 기반으로 합니다. 각 조각은 데이터베이스의 미러 노드에 두 번 저장됩니다. 이를 통해 데이터의 내결함성 및 빠른 복구가 가능해집니다. 또한 한 노드에 장애가 발생하거나 종료되면 다시 활성 상태가 될 때까지 예비 노드가 작업을 인계 받을 수 있습니다.

HADB 노드는 서로 미러링되는 두 개의 DRU(Data Redundancy Unit)로 구성됩니다. 각 DRU는 활성 노드와 예비 노드의 절반을 구성하며 하나의 완전한 데이터 복사본을 포함하게 됩니다. 내결함성을 보장하기 위해 하나의 DRU를 지원하는 컴퓨터는 전원 공급 장치(무정전 전원 공급 장치 권장), 처리 장치 및 저장 장치 등이 완전하게 자체 지원될 수 있어야 합니다. 한 DRU에서 전원이 끊어지면 전원이 다시 연결될 때까지 다른 DRU의 노드가 요청을 계속 처리할 수 있습니다.

세션 지속성 메커니즘이 없는 경우 한 웹 또는 EJB 컨테이너가 다른 컨테이너로 페일오버될 때 비활성 세션 상태를 비롯한 HTTP 또는 SFSB 세션 상태 데이터가 손실됩니다. 세션 지속성을 위해 HADB를 사용하면 이러한 문제가 해결됩니다. HADB는 별도로 분리되어 있지만 잘 통합된 지속성 저장소 계층에서 상태 정보를 저장하고 검색합니다.

HADB는 세션 데이터가 삭제될 때 공간을 사용 가능하게 확보합니다. HADB는 크기가 고정된 블록에 세션 데이터 레코드를 저장합니다. 블록의 모든 레코드가 삭제되면 블록은 사용 가능하게 해제됩니다. 블록의 레코드는 무작위로 삭제되어 블록에 이 생길 수 있습니다. 블록에 새 레코드가 삽입되고 인접한 공간이 필요한 경우에는 홀이 제거되므로 블록이 축소됩니다.

지금까지 구조를 간단히 요약해서 설명했습니다. 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide를 참조하십시오.

HADB 노드

데이터베이스 노드는 프로세스 집합, 공유 메모리의 전용 영역, 하나 이상의 보조 저장 장치로 구성됩니다. 데이터베이스는 세션 데이터를 저장, 업데이트 및 검색합니다. 각 노드에는 하나의 미러 노드가 있으므로 노드는 쌍을 이룹니다. 또한 가용성을 최대화하려면 각 DRU에 하나씩 두 개 이상의 예비 노드를 포함시킵니다. 이렇게 하면 한 노드에 장애가 발생할 경우 노드가 복구되는 동안 예비 노드가 작업을 인계 받을 수 있습니다.

다른 노드 토폴로지에 대한 설명을 보려면 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide의 3 장, Selecting a Topology를 참조하십시오.

새로운 기능 및 향상된 기능

Sun Java System Application Server Enterprise Edition 8.1에 제공된 HADB 버전에는 다양한 새 기능과 향상된 기능이 포함되어 있습니다.

관리 시스템의 기본 구성 요소가 변경되어 HADB 관리 기능이 향상되었습니다. 이전 hadbm 인터페이스 기능은 몇 가지 수정 사항을 제외하고 그대로 유지되었습니다. 또한 이번 변경으로 SSH/RSH의 종속성이 제거되었습니다.

관리 에이전트 서버 프로세스(ma)는 도메인을 구성하며 데이터베이스 구성을 저장소에 보관합니다. 저장소 정보는 모든 에이전트에서 분산됩니다.

다음 항목에서 보다 자세한 정보를 얻을 수 있습니다.

일반적인 기능 향상

이 버전의 HADB는 다음과 같은 향상된 기능을 제공합니다.

특정 기능 변경

이 버전의 HADB는 이전 버전과 비교해 다음과 같이 달라졌습니다.

HADB에 대한 고객 지원 사용

HADB 문제가 발생했을 때 고객 지원부에 문의하기 전에 다음 정보를 최대한 수집하십시오.

HADB 설정 준비

이 절에서는 다음 항목에 대해 설명합니다.

필수 사항

HADB를 설정 및 구성하기 전에 작업 환경이 다음 요구 사항을 만족하는지 확인하십시오.

네트워크 중복 구성

중복 네트워크를 구성하면 단일 네트워크 장애가 발생해도 HADB가 사용 가능한 상태를 유지합니다. 다음의 두 가지 방식으로 중복 네트워크를 구성할 수 있습니다.

네트워크 다중 경로 설정

네트워크 다중 경로를 설정하기 전에 IP Network Multipathing Administration Guide의 Administering Network Multipathing 절을 참조하십시오.

Procedure이미 IP 다중 경로를 사용하는 HADB 호스트 시스템 구성

  1. 네트워크 인터페이스 실패 감지 시간을 설정합니다.

    HADB가 다중 경로 페일오버를 제대로 지원하기 위해서는 네트워크 인터페이스 실패 감지 시간이 /etc/default/mpathdFAILURE_DETECTION_TIME 매개 변수에 지정된 대로 1초(1000밀리초)를 초과해서는 안 됩니다. 원래 값이 큰 경우 파일을 편집하여 이 매개 변수의 값을 1000으로 변경합니다.


    FAILURE_DETECTION_TIME=1000

    변경 내용을 적용하려면 다음 명령을 사용하십시오.


    pkill -HUP in.mpathd
  2. HADB에서 사용하도록 IP 주소를 설정합니다.

    IP Network Multipathing Administration Guide에 설명된 대로 다중 경로는 물리적 네트워크 인터페이스를 다중 경로 인터페이스 그룹으로 그룹화하는 것입니다. 해당 그룹 내의 물리적 인터페이스는 물리적 인터페이스 주소와 테스트 주소 등

    • 데이터 전송에 사용되는 물리적 인터페이스 주소

    • Solaris 내부용으로 사용되는 테스트 주소

    hadbm create --hosts를 사용할 때는 다중 경로 그룹에서 물리적 인터페이스 주소를 하나만 지정합니다.


예 2–1 다중 경로 설정

이름이 host1 및 host2인 두 개의 호스트 시스템이 있고 각 시스템에 두 개의 물리적 네트워크 인터페이스가 있는 경우 두 인터페이스를 다중 경로 그룹으로 설정합니다. 각 호스트에서 ifconfig -a를 실행합니다.

host1에서 다음과 같은 결과가 출력됩니다.


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 6 inet 129.159.115.13 netmask ff000000 broadcast 129.159.115.255

host2에서 다음과 같은 결과가 출력됩니다.


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 3 inet 129.159.115.21 netmask ff000000 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 4 inet 129.159.115.23 netmask ff000000 broadcast 129.159.115.255

이 예에서는 두 호스트의 물리적 네트워크 인터페이스가 bge0bge1 뒤에 나열됩니다. bge0:1bge1:1 뒤에 나열되는 인터페이스는 IP Network Multipathing Administration Guide에 설명된 대로 다중 경로 테스트 인터페이스(ifconfig 출력에 DEPRECATED로 표시됨)입니다.

이 환경에서 HADB를 설정하려면 각 호스트에서 물리적 인터페이스 주소 하나를 선택합니다. 이 예에서 HADB는 host1의 IP 주소 129.159.115.10과 host2의 129.159.115.20을 사용합니다. 호스트당 데이터베이스 노드가 하나인 데이터베이스를 만들려면 hadbm create --host 명령을 사용합니다. 예를 들면 다음과 같습니다.


hadbm create --host 129.159.115.10,129.159.115.20

각 호스트에 데이터베이스 노드가 두 개인 데이터베이스를 만들려면 다음 명령을 사용합니다.


hadbm create --host 129.159.115.10,129.159.115.20,
129.159.115.10,129.159.115.20

두 가지 경우에 별도의 매개 변수를 사용하여 host1 및 host2의 에이전트가 사용할 시스템의 인터페이스를 지정하도록 에이전트를 구성해야 합니다. 따라서 host1에서는 다음을 사용합니다.


ma.server.mainternal.interfaces=129.159.115.10

또한 host2에서는 다음을 사용합니다.


ma.server.mainternal.interfaces=129.159.115.20

ma.server.mainternal.interfaces 변수에 대한 자세한 내용은 구성 파일을 참조하십시오.


이중 네트워크 구성

단일 네트워크 장애를 허용하도록 HADB를 활성화하려면 운영 체제(예: Solaris)에서 지원할 경우 IP 다중 경로를 사용합니다. Windows Server 2003의 경우 이중 네트워크에서 제대로 작동하지 않으므로 이 운영 체제에서는 이중 네트워크를 사용하여 HADB를 구성하지 않도록 합니다.

운영 체제가 IP 다중 경로에 대해 구성되지 않았으며 HADB 호스트에 두 개의 NIC가 장착되어 있으면 이중 네트워크를 사용하도록 HADB를 구성할 수 있습니다. 모든 호스트에 대해 각 네트워크 인터페이스 카드(NIC)의 IP 주소가 별도의 IP 서브넷에 있어야 합니다.

데이터베이스 내에서 모든 노드가 단일 네트워크에 연결되어 있거나 모든 노드가 두 개의 네트워크에 연결되어 있어야 합니다.


주 –

서브넷 간 라우터는 서브넷 간에 UDP 멀티캐스트 메시지를 전달하도록 구성되어야 합니다.


HADB 데이터베이스를 만들 때 –hosts 옵션을 사용하여 각 노드, 즉 각 NIC IP 주소에 대해 하나씩 두 개의 IP 주소나 호스트 이름을 지정합니다. 노드마다 첫 번째 IP 주소는 net-0에 있고 두 번째 주소는 net-1에 있습니다. 구문은 다음과 같습니다. 이 경우 동일한 노드에 대한 호스트 이름을 플러스 기호(+)로 구분해서 입력합니다.

--hosts=node0net0name+node0net1name
,node1net0name+node1net1name
,node2net0name+node2net1name
, ...

예를 들어, 다음 인수는 각각 두 개의 네트워크 인터페이스를 갖는 두 개의 노드를 만듭니다. 이러한 노드를 만드는 데 다음 호스트 옵션이 사용됩니다.

--hosts 10.10.116.61+10.10.124.61,10.10.116.62+10.10.124.62

따라서 네트워크 주소는 다음과 같이 지정됩니다.

10.10.116.6110.10.116.62가 동일한 서브넷에 있고, 10.10.124.6110.10.124.62가 동일한 서브넷에 있습니다.

이 예에서 관리 에이전트는 동일한 서브넷을 사용해야 합니다. 따라서 구성 변수 ma.server.mainternal.interfaces 10.10.116.0/24 등으로 설정해야 합니다. 이러한 설정은 이 예의 두 에이전트에 사용될 수 있습니다.

공유 메모리 및 세마포 구성

HADB를 설치하기 전에 공유 메모리 및 세마포를 구성해야 합니다. 절차는 운영 체제에 따라 다릅니다.

ProcedureSolaris에서 공유 메모리 및 세마포 구성

  1. 루트로 로그인합니다.

  2. 공유 메모리를 구성합니다.

    shmmax 값을 HADB 호스트 시스템의 실제 메모리 크기로 설정합니다. 최대 공유 메모리 크기는 HADB 데이터베이스 버퍼 풀의 크기보다 커야 합니다. 예를 들어, 기본 메모리가 2GB(16진수 0x8000000)인 시스템의 경우 /etc/system 파일에 다음을 추가합니다.


    set shmsys:shminfo_shmmax=0x80000000
     set shmsys:shminfo_shmseg=20

    Solaris 9 이상에서는 shmsys:shminfo_shmseg가 더 이상 사용되지 않습니다.

    shminfo_shmmax를 시스템의 전체 메모리로 설정합니다(16진수 표기 형식으로 표시된 값 0x80000000은 2GB 메모리에 해당).


    주 –

    16진수 메모리 값을 사용하여 shmsys:shminfo_shmmax 값을 지정합니다. 호스트 메모리를 결정하려면 다음 명령을 사용합니다.


    prtconf | grep Memory

  3. 세마포를 구성합니다.

    /etc/system 파일에서 세마포 구성 항목을 확인합니다. 이 파일에는 semmni, semmnssemmnu 항목이 포함되어 있을 수 있습니다. 예를 들면 다음과 같습니다.


    set semsys:seminfo_semmni=10
    set semsys:seminfo_semmns=60
    set semsys:seminfo_semmnu=30

    이러한 항목이 있으면 각각 16, 128, 1000을 추가하여 값을 늘립니다. 이 예에서는 항목이 다음과 같이 변경될 수 있습니다.


    set semsys:seminfo_semmni=26
    set semsys:seminfo_semmns=188
    set semsys:seminfo_semmnu=1030

    /etc/system 파일에 이러한 항목이 없으면 파일 끝에 추가합니다.


    set semsys:seminfo_semmni=16
    set semsys:seminfo_semmns=128
    set semsys:seminfo_semmnu=1000

    시스템에서 최대 16개의 HADB 노드를 실행하면 충분합니다. 16개가 넘는 노드를 설정하는 방법은 Sun Java System Application Server Enterprise Edition 8.1 2005Q1 Performance Tuning Guide의 HADB 장을 참조하십시오.

  4. 시스템을 재부트합니다.

ProcedureLinux에서 공유 메모리 구성

  1. 루트로 로그인합니다.

  2. /etc/sysctl.conf 파일을 편집합니다.

  3. kernel.shmaxkernel.shmall 매개 변수를 설정합니다.

    kernel.shmax 매개 변수는 공유 메모리 세그먼트의 최대 크기(바이트)를 정의합니다. kernel.shmall 매개 변수는 시스템에서 한 번에 사용될 수 있는 페이지의 총 공유 메모리 양을 설정합니다. 이러한 매개 변수 값을 시스템의 실제 메모리 양으로 설정합니다. 값을 십진 바이트 값으로 지정합니다. 예를 들어, 실제 메모리가 512MB 있는 시스템의 경우는 다음과 같습니다.


    kernel.shmmax=536870912
     kernel.shmall=536870912
  4. 시스템을 재부트합니다. 시스템을 재부트합니다.

    sync; sync; reboot

Windows 절차

Windows에는 특수한 시스템 설정이 필요하지 않습니다. 그러나 기존 J2SE 설치를 사용하려면 JAVA_HOME 환경 변수를 J2SE가 설치된 위치로 설정합니다.

시스템 클럭 동기화

HADB는 시스템 클럭을 기반으로 하는 타임스탬프를 사용하므로 HADB 호스트의 클럭을 동기화해야 합니다. HADB는 시스템 클럭을 사용하여 시간 초과를 관리하고 내역 파일에 기록된 이벤트에 시간을 표시합니다. HADB는 분산 시스템이므로 문제 해결을 위해서는 모든 내역 파일을 함께 분석해야 합니다. 따라서 모든 호스트의 클럭을 동기화하는 것이 중요합니다.

HADB 시스템이 실행 중인 상태에서는 시스템 클럭을 조정하지 마십시오. 클럭을 조정하면 운영 체제 또는 기타 소프트웨어 구성 요소에서 문제가 발생할 수 있으며 이로 인해 HADB 노드의 중단 또는 다시 시작과 같은 문제가 발생할 수 있습니다. 클럭을 거꾸로 조정하면 클럭이 조정될 때 일부 HADB 서버 프로세스가 중단될 수 있습니다.

클럭 동기화

HADB에서 클럭이 2초 이상 조정되었음을 감지하면 다음과 같이 노드 내역 파일에 기록합니다.

NSUP INF 2003-08-26 17:46:47.975 Clock adjusted.
 Leap is +195.075046 seconds.

파일 시스템 지원

이 절에서는 특정 파일 시스템에서의 일부 HADB 제한 사항에 대해 설명합니다.

Red Hat Enterprise Linux

HADB는 Red Hat Enterprise Linux 3.0에서 ext2 및 ext3 파일 시스템을 지원하고 Red Hat Enterprise Linux 2.1의 경우에는 ext2 파일 시스템을 지원합니다.

Veritas 파일 시스템

Solaris에서 Veritas 파일 시스템을 사용할 경우 HADB는 내역 파일에 메시지 WRN: Direct disk I/O mapping failed를 기록합니다. 이 메시지는 HADB가 데이터 및 로그 장치에 대해 직접 입출력(I/O)을 설정할 수 없음을 나타냅니다. 직접 I/O가 설정되면 디스크 페이지를 기록하는 데 드는 CPU 비용이 줄어듭니다. 또한 운영 체제에서 "사용된" 데이터 페이지를 관리하는 오버헤드를 줄일 수 있습니다.

직접 I/O를 Veritas 파일 시스템과 함께 사용하려면 다음 중 한 가지 작업을 수행합니다.


주 –

이러한 구성은 Sun Java System Application Server에서 테스트되지 않았습니다.


설치

일반적으로 Application Server가 있는 동일한 시스템(같은 시스템 위치 토폴로지)이나 별도의 호스트(별도의 계층 토폴로지)에 HADB를 설치할 수 있습니다. 이러한 두 옵션에 대한 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide의 3 장, Selecting a Topology를 참조하십시오. 그러나 asadmin ha-config-cluster 명령으로 고가용성을 설정할 수 있도록 HADB 관리 클라이언트를 설치해야 합니다. Java Enterprise System 설치 프로그램을 사용할 때는 별도의 계층에 노드를 설치하려는 경우에도 전체 HADB 인스턴스를 설치하여 관리 클라이언트를 설치해야 합니다.

HADB 설치

최소 2GB의 메모리가 있는 단일 또는 이중 CPU 시스템에서는 HADB와 Application Server를 모두 설치할 수 있습니다. 그렇지 않은 경우 별도의 시스템에 HADB를 설치하거나 추가 하드웨어를 사용하십시오. asadmin ha-configure-cluster 명령을 사용하려면 HADB와 Application Server를 모두 설치해야 합니다.

각 HADB 노드에는 512MB의 메모리가 필요하므로 시스템에서 두 개의 HADB 노드를 실행하려면 1GB의 메모리가 있어야 합니다. 시스템의 메모리가 부족하면 각 노드를 다른 시스템에 설치합니다. 예를 들어, 다음 시스템에 두 노드를 설치할 수 있습니다.

기본 설치 디렉토리

이 설명서에서 HADB_install_dir은 HADB가 설치되는 디렉토리를 나타냅니다. 기본 설치 디렉토리는 HADB를 Java Enterprise System의 일부로 설치할지 여부에 따라 다릅니다. Java Enterprise System의 경우 기본 설치 디렉토리는 /opt/SUNWhadb/4이고독립 실행형 Application Server 설치 프로그램의 경우에는 /opt/SUNWappserver/hadb/4입니다.

노드 수퍼바이저 프로세스 권한

노드 수퍼바이저 프로세스(NSUP)는 "I’m alive" 메시지를 서로 교환하여 HADB의 가용성을 보장합니다. NSUP 실행 파일은 가능한 빠르게 응답할 수 있도록 루트 권한을 가져야 합니다. clu_nsup_srv 프로세스는 많은 양의 CPU 자원을 소비하지 않고 사용 공간도 작으므로 실시간 우선 순위에 따라 실행해도 성능이 저하되지 않습니다.


주 –

Java Enterprise System 설치 프로그램은 NSUP 권한을 자동으로 적절하게 설정하므로 다른 작업이 필요하지 않습니다. 그러나 독립 실행형 Application Server(비루트) 설치 프로그램을 사용할 경우 데이터베이스를 만들기 전에 수동으로 권한을 설정해야 합니다.


권한이 부족할 경우 나타나는 현상

NSUP 실행 파일에 적절한 권한이 없으면 다음과 같은 자원 부족 현상이 나타날 수 있습니다.

제한 사항

NSUP가 실시간 우선 순위를 설정할 수 없는 경우 Solaris 및 Linux에서 errno가 EPERM으로 설정됩니다. Windows에서 경고 "Could not set realtime priority"가 발생합니다. ma.log 파일에 오류가 기록되고 실시간 우선 순위 없이 프로세스가 계속됩니다.

다음의 경우에는 실시간 우선 순위를 설정할 수 없습니다.

Procedure노드 수퍼바이저 프로세스 루트 권한 부여

  1. 루트로 로그인합니다.

  2. 작업 디렉토리를 HADB_install_dir /lib/server로 변경합니다.

    NSUP 실행 파일은 clu_nsup_srv입니다.

  3. 다음 명령을 사용하여 파일의 suid 비트를 설정합니다.

    chown root clu_nsup_srv

  4. 다음 명령을 사용하여 파일의 소유권을 루트로 설정합니다.

    chmod u+s clu_nsup_srv

    이렇게 하면 clu_nsup_srv 프로세스가 루트로 시작되고 프로세스에 실시간 우선 순위가 부여될 수 있습니다.

    보안에 영향을 주지 않기 위해 프로세스가 시작된 직후에 실시간 우선 순위가 설정되고 우선 순위가 변경되면 프로세스에는 유효 UID가 다시 지정됩니다. 다른 HADB 프로세스는 일반 우선 순위로 실행됩니다.

고가용성 설정

이 절에서는 고가용성 클러스터를 만들고 HTTP 세션 지속성을 테스트하기 위한 단계를 설명합니다.

이 절은 다음 내용으로 구성되어 있습니다.

필수 사항

HADB를 구성하기 전에 다음을 수행하십시오.

Procedure고가용성을 위한 시스템 준비

  1. Application Server 인스턴스 및 로드 밸런서 플러그인을 설치합니다.

    자세한 내용은 Java Enterprise System 설치 설명서(Java ES를 사용할 경우) 또는 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Installation Guide(독립 실행형 Application Server 설치 프로그램을 사용할 경우)를 참조하십시오.

  2. Application Server 도메인 및 클러스터를 만듭니다.

    자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서를 참조하십시오.

  3. 웹 서버 소프트웨어를 설치 및 구성합니다.

    자세한 내용은 로드 균형 조정을 사용하도록 웹 서버 구성을 참조하십시오.

  4. 로드 균형 조정 기능을 설정 및 구성합니다.

    자세한 내용은 HTTP 로드 균형 조정 설정을 참조하십시오.

HADB 관리 에이전트 시작

관리 에이전트 ma는 HADB 호스트에서 관리 명령을 실행하고 HADB 노드에 장애가 발생할 경우 다시 시작하여 HADB 노드 수퍼바이저 프로세스의 가용성을 유지합니다.

프로덕션 배포의 경우 관리 에이전트를 서비스로 시작하여 가용성을 유지하십시오. 이 절에서는 기본 구성을 사용하여 관리 에이전트를 서비스로 시작하기 위한 간단한 지침을 제공합니다.

테스트 또는 평가를 위해 콘솔 모드에서 관리 에이전트를 시작하기 위한 지침과 해당 구성을 사용자 정의하기 위한 정보를 비롯한 자세한 내용은 HADB 관리 에이전트 사용을 참조하십시오.

이 절에서는 Java Enterprise System을 사용하는 경우 기본 구성을 사용하여 관리 에이전트를 서비스로 시작하는 방법에 대해 설명합니다.

ProcedureSolaris 또는 Linux에서 Java Enterprise System을 사용하여 관리 에이전트 시작

  1. /etc/init.d/ma-initd 파일에 대해 다음 소프트 링크를 만듭니다.


    /etc/rc0.d/K20ma-initd
    /etc/rc1.d/K20ma-initd
    /etc/rc2.d/K20ma-initd
    /etc/rc3.d/S99ma-initd
    /etc/rc5.d/S99ma-initd
    /etc/rcS.d/K20ma-initd
  2. 시스템을 재부트합니다.

    에이전트의 자동 시작 및 중지를 비활성화하려면 링크를 제거하거나 링크 이름의 문자 K와 S를 소문자로 변경합니다.

ProcedureWindows에서 Java Enterprise System을 사용하여 관리 에이전트 시작

  1. 명령 창을 엽니다.

  2. HADB_install_dir\bin\ma -i 명령을 입력합니다.

    이렇게 하면 기본 구성으로 관리 에이전트가 설치되고 시작됩니다.

다음 순서

관리 에이전트를 서비스로 중지하고 제거(등록 해제)하려면 다음 명령을 사용합니다. HADB_install_dir\bin\ma -r 명령을 사용합니다.

ProcedureSolaris 또는 Linux에서 독립 실행형 Application Server를 사용하여 관리 에이전트 시작

  1. 쉘에서 현재 디렉토리를 HADB_install_dir /bin으로 변경합니다.

  2. 쉘 스크립트 ma-initd를 편집합니다.

    스크립트에서 설치에 맞게 HADB_ROOT 및 HADB_MA_CFG의 기본값을 대체합니다.

    • HADB_ROOT는 HADB 설치 디렉토리 HADB_install_dir입니다.

    • HADB_MA_CFG는 관리 에이전트 구성 파일의 위치입니다. 자세한 내용은 관리 에이전트 구성 사용자 정의를 참조하십시오.

  3. ma-initd/etc/init.d 디렉토리로 복사합니다.

  4. /etc/init.d/ma-initd 파일에 대해 다음 소프트 링크를 만듭니다.


    /etc/rc0.d/K20ma-initd
    /etc/rc1.d/K20ma-initd
    /etc/rc2.d/K20ma-initd
    /etc/rc3.d/S99ma-initd
    /etc/rc5.d/S99ma-initd
    /etc/rcS.d/K20ma-initd

ProcedureWindows에서 독립 실행형 Application Server를 사용하여 관리 에이전트 시작

  1. 명령 창을 엽니다.

  2. HADB_install_dir\bin\ma -i 명령을 입력합니다.

    프로세스가 실패하거나 시스템이 재부트되면 관리 에이전트가 자동으로 다시 시작됩니다.

다음 순서

관리 에이전트를 서비스로 중지하고 제거(등록 해제)하려면 다음 명령을 사용합니다. HADB_install_dir\bin\ma -r ma.cfg 명령을 사용합니다.

고가용성을 위한 클러스터 구성

이 절을 시작하기 전에 하나 이상의 Application Server 클러스터를 만들어야 합니다. 클러스터를 만드는 방법에 대한 자세한 내용은 클러스터 만들기를 참조하십시오.

DAS(Domain Administration Server)가 실행 중인 시스템에서 다음 명령을 사용하여 HADB를 사용하도록 클러스터를 구성합니다.

asadmin configure-ha-cluster --user admin --hosts hadb_hostname ,hadb_hostname --devicesize 256 clusterName

hadb_hostname을 HADB가 실행 중인 시스템의 호스트 이름으로 대체하고 clusterName을 클러스터의 이름으로 대체합니다. 시스템을 한 대만 사용할 경우에는 호스트 이름을 두 번 제공해야 합니다.

이 간단한 예에서는 HADB의 두 노드를 동일한 시스템에서 실행합니다. 작업용 설정에서는 둘 이상의 시스템을 사용하는 것이 좋습니다.

고가용성을 위한 응용 프로그램 구성

관리 콘솔의 응용 프로그램 > 엔터프라이즈 응용 프로그램에서 응용 프로그램을 선택합니다. 가용성 사용을 설정하고 저장을 누릅니다.

클러스터 다시 시작

관리 콘솔에서 클러스터를 다시 시작하려면 클러스터 > cluster-name을 선택합니다. 인스턴스 중지를 누릅니다. 인스턴스가 중지되면 "인스턴스 시작"을 누릅니다.

또는 다음 asadmin 명령을 사용할 수도 있습니다.

asadmin stop-cluster --user admin cluster-name
asadmin start-cluster --user admin cluster-name

이러한 명령에 대한 자세한 내용은 stop-cluster(1)start-cluster(1)을 참조하십시오.

Web Server 다시 시작

Web Server를 다시 시작하려면 다음 Web Server 명령을 입력합니다.

web_server_root/https-hostname/reconfig

web_server_root를 Web Server 루트 디렉토리로 대체하고 hostname을 호스트 시스템의 이름으로 대체합니다.

Procedure로드 밸런서로 작동하는 Web Server 인스턴스 정리

  1. 다음과 같이 로드 밸런서 구성을 삭제합니다.

    asadmin delete-http-lb-ref --user admin --config MyLbConfig FirstCluster

    asadmin delete-http-lb-config --user admin MyLbConfig

  2. 새 Web Server 인스턴스를 만든 경우 다음을 수행하여 삭제할 수 있습니다.

    1. Web Server의 관리 콘솔로 로그온합니다.

    2. 인스턴스를 중지합니다.

      인스턴스를 삭제합니다.

HADB 업그레이드

HADB는 소프트웨어 업그레이드로 인해 인터럽트되지 않는 "Always On" 서비스를 제공하도록 설계되었습니다. 이 절에서는 데이터베이스를 오프라인으로 만들거나 가용성을 손상시키지 않으면서 새 버전의 HADB로 업그레이드하는 방법에 대해 설명합니다.

다음 절에서는 HADB 설치를 업그레이드하는 방법에 대해 설명합니다.

ProcedureHADB를 새 버전으로 업그레이드

  1. 새 버전의 HADB를 설치합니다.

  2. HADB 등록 해제에 설명된 대로 기존 HADB 설치의 등록을 해제합니다.

  3. HADB 패키지 등록에 설명된 대로 새 HADB 버전을 등록합니다.

    HADB 관리 도메인에 HADB 패키지를 등록하면 HADB 패키지를 쉽게 업그레이드하거나 변경할 수 있습니다. 관리 에이전트는 소프트웨어 패키지의 위치뿐만 아니라 도메인에 있는 호스트에 대한 버전 정보를 추적합니다. 기본 패키지 이름은 V로 시작하며 hadbm 프로그램의 버전 번호를 포함하는 문자열입니다.

  4. 데이터베이스에서 사용하는 패키지를 변경합니다.

    다음 명령을 입력합니다.


    hadbm set PackageName=package
    

    여기서 package는 새 HADB 패키지의 버전 번호입니다.

  5. 필요한 경우 관리 에이전트 시작 스크립트를 바꿉니다.

    자세한 내용은 관리 에이전트 시작 스크립트 교체를 참조하십시오.

HADB 패키지 등록

hadbm registerpackage 명령을 사용하여 관리 도메인의 호스트에 설치된 HADB 패키지를 등록합니다. hadbm create를 사용하여 데이터베이스를 만들 때 HADB 패키지를 등록할 수도 있습니다.

hadm registerpackage 명령을 사용하기 전에 모든 관리 에이전트가 호스트 목록의 모든 호스트에서 구성되고 실행되고 있는지, 관리 에이전트의 저장소를 업데이트할 수 있는지, 동일한 패키지 이름으로 이미 등록된 소프트웨어 패키지가 없는지 확인합니다.

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

hadbm registerpackage --packagepath=path [-- hosts=hostlist] [-- adminpassword=password | -- adminpasswordfile=file] [-- agent=maurl] [[package-name]]

package-name 피연산자는 패키지의 이름입니다.

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

표 2–1 hadbm registerpackage 옵션

옵션 

설명 

--hosts=hostlist

-H 

쉼표로 구분되거나 큰따옴표로 묶이고 공백으로 구분된 호스트 목록 

--packagepath=path

-L 

HADB 소프트웨어 패키지에 대한 경로. 

예를 들어, 다음 명령을 사용하면 소프트웨어 패키지 v4가 호스트 host1, host2, host3에 등록됩니다.

hadbm registerpackage 
--packagepath=hadb_install_dir/SUNWHadb/4.4 
--hosts=host1,host2,host3 v4

다음과 같은 응답이 제공됩니다.

Package successfully registered.

--hosts 옵션을 생략하면 도메인에서 활성화된 모든 호스트에 패키지가 등록됩니다.

HADB 등록 해제

hadbm unregisterpackage 명령을 사용하여 관리 도메인에 등록된 HADB 패키지를 제거합니다.

hadbm unregisterpackage 명령을 사용하기 전에 모든 관리 에이전트가 호스트 목록의 모든 호스트에서 구성되고 실행되고 있는지, 관리 에이전트의 저장소를 업데이트할 수 있는지, 패키지가 관리 도메인에 등록되어 있는지, 등록 해제될 패키지에서 실행되도록 구성된 기존 데이터베이스가 없는지 확인합니다.

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

hadbm unregisterpackage  
--hosts=hostlist  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent= maurl]  
[package-name ]

package-name 피연산자는 패키지의 이름입니다.

--hosts 옵션에 대한 설명을 보려면 위의 HADB 패키지 등록을 참조하십시오. --hosts 옵션을 생략하면 hostlist는 기본적으로 패키지가 등록된 활성 호스트가 됩니다. 다른 명령 옵션에 대한 설명을 보려면 보안 옵션 일반 옵션을 참조하십시오.


예 2–2 HADB 등록 해제의 예

도메인의 특정 호스트에서 소프트웨어 패키지 v4를 등록 해제하려면 다음을 입력합니다.

hadbm unregisterpackage --hosts=host1,host2,host3 v4

다음과 같은 응답이 제공됩니다.

Package successfully unregistered.


관리 에이전트 시작 스크립트 교체

새 버전의 HADB를 설치할 때 /etc/init.d/ma-initd에서 관리 에이전트 시작 스크립트를 교체해야 하는 경우가 있습니다. HADB_install_dir/lib/ma-initd 파일의 내용을 확인합니다. 내용이 이전 ma-initd 파일과 다르면 이전 파일을 새 파일로 교체합니다.