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

3장 고가용성 데이터베이스 관리

이 장에서는 Sun Java System Application Server Enterprise Edition 환경의 고가용성 데이터베이스(HADB)에 대해 설명하고 이를 구성하고 관리하는 방법에 대해 설명합니다. HADB를 만들고 관리하려면 먼저 시스템의 토폴로지를 확인하고 여러 시스템에 HADB 소프트웨어를 설치해야 합니다.

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

HADB 관리 에이전트 사용

관리 에이전트 ma는 HADB 호스트에서 관리 명령을 실행합니다. 또한 관리 에이전트는 HADB 노드 수퍼바이저 프로세스가 실패한 경우 다시 시작하여 HADB의 가용성을 보장합니다.

관리 에이전트 명령 구문

관리 에이전트 ma 명령의 구문은 다음과 같습니다.

ma [common-options] 
[ service-options] 
config-file

여기서,

표 3–1 관리 에이전트 공통 옵션

옵션 

설명 

기본값 

--define name=value-D

value를 등록 정보 name에 할당합니다. 여기서 등록 정보는 구성 파일에 정의된 등록 정보 중 하나입니다. 이 옵션은 여러 번 반복하여 사용할 수 있습니다.

없음 

--help-? 

도움말 정보를 표시합니다. 

False 

--javahome path-j

path에 있는 Java Runtime Environment(1.4 이상)를 사용합니다.

없음 

--systemroot path-y

일반적으로 %SystemRoot%에 설정된 운영 체제 루트에 대한 경로입니다. 

없음 

--version-V 

버전 정보를 표시합니다. 

False 

관리 에이전트 명령 구문에서는 관리 에이전트를 Windows 서비스로 시작하기 위한 옵션에 대해 설명합니다. -i, -r 및 -s 옵션은 상호 배타적입니다. 즉 함께 사용할 수 없습니다.

Windows에서는 구성 파일 또는 명령줄에 등록 정보 값에 대한 경로를 지정할 때, 공백이 포함된 파일 경로에 큰따옴표(")를 이스케이프 문자로 사용합니다. 콜론(:) 드라이브 구분자와 백슬러시(\) 디렉토리 구분자는 "\:"\\과 같이 큰따옴표와 백슬러시가 포함된 구분자를 이스케이프 문자로 사용합니다.

표 3–2 관리 에이전트 서비스 옵션(Windows에만 해당)

옵션 

설명 

기본값 

--install-i 

에이전트를 Windows 서비스로 설치하고 서비스를 시작합니다. -i, -r 및 -s 옵션 중 하나만 사용합니다. 

False 

--name servicename-n

호스트에 여러 에이전트를 실행하는 경우 서비스에 대해 지정된 이름을 사용합니다. 

HADBMgmtAgent 

--remove-r 

Windows 서비스 관리자에서 서비스를 중지하고 에이전트를 삭제합니다. -i, -r 및 -s 옵션 중 하나만 사용합니다. 

False 

--service-s 

에이전트를 Windows 서비스로 실행합니다. -i, -r 및 -s 옵션 중 하나만 사용합니다.  

False 

관리 에이전트 구성 사용자 정의

HADB에는 관리 에이전트 설정을 사용자 정의할 때 사용할 수 있는 구성 파일이 포함되어 있습니다. 구성 파일을 지정하지 않고 관리 에이전트를 시작하면 기본값이 사용됩니다. 구성 파일을 지정하는 경우 관리 에이전트는 해당 파일의 설정을 사용합니다. 도메인의 모든 호스트에 있는 구성 파일을 다시 사용할 수 있습니다.

Procedure각 HADB 호스트의 관리 에이전트 구성을 사용자 정의하는 방법

  1. 관리 에이전트 구성 파일을 편집하고 값을 원하는 대로 설정합니다.

  2. 사용자 정의된 구성 파일을 인수로 지정하여 관리 에이전트를 시작합니다.

구성 파일

Java Enterprise System을 사용할 경우 구성 파일의 모든 항목이 주석으로 처리되어 있습니다. 기본 구성을 사용할 때는 변경할 필요가 없습니다. 관리 에이전트 구성을 사용자 정의하려면 파일에서 주석을 제거하고, 값을 원하는 대로 변경한 다음 구성 파일을 인수로 지정하여 관리 에이전트를 시작합니다.

관리 에이전트 구성 파일은 다음 위치에 설치됩니다.

독립 실행형 설치 프로그램을 사용하면 관리 에이전트 구성 파일은 다음 위치에 설치됩니다.

다음 표에서는 구성 파일의 설정에 대해 설명합니다.

표 3–3 구성 파일 설정

설정 이름 

설명 

기본값 

console.loglevel

콘솔 로그 수준. 유효한 값은 SEVERE, ERROR, WARNING, INFO, FINE, FINER, FINEST입니다. 

WARNING 

logfile.loglevel

로그 파일 로그 수준. 유효한 값은 SEVERE, ERROR, WARNING, INFO, FINE, FINER, FINEST입니다. 

INFO 

logfile.name

로그 파일의 이름 및 위치. 읽기/쓰기 액세스 권한이 있는 유효한 경로여야 합니다.  

Solaris 및 Linux:/var/opt/SUNWhadb/ma/ma.log

Windows: HADB_install_dir\ma.log

ma.server.type

클라이언트 프로토콜. JMXMP만 지원됩니다. 

jmxmp 

ma.server.
jmxmp.port

내부(UDP) 및 외부(TCP) 통신을 위한 포트 번호. 양의 정수여야 합니다. 권장 범위는 1024-49151입니다. 

1862 

ma.server.
mainternal.interfaces

인터페이스가 여러 개인 시스템의 내부 통신을 위한 인터페이스. 유효한 IPv4 주소 마스크여야 합니다. 도메인의 모든 관리 에이전트는 동일한 서브넷을 사용해야 합니다. 

예를 들어, 호스트에 10.10.116.61과 10.10.124.61의 두 인터페이스가 있는 경우 첫 번째 인스턴스를 사용하려면 10.10.116.0/24를 사용합니다. 슬래시 뒤의 숫자는 서브넷 마스크의 비트 수를 나타냅니다. 

없음 

ma.server.
dbdevicepath

HADB 장치 정보를 저장하기 위한 경로 

Solaris 및 Linux: /var/opt/SUNWhadb/4

Windows: HADB_install_dir \device

ma.server.
dbhistorypath

HADB 내역 파일을 저장하기 위한 경로 

Solaris 및 Linux: /var/opt/SUNWhadb

Windows: REPLACEDIR(런타임에 실제 URL로 바뀜) 

ma.server.
dbconfigpath

노드 구성 데이터를 저장하기 위한 경로 

Solaris 및 Linux: /var/opt/SUNWhadb/dbdef

Windows: C:\Sun\SUNWhadb\dbdef

repository.dr.path

도메인 저장소 파일에 대한 경로 

Solaris 및 Linux: /var/opt/SUNWhadb/repository

Windows: C:\Sun\SUNWhadb\repository

관리 에이전트 시작

다음 두 가지 방법으로 관리 에이전트를 시작할 수 있습니다.

관리 에이전트를 서비스로 시작

관리 에이전트를 서비스로 시작하면 시스템이 종료되거나 관리 에이전트를 명시적으로 중지하기 전까지는 계속 실행됩니다.

Solaris 또는 Linux에서 Java Enterprise System을 사용하여 관리 에이전트를 서비스로 시작

관리 에이전트를 서비스로 시작하려면 다음 명령을 사용합니다.

/etc/init.d/ma-initd start

서비스를 중지하려면 다음 명령을 사용합니다.

/etc/init.d/ma-initd stop

Windows에서 Java Enterprise System을 사용하여 관리 에이전트를 서비스로 시작

관리 에이전트를 Windows 서비스로 시작하려면 다음 명령을 사용합니다. HADB_install_dir\bin\ma -i [config-file ]

선택 인수 config-file은 관리 에이전트 구성 파일을 지정합니다. 구성 파일은 기본 관리 에이전트 구성을 변경하려는 경우에만 사용합니다.

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

관리를 수행하려면 관리 도구 | 서비스를 선택합니다. 이렇게 하면 서비스를 시작하고 중지하거나, 자동 시작을 비활성화하는 등의 작업을 할 수 있습니다.

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

관리 에이전트를 서비스로 시작하려면 다음 명령을 사용합니다.

HADB_install_dir/bin/ma-initd start

서비스를 중지하려면 다음 명령을 사용합니다.

HADB_install_dir/bin/ma-initd stop

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

관리 에이전트를 Windows 서비스로 시작하려면 다음 명령을 사용합니다. HADB_install_dir\bin\ma -i [config-file ]

선택 인수 config-file은 관리 에이전트 구성 파일을 지정합니다. 구성 파일은 기본 관리 에이전트 구성을 변경하려는 경우에만 사용합니다.

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

관리를 수행하려면 관리 도구 | 서비스를 선택합니다. 이렇게 하면 서비스를 시작하고 중지하거나, 자동 시작을 비활성화하는 등의 작업을 할 수 있습니다.

관리 에이전트의 자동 재시작 확인

Windows 플랫폼에서는 관리 에이전트를 서비스로 시작하고 나면 Windows 관리 도구를 사용하여 서비스 시작 유형을 “자동”으로 설정하고 원하는 복원 옵션을 설정합니다.

Solaris 및 Linux 플랫폼에서는 이 절의 절차를 사용하여 ma 프로세스가 실패하거나 운영 체제를 재부트하는 경우 관리 에이전트의 가용성을 보장합니다. 프로덕션 배포 시에는 이렇게 하는 것이 좋습니다.

다음 절차는 시스템이 다음 절차에 들어갈 때만 관리 에이전트가 시작되도록 합니다.

다른 실행 수준에 들어가면 관리 에이전트가 중지됩니다.

ProcedureSolaris 또는 Linux에서 Java Enterprise System을 사용하여 자동 재시작을 구성하는 방법

시작하기 전에

이 절에서는 사용자가 운영 체제 초기화 및 실행 수준에 대한 기본 사항을 이해하고 있는 것으로 가정합니다. 이 항목의 내용에 대해서는 운영 체제 설명서를 참조하십시오.

  1. 시스템의 기본 실행 수준이 3 또는 5인지 확인합니다.

    시스템의 기본 실행 수준을 확인하려면 /etc/inittab 파일을 검사하여 맨 위 근처의 행에서 다음과 비슷한 내용을 찾습니다.

    id:5:initdefault:

    이 예에서는 기본 실행 수준 5를 보여줍니다.

  2. /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
  3. 시스템을 재부트합니다.

다음 순서

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

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
다음 순서

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

콘솔 모드에서 관리 에이전트 시작

평가나 테스트를 위해 관리 에이전트를 콘솔 모드에서 수동으로 시작해야 하는 경우가 있습니다. ma 프로세스는 시스템 또는 프로세스 실패 후 다시 시작되지 않고 명령 창을 닫으면 종료되므로 프로덕션 환경에서는 관리 에이전트를 이 방법으로 시작하지 마십시오.

Solaris 또는 Linux에서 Java Enterprise System을 사용하여 콘솔 모드에서 관리 에이전트 시작

HADB 관리 에이전트를 콘솔 모드에서 시작하려면 다음 명령을 사용합니다.

opt/SUNWhadb/bin/ma [config-file]

기본 관리 에이전트 구성 파일은 /etc/opt/SUNWhadb/mgt.cfg입니다.

관리 에이전트를 중지하려면 프로세스를 종료하거나 쉘 창을 닫습니다.

Windows에서 Java Enterprise System을 사용하여 콘솔 모드에서 관리 에이전트 시작

관리 에이전트를 콘솔 모드에서 시작하려면 다음 명령을 사용합니다.

HADB_install_dir\bin\ma [config-file]

선택 인수 config-file은 관리 에이전트 구성 파일의 이름입니다. 구성 파일에 대한 자세한 내용은 관리 에이전트 구성 사용자 정의를 참조하십시오.

에이전트를 중지하려면 프로세스를 종료합니다.

Windows에서 독립 실행형 Application Server를 사용하여 콘솔 모드에서 관리 에이전트 시작

관리 에이전트를 콘솔 모드에서 시작하려면 다음 명령을 사용합니다.

HADB_install_dir\bin\ma [config-file]

선택 인수인 config-file은 관리 에이전트 구성 파일의 이름입니다. 자세한 내용은 관리 에이전트 구성 사용자 정의를 참조하십시오.

관리 에이전트를 중지하려면 프로세스를 중지합니다.

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

HADB 관리 에이전트를 콘솔 모드에서 시작하려면 다음 명령을 사용합니다.

HADB_install_dir/bin/ma [config-file]

기본 관리 에이전트 구성 파일은 HADB_install_dir /bin/ma.cfg입니다.

관리 에이전트를 중지하려면 프로세스를 종료하거나 쉘 창을 닫습니다.

hadbm 관리 명령 사용

HADB 도메인, 데이터베이스 인스턴스 및 노드를 관리하려면 hadbm 명령줄 유틸리티를 사용합니다. hadbm 유틸리티(관리 클라이언트라고도 함)는 지정된 관리 에이전트에 관리 요청을 보내고, 저장소의 데이터베이스 구성에 대한 액세스 권한이 있는 관리 서버의 역할을 합니다.

이 절에서는 다음 항목이 있는 hadbm 명령줄 유틸리티에 대해 설명합니다.

명령 구문

hadbm 유틸리티는 HADB_install_dir /bin 디렉토리에 있습니다. hadbm 명령의 일반 구문은 다음과 같습니다.

hadbm subcommand  
[-short-option [option-value]] 
[--long-option [option-value]] 
[operands]

하위 명령은 수행할 연산 또는 작업을 식별하며 대소문자를 구분합니다. 대부분의 명령에는 한 개의 피연산자(일반적으로 dbname)가 있지만 피연산자가 없거나 두 개인 명령도 있습니다.

옵션은 hadbm이 하위 명령을 수행하는 방식을 수정하며 대소문자를 구분합니다. 각 옵션에는 긴 형식과 짧은 형식이 있습니다. 짧은 형식 앞에는 한 개의 대시(-)를 붙이고 긴 형식 앞에는 두 개의 대시(--)를 붙입니다. 기능을 사용하기 위해 있어야 하는 부울 옵션을 제외하고 대부분의 옵션에는 인수 값이 필요합니다. 옵션은 명령을 성공적으로 실행하기 위해 필요합니다.

하위 명령에는 데이터베이스 이름이 필요한데 이 데이터베이스 이름을 지정하지 않으면 hadbm은 기본 데이터베이스인 hadb를 사용합니다.


예 3–1 hadbm 명령의 예

다음은 status 하위 명령의 예입니다.

hadbm status --nodes

보안 옵션

보안상의 이유로, 모든 hadbm 명령에는 관리자 암호가 필요합니다. 데이터베이스나 도메인을 만들 때 암호를 설정하려면 --adminpassword 옵션을 사용합니다. 그런 다음 데이터베이스나 도메인에 대해 작업을 수행할 때 해당 암호를 지정해야 합니다.

보안 기능을 향상시키려면 --adminpasswordfile 옵션을 사용하여 명령줄에 암호를 입력하는 대신 암호가 포함된 파일을 지정합니다. 다음 행을 사용하여 암호 파일에 암호를 정의합니다.

HADBM_ADMINPASSWORD=password

password를 암호로 바꿉니다. 파일의 다른 내용은 모두 무시됩니다.

--adminpassword--adminpasswordfile 옵션을 모두 지정하면 --adminpassword가 우선합니다. 암호가 필요하지만 명령에 암호를 지정하지 않으면 hadbm은 암호를 지정하라는 메시지를 표시합니다.


주 –

관리자 암호는 데이터베이스나 도메인을 만들 때만 설정할 수 있으며 나중에 변경할 수 없습니다.


HADB에는 관리자 암호 이외에 데이터베이스 스키마를 수정하는 작업을 수행하기 위한 데이터베이스 암호도 필요합니다. 명령 hadbm create, hadbm addnodeshadbm refragment를 사용할 때는 두 암호를 모두 사용해야 합니다.

--dbpassword 옵션을 사용하여 명령줄에 데이터베이스 암호를 지정합니다. 관리자 암호와 마찬가지로, 파일에 암호를 넣고 파일 위치를 지정하여 --dbpasswordfile 옵션을 사용할 수 있습니다. 다음 행을 사용하여 암호 파일에 암호를 설정합니다.

HADBM_DBPASSWORD=password

테스트나 평가에서는 데이터베이스나 도메인을 만들 때 --no-adminauthentication 옵션으로 암호 인증을 해제할 수 있습니다. 자세한 내용은 데이터베이스 만들기 관리 도메인 만들기를 참조하십시오.

다음 표에서는 hadbm 보안 명령줄 옵션을 요약하여 설명합니다.

표 3–4 hadbm 보안 옵션

옵션(짧은 형식) 

설명 

--adminpassword=password

-w 

데이터베이스나 도메인에 대한 관리자 암호를 지정합니다. 데이터베이스나 도메인을 만들 때 이 옵션을 사용하면 hadbm을 사용하여 데이터베이스나 도메인 관련 작업을 수행할 때마다 암호를 지정해야 합니다. 

이 옵션 또는 --adminpasswordfile 중 하나만 사용할 수 있으며, 둘 다 사용할 수는 없습니다. 

--adminpasswordfile=filepath

-W 

데이터베이스나 도메인에 대한 관리자 암호가 포함된 파일을 지정합니다. 데이터베이스나 도메인을 만들 때 이 옵션을 사용하면 hadbm을 사용하여 데이터베이스나 도메인 관련 작업을 수행할 때마다 암호를 지정해야 합니다.  

이 옵션 또는 --adminpassword 중 하나만 사용할 수 있으며, 둘 다 사용할 수는 없습니다. 

--no-adminauthentication 

-U 

데이터베이스나 도메인을 만들 때 관리자 암호가 필요하지 않음을 지정하는 옵션입니다. 보안상의 이유로, 프로덕션 배포에서는 이 옵션을 사용하지 마십시오. 

--dbpassword= password

-p 

데이터베이스 암호를 지정합니다. 데이터베이스를 만들 때 이 옵션을 사용하면 hadbm 명령을 사용하여 데이터베이스 관련 작업을 수행할 때마다 암호를 지정해야 합니다. HADB 시스템 사용자에 대한 암호를 만듭니다. 암호는 8자 이상이어야 합니다. 이 옵션 또는 --dbpasswordfile 중 하나만 사용할 수 있으며, 둘 다 사용할 수는 없습니다.

--dbpasswordfile= filepath

-P 

HADB 시스템 사용자에 대한 암호가 포함된 파일을 지정합니다. 이 옵션 또는 --dbpassword 중 하나만 사용할 수 있으며, 둘 다 사용할 수는 없습니다.

일반 옵션

일반 명령 옵션은 모든 hadbm 하위 명령에 사용할 수 있습니다. 모두 기본적으로 false인 부울 옵션입니다. 다음 표에서는 hadbm 일반 명령 옵션에 대해 설명합니다.

표 3–5 hadbm 일반 옵션

옵션(짧은 형식) 

설명 

--quiet 

-q 

하위 명령을 설명 메시지 없이 자동으로 실행합니다. 

--help 

-? 

이 명령 및 지원되는 모든 하위 명령에 대한 간략한 설명을 표시합니다. 하위 명령이 필요하지 않습니다. 

--version 

-V 

hadbm 명령의 버전 세부 정보를 표시합니다. 하위 명령이 필요하지 않습니다.

--yes 

-y 

하위 명령을 비대화식 모드에서 실행합니다. 

--force 

-f 

명령을 비대화식으로 실행하고 명령의 사후 조건이 이미 달성되면 오류가 발생하지 않습니다. 

--echo 

-e 

모든 옵션 및 사용자 정의된 값이나 기본값과 함께 하위 명령을 표시한 다음 하위 명령을 실행합니다. 

--agent=URL

-m 

관리 에이전트에 대한 URL입니다. URL: hostlist:port. 여기서 hostlist는 쉼표로 구분된 호스트 이름 또는 IP 주소의 목록이며, port는 관리 에이전트가 작동 중인 포트 번호입니다.

기본값은 localhost:1862입니다. 

참고: 이 옵션은 hadbm addnodes에 유효하지 않습니다.

환경 변수

편의상 명령 옵션을 지정하는 대신 환경 변수를 설정할 수 있습니다. 다음 표에서는 hadbm 명령 옵션에 해당하는 환경 변수에 대해 설명합니다.

표 3–6 HADB 옵션 및 환경 변수

긴 형식 

짧은 형식 

기본값 

환경 변수 

--adminpassword 

-w 

없음 

$HADBM_ADMINPASSWORD 

--agent 

--m 

localhost:1862 

$HADBM_AGENT 

--datadevices 

-a 

1

$HADBM_DATADEVICES 

dbname 

없음 

hadb

$HADBM_DB 

--dbpassword 

-p 

없음 

$HADBM_DBPASSWORD 

--dbpasswordfile 

-P 

없음 

$HADBM_DBPASSWORDFILE 

--devicepath 

-d 

Solaris 및 Linux: /var/opt/SUNWhadb

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

$HADBM_DEVICEPATH 

--devicesize 

-z 

없음 

$HADBM_DEVICESIZE 

--echo 

-e 

False 

$HADBM_ECHO 

--fast 

-F 

False 

$HADBM_FAST 

--force 

-f 

False 

$HADBM_FORCE 

--help 

-? 

False 

$HADBM_HELP 

--historypath 

-t 

Solaris 및 Linux: /var/opt/SUNWhadb

Windows: REPLACEDIR(런타임에 실제 URL로 바뀜) 

$HADBM_HISTORYPATH 

--hosts 

-H 

없음 

$HADBM_HOSTS 

--interactive 

-i 

True 

$HADBM_INTERACTIVE 

--no-refragment 

-r 

False 

$HADBM_NOREFRAGMENT 

--portbase 

-b 

15200 

$HADBM_PORTBASE 

--quiet 

-q 

False 

$HADBM_QUIET 

--repair 

-R 

True 

$HADBM_REPAIR 

--rolling 

-g 

True 

$HADBM_ROLLING 

--saveto 

-o 

없음 

$HADBM_SAVETO 

--set 

-S 

없음 

$HADBM_SET 

--spares 

-s 

$HADBM_SPARES 

--startlevel 

-l 

normal 

$HADBM_STARTLEVEL 

--version 

-V 

False 

$HADBM_VERSION 

--yes 

-y 

False 

$HADBM_YES 

HADB 구성

이 절에서는 다음과 같은 기본 HADB 구성 작업에 대해 설명합니다.

관리 도메인 만들기

hadbm createdomain 명령은 지정된 HADB 호스트가 포함된 관리 도메인을 만들고 호스트 및 지속성 구성 저장소 간의 내부 통신 채널을 초기화합니다.

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

hadbm createdomain
 [--adminpassword=password |--adminpasswordfile=
file | --no-adminauthentication] [--agent=maurl]
 hostlist

hostlist 피연산자는 쉼표로 구분된 HADB 호스트의 목록이며 각 호스트는 유효한 IPv4 네트워크 주소입니다. 새 도메인에 원하는 모든 호스트를 hostlist에 포함시킵니다.

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

이 명령을 사용하기 전에 hostlist의 모든 호스트에 HADB 관리 에이전트가 실행되고 있는지 확인하십시오. 또한 관리 에이전트는 다음 조건에 맞아야 합니다.

hadbm은 관리 도메인을 만든 후에 도메인의 모든 호스트를 활성화합니다. 그런 다음 관리 에이전트는 데이터베이스를 관리할 수 있게 됩니다. HADB 도메인을 만들고 나면, 다음 단계에서 HADB 데이터베이스를 만듭니다. HADB 데이터베이스 만들기에 대한 자세한 내용은 데이터베이스 만들기를 참조하십시오.


예 3–2 HADB 관리 도메인 만들기

다음 예에서는 네 개의 지정된 호스트에 관리 도메인을 만듭니다.

hadbm createdomain --adminpassword= password host1,host2,host3,host4

hadbm이 명령을 성공적으로 실행하면 다음 메시지가 표시됩니다.

Domain host1,host2,host3, host4 created.

HADB 도메인을 만든 후에는 HADB 패키지의 경로와 버전을 관리 에이전트에 등록합니다.


데이터베이스 만들기

hadbm create 명령을 사용하여 데이터베이스를 수동으로 만듭니다.

이 명령을 사용하여 데이터베이스를 만들기 전에 관리 도메인을 만들고 HADB 패키지를 등록합니다. hadbm create를 실행할 때 이 두 단계를 수행하지 않은 경우 이 명령은 해당 단계를 암시적으로 수행합니다. 거의 동작하지 않는 것처럼 보일 수 있지만 이 명령 중 하나라도 실패하면 디버깅이 어려워질 수 있습니다. hadbm create는 기본 단위가 아닙니다. 즉, 암시적 명령 중 하나가 실패하면 성공적으로 실행된 명령이 롤백되지 않습니다. 따라서 도메인을 만들고 HADB 패키지를 등록한 후에만 데이터베이스를 만드는 것이 가장 좋습니다.

예를 들어 hadbm createdomainhadbm registerpackage는 성공적으로 실행되지만 hadbm create database가 실패한 경우 hadbm createdomainhadbm registerpackage에 의한 변경 사항은 지속됩니다.

Procedure데이터베이스를 만드는 방법

  1. 관리 도메인을 만듭니다.

    자세한 내용은 관리 도메인 만들기를 참조하십시오.

  2. HADB 패키지를 등록합니다.

    자세한 내용은 HADB 패키지 등록을 참조하십시오.

  3. hadbm create 명령을 사용하여 데이터베이스를 만듭니다.

    명령 구문에 대한 자세한 내용은 다음 절을 참조하십시오.

hadbm create 명령 구문

hadbm create [--package= name] [--packagepath= path] [--historypath= path] [--devicepath= path] [--datadevices= number ] [--portbase= number] [--spares=number ] [--set=attr-val-list ] [--agent=maurl] [--no-cleanup] [ --no-clear ] [ --devicesize =size] [--dbpassword=password | --dbpasswordfile=file ] --hosts=host list [-- adminpassword=password | -- adminpasswordfile=file | -- no-adminauthentication ] [dbname ]

dbname 피연산자는 고유해야 하는 데이터베이스 이름을 지정합니다. 데이터베이스 이름이 고유한지 확인하려면 hadbm list 명령을 사용하여 기존 데이터베이스 이름을 나열합니다. 여러 데이터베이스를 만들 필요가 없으면 기본 데이터베이스 이름을 사용합니다. 예를 들어 동일한 HADB 시스템 집합에 독립적인 데이터베이스가 있는 여러 클러스터를 만들려면 각 클러스터에 별도의 데이터베이스 이름을 사용합니다.

hadbm create 명령은 로그 파일이 아닌 콘솔에 오류 메시지를 기록합니다.

표 3–7에서는 특수한 hadbm create 명령 옵션에 대해 설명합니다. 추가적인 명령 옵션에 대한 설명은 일반 옵션을 참조하십시오.

표 3–7 hadbm create 옵션

옵션(짧은 형식) 

설명 

기본값 

--datadevices= number

-a 

각 노드의 데이터 장치 수(1~8)데이터 장치에는 0부터 시작하는 번호가 지정됩니다. 

--devicepath= path

-d 

장치에 대한 경로. 다음 네 개의 장치가 있습니다. 

  • DataDevice

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

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

  • NoManDevice(노드 관리자 장치).

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

Solaris 및 Linux: /var/opt/SUNWhadb

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

기본값은 관리 에이전트 구성 파일의 ma.server.dbdevicepath로 지정됩니다. 자세한 내용은 구성 파일을 참조하십시오.

--devicesize= size

-z 

각 노드의 장치 크기. 자세한 내용은 장치 크기 지정을 참조하십시오.

기존 노드에 저장 공간 추가에 설명된 대로 장치 크기를 늘립니다.

1024MB 

최대 크기는 최대 운영 체제 파일 크기 또는 256GB 중 작은 크기입니다. 최대 크기는 다음과 같습니다. 

(4 x LogbufferSize + 16MB) / n

여기서 n은 옵션 --datadevices에서 제공된 데이터 장치 수입니다.

--historypath= path

-t 

내역 파일에 대한 경로. 이 경로는 반드시 존재해야 하며 쓰기 가능해야 합니다. 

내역 파일에 대한 자세한 내용은 내역 파일 지우기 및 아카이브를 참조하십시오.

기본값은 관리 에이전트 구성 파일의 ma.server.dbhistorypath로 지정됩니다. 자세한 내용은 구성 파일을 참조하십시오.

Solaris 및 Linux:/var/opt/SUNWhadb

Windows: REPLACEDIR(런타임에 실제 URL로 바뀜) 

--hosts= hostlist

-H 

데이터베이스의 노드에 대한 호스트 이름 또는 IP 주소(IPv4만)의 쉼표로 구분된 목록입니다. DNS 조회에 대한 종속성을 방지하려면 IP 주소를 사용합니다. 호스트 이름은 절대적이어야 합니다. localhost 또는 127.0.0.1을 호스트 이름으로 사용할 수 없습니다.

자세한 내용은 호스트 지정을 참조하십시오.

없음 

--package=name -k

HADB 패키지의 이름(버전). 패키지가 없으면 기본 패키지가 등록됩니다. 

이 옵션은 더 이상 사용되지 않습니다. 도메인의 패키지를 등록하려면 hadbm registerpackage 명령을 사용합니다. 

없음 

--packagepath=path-L

HADB 소프트웨어 패키지에 대한 경로. 패키지가 도메인에 등록되지 않은 경우에만 사용합니다. 

이 옵션은 더 이상 사용되지 않습니다. 도메인의 패키지를 등록하려면 hadbm registerpackage 명령을 사용합니다. 

없음 

--portbase= number

-b 

노드 0에 사용되는 포트 기본 번호입니다. 연속되는 노드는 이 숫자부터 20단계로 자동 할당되는 포트 기본 번호입니다. 각 노드는 포트 기본 번호 및 다음 다섯 개의 연속되는 번호가 지정된 포트를 사용합니다. 

동일한 시스템에서 여러 데이터베이스를 실행하려면 포트 번호를 명시적으로 할당하도록 계획해야 합니다. 

15200 

--spares= number

-s 

예비 노드의 수. 이 숫자는 짝수여야 하며 --hosts 옵션에 지정된 노드 수보다 작아야 합니다.

--set=attr-val-list

-S 

데이터베이스 구성 속성(name =value 형식)의 쉼표로 구분된 목록. 데이터베이스 구성 속성에 대한 설명은 내역 파일 지우기 및 아카이브를 참조하십시오.

없음 


예 3–3 데이터베이스 만들기의 예

다음 명령은 데이터베이스를 만드는 예입니다.

hadbm create --spares 2 --devicesize 1024 --dbpassword secret123
 --hosts n0,n1,n2,n3,n4,n5

호스트 지정

--hosts 옵션을 사용하여 데이터베이스의 노드에 대한 호스트 이름 또는 IP 주소의 쉼표로 구분된 목록을 지정합니다. hadbm create 명령은 목록의 각 호스트 이름(또는 IP 주소)에 대해 한 개의 노드를 만듭니다. 노드 수는 짝수여야 합니다. 중복되는 호스트 이름을 사용하여 동일한 시스템에 포트 번호가 다른 여러 노드를 만듭니다. 동일한 시스템의 노드가 미러 노드가 아닌지 확인합니다.

노드에는 이 옵션에 나열된 순서로 0부터 시작하여 번호가 지정됩니다. 첫 번째 미러되는 쌍은 노드 0과 1이고, 두 번째는 2와 3 등의 순서입니다. 홀수 번호가 지정된 노드는 한 DRU에 있고, 짝수 번호가 지정된 노드는 다른 DRU에 있습니다. --spares 옵션을 사용하는 예비 노드는 숫자가 가장 큽니다.

이중 네트워크 인터페이스 구성에 대한 자세한 내용은 네트워크 중복 구성을 참조하십시오.

장치 크기 지정

--devicesize 옵션을 사용하여 장치 크기를 지정합니다. 권장하는 장치 크기는 다음과 같습니다.

(4x / nd + 4l/d) / 0.99

여기서,

이기종 장치 경로 설정

각 노드 또는 서비스에 대해 서로 다른 장치 경로를 설정하려면 hadbm create-- set 옵션을 사용합니다. 장치 유형에는 DataDevice, NiLogDevice(노드 내부 로그 장치), RelalgDevice(관계형 algebra 쿼리 장치) 및 NoManDevice(노드 관리자 장치)의 네 가지 유형이 있습니다. 각 name =value 쌍의 구문은 다음과 같습니다. 여기서 -devnodeviceDataDevice인 경우에만 필수입니다.

node-nodeno.device-devno.Devicepath

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

--set Node-0.DataDevice-0.DevicePath=/disk0,
Node-1.DataDevice-0.DevicePath=/disk 1

다음과 같이 내역 파일에 이기종 경로를 설정할 수도 있습니다.

node-nodeno.historypath=path

내역 파일에 대한 자세한 내용은 내역 파일 지우기 및 아카이브를 참조하십시오.

특정 노드 또는 장치로 설정되지 않은 장치 경로의 기본값은 --devicepath입니다.


주 –

hadbm sethadbm addnodes 명령을 사용하여 내역 파일의 위치와 장치 경로를 변경합니다.


문제 해결

데이터베이스를 만들 때 문제가 발생하는 경우 다음을 확인하십시오.

구성 속성 보기 및 수정

속성 hadbm get 및 hadbm set 명령을 각각 사용하여 데이터베이스 구성을 보고 수정할 수 있습니다.

구성 속성의 값 가져오기

구성 속성의 값을 가져오려면 hadbm get 명령을 사용합니다. 유효한 속성 목록은 구성 속성을 참조하십시오. 명령 구문은 다음과 같습니다.

hadbm get attribute-list | --all  
[dbname]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

attribute-list 피연산자는 쉼표로 구분되거나 따옴표가 붙은 공백으로 구분된 속성 목록입니다. --all 옵션은 모든 속성의 값을 표시합니다. hadbm get에 대한 모든 속성의 목록은 구성 속성을 참조하십시오.

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


예 3–4 hadbm get 사용의 예

hadbm get JdbcUrl,NumberOfSessions

구성 속성의 값 설정

구성 속성의 값을 설정하려면 hadbm set 명령을 사용합니다. 유효한 속성 목록은 구성 속성을 참조하십시오.

hadbm set [dbname] attribute
=value[,attribute=
value...]
 [--adminpassword=password | --adminpasswordfile=file]
 [--agent=maurl]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

attribute=value 목록은 쉼표로 구분되거나 따옴표가 붙은 공백으로 구분된 속성 목록입니다.

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

이 명령이 성공적으로 실행되면 데이터베이스가 이전 상태 또는 이전보다 향상된 상태로 다시 시작됩니다. 데이터베이스 상태에 대한 자세한 내용은 HADB 상태 가져오기를 참조하십시오. 데이터베이스 재시작에 설명된 대로 HADB를 다시 시작합니다.

hadbm set으로는 다음 속성을 설정할 수 없습니다. 대신, 데이터베이스를 만들 때 해당 속성을 설정합니다( 데이터베이스 만들기 참조).


주 –

hadbm set을 사용하여 ConnectionTrace 또는 SQLTraceMode를 제외한 구성 속성을 설정하면 HADB의 롤링이 재시작됩니다. 롤링 재시작에서 각 노드가 중지되고 한 번에 하나씩 새 구성으로 시작됩니다. HADB 서비스는 인터럽트되지 않습니다.

ConnectionTrace 또는 SQLTraceMode를 설정하면 롤링 재시작이 발생하지 않지만 변경 내용은 Application Server 인스턴스에서 만든 새 HADB에만 적용됩니다.


구성 속성

다음 표에서는 hadbm set으로 수정하고 hadbm get으로 검색할 수 있는 구성 속성을 나열합니다.

표 3–8 구성 속성

속성 

설명 

기본값 

Range 

ConnectionTrace

값이 true이면, 클라이언트 연결(JDBC, ODBC)이 초기화 또는 종료될 때 HADB 내역 파일에 메시지를 기록합니다. 

False 

True 또는 False 

CoreFile

기본값을 변경하지 마십시오. 

False 

True 또는 False 

DatabaseName

데이터베이스의 이름 

hadb 

 

DataBufferPoolSize

공유 메모리에 할당된 데이터 버퍼 풀의 크기 

200MB 

16 - 2047MB 

DataDeviceSize

노드의 장치 크기를 지정합니다. 권장하는 DataDeviceSize에 대한 자세한 내용은 장치 크기 지정을 참조하십시오.

최대값은 256GB 또는 최대 운영 체제 파일 크기 중 작은 값입니다. 최소값은 다음과 같습니다. 

(4 x LogbufferSize + 16MB) / n

여기서 n은 데이터 장치 수입니다.

1024MB 

32 - 262144MB 

PackageName 

데이터베이스에서 사용하는 HADB 소프트웨어 패키지의 이름 

V4.x.x.x 

없음 

DevicePath

장치의 위치. 장치는 다음과 같습니다. 

  • 데이터 장치(DataDevice)

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

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

Solaris 및 Linux: /var/opt/SUNWhadb

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

 

EagerSessionThreshold

일반 또는 eager 유휴 세션 만료 중 사용되는 항목을 확인합니다. 

일반 유휴 세션 만료의 경우 SessionTimeout초를 초과하여 유휴 상태인 세션이 만료됩니다.

동시 세션의 수가 최대 세션 수의 EagerSessionThreshold 퍼센트를 초과하면 EagerSessionTimeout초를 초과하여 유휴 상태인 세션이 만료됩니다.

NumberOfSessions 속성의 절반 

0 - 100 

EagerSessionTimeout

eager 세션 만료가 사용될 때 데이터베이스 연결이 만료되기 전까지 유휴 상태일 수 있는 시간(초)입니다. 

120초 

0-2147483647초 

EventBufferSize

데이터베이스 이벤트가 기록되는 이벤트 버퍼의 크기. 0으로 설정하면 이벤트 버퍼 로깅이 수행되지 않습니다.

장애 발생 시에는 이벤트 버퍼가 덤프되는데, 이는 실패의 원인에 대한 중요한 정보를 제공하며 테스트 배포 도중 유용합니다. 

이벤트를 메모리에 기록하면 성능 저하가 발생할 수 있습니다. 

0MB

0-2097152MB 

HistoryPath

정보, 경고 및 오류 메시지가 포함된 HADB 내역 파일의 위치 

읽기 전용 속성입니다. 

Solaris 및 Linux: /var/opt/SUNWhadb

Windows: REPLACEDIR(런타임에 실제 URL로 바뀜) 

 

InternalLogbufferSize

데이터 저장 관련 작업을 추적하는 노드 내부 로그 장치의 크기 

12MB 

4 - 128MB 

JdbcUrl

데이터베이스에 대한 JDBC 연결 URL 

읽기 전용 속성입니다. 

없음 

 

LogbufferSize

데이터 관련 작업을 추적하는 로그 버퍼의 크기 

48MB 

4 - 2048MB 

MaxTables

HADB 데이터베이스에서 허용되는 최대 테이블 수 

1100 

100 - 1100 

NumberOfDatadevices

HADB 노드에서 사용하는 데이터 장치 수 

읽기 전용 속성입니다. 

1 - 8 

NumberOfLocks

HADB 노드에서 할당된 잠금 수 

50000 

20000-1073741824 

NumberOfSessions

HADB 노드에 대해 열 수 있는 최대 세션(데이터베이스 연결) 수 

100 

1 - 10000 

PortBase

HADB 프로세스마다 서로 다른 포트 번호를 만드는 데 사용되는 기본 포트 번호 

읽기 전용 속성입니다. 

15200 

10000 - 63000 

RelalgDeviceSize

관계형 algebra 쿼리에 사용되는 장치의 크기 

128MB 

32 - 262144MB 

SessionTimeout

일반 세션 만료가 사용될 때 데이터베이스 연결이 만료되기 전까지 유휴 상태일 수 있는 시간(초)입니다. 

1800초 

0-2147483647초 

SQLTraceMode

내역 파일에 기록되어 실행된 SQL 쿼리에 대한 정보의 양 

SHORT인 경우 SQL 세션의 로그인과 로그아웃이 기록됩니다. FULL인 경우 매개 변수 값을 포함하여 준비 및 실행 중인 모든 SQL 쿼리가 기록됩니다.

NONE 

NONE/SHORT/ FULL 

StartRepairDelay

실패한 활성 노드가 노드 복원을 수행하도록 예비 노드가 허용하는 최대 시간. 실패한 노드가 이 시간 간격 내에 복원될 수 없으면 예비 노드는 실패한 노드의 미러에서 데이터를 복사하기 시작하고 활성 상태가 됩니다. 기본값은 변경하지 않는 것이 좋습니다. 

20초 

0 - 100000초 

StatInterval

HADB 노드가 처리량과 응답 시간 통계를 내역 파일에 기록하는 간격. 이 값을 비활성화하려면 0으로 설정합니다. 

통계 행의 예는 다음과 같습니다. 

Req-reply time: # 123, min= 69 avg= 1160 max= 9311 %=100.0

# 기호 뒤의 숫자는 StatInterval을 통해 서비스된 요청의 수입니다. 다음의 세 숫자는 StatInterval을 통해 완료된 트랜잭션에 걸린 최소, 평균 및 최대 시간(밀리초)입니다. % 기호 뒤의 숫자는 StatInterval을 통해 15밀리초 안에 성공적으로 완료된 트랜잭션의 수입니다.

600초 

0 - 600초 

SyslogFacility

syslog에 보고할 때 사용되는 기능syslog 데몬이 구성되어야 합니다(자세한 내용은 man syslogd.conf 참조).

동일한 시스템에서 실행 중인 다른 응용 프로그램에서 사용하지 않는 기능을 사용합니다.  

syslog 로깅을 비활성화하려면 none으로 설정합니다.

local0 

local0, local1, local2, local3, local4, local5, local6, local7, kern, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, none 

SysLogging

값이 true이면, HADB 노드는 운영 체제의 syslog 파일에 정보를 기록합니다.

True 

True 또는 False 

SysLogLevel

운영 체제의 syslog 파일에 저장된 HADB 메시지의 최소 수준. 이 수준과 같거나 높은 모든 메시지가 기록됩니다. 예를 들어 “info”는 모든 메시지를 기록합니다.

warning 

none, alert, error, warning, info 

SyslogPrefix

HADB에서 기록된 모든 syslog 메시지 앞에 삽입되는 텍스트 문자열

hadb -dbname 

 

TakeoverTime

노드가 실패한 시간과 미러를 시작하는 시간 사이의 시간. 기본값을 변경하지 마십시오. 

10000(밀리초) 

500 - 16000밀리초 

JDBC 연결 풀 구성

Application Server는 JDBC(Java Database Connectivity) API를 사용하여 HADB와 통신합니다. asadmin configure-ha-cluster 명령은 cluster-name 클러스터에 대해 HADB와 함께 사용할 JDBC 연결 풀을 자동으로 만듭니다. 연결 풀의 이름은 cluster-name-hadb-pool입니다. JDBC 자원의 JNDI URL은 jdbc/cluster-name -hastore입니다.

일반적으로 연결 풀의 초기 구성이면 충분합니다. 노드를 추가할 때 각 HADB 활성 노드에 8개의 연결이 있도록 고정 풀 크기를 변경합니다. 노드 추가를 참조하십시오.

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

JDBC URL 가져오기

JDBC 연결 풀을 설정하려면 먼저 다음과 같이 hadbm get 명령을 사용하여 HADB의 JDBC URL을 확인해야 합니다.

hadbm get JdbcUrl [dbname]

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

hadbm get JdbcUrl

이 명령은 다음과 같은 형식의 JDBC URL을 표시합니다.

jdbc:sun:hadb:host:port,
host:port,...

jdbc:sun:hadb: 접두어를 제거하고 host:port, host:port... 부분을 표 3–10에 설명된 대로 serverList 연결 풀 등록 정보의 값으로 사용합니다.

연결 풀 만들기

다음 표에서는 HADB에 필요한 연결 풀 설정을 요약하여 설명합니다. 노드를 추가할 때 고정 풀 크기를 변경합니다. 그러나 다른 설정은 변경하지 마십시오.

표 3–9 HADB 연결 풀 설정

설정 

HADB에 필요한 값 

Name

HADB JDBC 자원의 풀 이름 설정은 이 이름을 참조해야 합니다. 

Database Vendor

HADB 4.4 

Global Transaction Support

선택하지 않음/false 

DataSource Classname

com.sun.hadb.jdbc.ds.HadbDataSource

Steady Pool Size

각 활성 HADB노드에 대해 8개의 연결을 사용합니다. 자세한 내용은 System Deployment Guide를 참조하십시오.

Connection Validation Required

선택함/true 

Validation Method

meta-data

Table Name

지정하지 않습니다. 

Fail All Connections

선택하지 않음/false 

Transaction Isolation

repeatable-read

Guarantee Isolation Level

선택함/true 

다음은 HADB에 필요한 연결 풀 등록 정보를 요약한 표입니다. 노드를 추가할 때 serverList를 변경합니다. 그러나 다른 등록 정보는 변경하지 마십시오.

표 3–10 HADB 연결 풀 등록 정보

등록 정보 

설명 

username

asadmin create-session-store 명령에 사용할 storeuser의 이름입니다.

password

asadmin create-session-store 명령에 사용할 암호(storepassword)입니다.

serverList

HADB의 JDBC URL입니다. 이 값을 확인하려면 JDBC URL 가져오기를 참조하십시오.

데이터베이스에 노드를 추가하는 경우 이 값을 변경해야 합니다. 노드 추가를 참조하십시오.

cacheDatabaseMetaData

값이 false이면, Connection.getMetaData()를 호출할 때 데이터베이스에 대한 호출이 이루어져 연결이 유효한지 확인합니다.

eliminateRedundantEndTransaction

값이 true이면, 중복되는 완결/롤백 요청을 제거하고 열려 있는 트랜잭션이 없을 때 이들 요청을 무시하여 성능을 향상시킵니다.

maxStatement

드라이버 문 풀에 캐시된 열려 있는 연결당 문의 최대 수입니다. 이 등록 정보를 20으로 설정하십시오.


예 3–5 연결 풀 만들기

HADB JDBC 연결 풀을 만드는 asadmin create-jdbc-connection-pool 명령의 예는 다음과 같습니다.

asadmin create-jdbc-connection-pool
--user adminname --password secret 
--datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource
--steadypoolsize=32
--isolationlevel=repeatable-read
--isconnectvalidatereq=true
--validationmethod=meta-data
--property username=storename:password=secret456:serverList=
host\:port,host\:port,
host\\:port,host\:port,
host\:port,host\:port
:cacheDatabaseMetaData=false:eliminateRedundantEndTransaction=true hadbpool

Solaris에서는 등록 정보 값 내의 콜론 문자(:)에 이중 백슬래시(\\)를 이스케이프 문자로 사용합니다. Windows에서는 콜론 문자(:)에 단일 백슬래시(\)를 이스케이프 문자로 사용합니다.


JDBC 자원 만들기

다음 표에서는 HADB에 필요한 JDBC 자원 설정을 요약하여 설명합니다.

표 3–11 HADB JDBC 자원 설정

설정 

설명 

JNDI Name

다음 JNDI 이름은 세션 지속성 구성의 기본값입니다. jdbc/hastore. 기본 이름을 사용하거나 다른 이름을 사용할 수 있습니다.

또한 가용성 서비스를 활성화할 때 이 JNDI 이름을 store-pool-jndi-name 지속성 저장소 등록 정보의 값으로 지정해야 합니다.

Pool Name

이 JDBC 자원에서 사용하는 HADB 연결 풀의 이름 또는 아이디를 목록에서 선택합니다. 자세한 내용은 네트워크 중복 구성을 참조하십시오.

Data Source Enabled

선택함/true 

HADB 관리

일반적으로 네트워크, 하드웨어, 운영 체제 또는 HADB 소프트웨어를 바꾸거나 업그레이드할 때 관리 작업을 수행해야 합니다. 다음 절에서는 다양한 관리 작업에 대해 설명합니다.

도메인 관리

HADB 도메인에서 다음 작업을 수행할 수 있습니다.

명령 옵션의 설명에 대해서는 보안 옵션 일반 옵션을 참조하십시오.

도메인 확장

기존 관리 도메인에 호스트를 추가하려면 extenddomain을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm extenddomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
hostlist

HADB 호스트의 IP 주소는 IPv4 주소여야 합니다.

자세한 내용은 hadbm-extenddomain(1)을 참조하십시오.

도메인 삭제

관리 도메인을 제거하려면 deletedomain to를 사용합니다. 명령 구문은 다음과 같습니다.

hadbm deletedomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]

자세한 내용은 hadbm-deletedomain(1)을 참조하십시오.

도메인에서 호스트 제거

관리 도메인에서 호스트를 제거하려면 reducedomain을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm reducedomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
host_list

자세한 내용은 hadbm-reducedomain(1)을 참조하십시오.

도메인의 호스트 나열

관리 도메인에 정의된 모든 호스트를 나열하려면 listdomain을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm listdomain  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]

자세한 내용은 hadbm-listdomain(1)을 참조하십시오.

노드 관리

개별 노드에서 다음 작업을 수행할 수 있습니다.

노드 시작

하드웨어나 소프트웨어의 업그레이드 또는 교체로 인해 호스트가 오프라인이 되어 중지된 HADB 노드를 수동으로 시작해야 하는 경우가 있습니다. 또한 이중 장애 이외의 다른 이유로 인해 재시작에 실패한 경우에도 수동으로 시작해야 하는 경우가 있습니다. 이중 장애로부터 복원하는 방법에 대한 자세한 내용은 데이터베이스 지우기를 참조하십시오.

대부분의 경우 먼저 normal 시작 수준을 사용하여 노드 시작을 시도해야 합니다. normal 시작 수준이 실패하거나 시간 초과된 경우 repair 시작 수준을 사용해야 합니다.

데이터베이스의 노드를 시작하려면 hadbm startnode 명령을 사용합니다. 구문은 다음과 같습니다.

hadbm startnode
 [--adminpassword=password | --adminpasswordfile=file]
 [--agent=maurl]
 [--startlevel=level]
 nodeno
 [dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

nodeno 피연산자는 시작할 노드 수를 지정합니다. 데이터베이스의 모든 노드 수를 표시하려면 hadbm status를 사용합니다.

자세한 내용은 hadbm-startnode(1)을 참조하십시오.

시작 수준 옵션

hadbm startnode 명령에는 노드를 시작할 수준을 지정하는 한 개의 특수 옵션 --startlevel(짧은 형식: -l)이 있습니다.

노드 시작 수준은 다음과 같습니다.

다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오.


예 3–6 노드 시작의 예

hadbm startnode 1

노드 중지

호스트 시스템의 하드웨어나 소프트웨어를 복구 또는 업그레이드하기 위해 노드를 중지해야 하는 경우가 있습니다. 노드를 중지하려면 hadbm stopnode 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm stopnode  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[--no-repair]  
nodeno  
[dbname]

nodeno 피연산자는 중지할 노드 수를 지정합니다. 이 노드 번호의 미러 노드는 실행 중이어야 합니다. 데이터베이스의 모든 노드 번호를 표시하려면 hadbm status를 사용합니다.

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

hadbm stopnode 명령에는 중지된 노드를 대체할 예비 노드가 없음을 나타내는 한 개의 특수 옵션 --no-repair(짧은 형식: -R)가 있습니다. 이 옵션을 사용하지 않으면 예비 노드가 시작되어 중지된 노드의 기능을 대신 수행합니다.

다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오. 자세한 내용은 hadbm-stopnode(1)을 참조하십시오.


예 3–7 노드 중지의 예

hadbm stopnode 1

노드 재시작

과도한 CPU 소비 등과 같은 비정상적인 동작이 발견된 경우 노드를 재시작해야 하는 경우가 있습니다.

데이터베이스의 노드를 재시작하려면 hadbm restartnode 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm restartnode  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[--startlevel=level]  
nodeno  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

nodeno 피연산자는 재시작할 노드 수를 지정합니다. 데이터베이스의 모든 노드 수를 표시하려면 hadbm status를 사용합니다.

hadbm restartnode 명령에는 노드를 시작할 수준을 지정하는 한 개의 특수 옵션 --startlevel(짧은 형식: -l)이 있습니다. 자세한 내용은 시작 수준 옵션을 참조하십시오.

다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오. 자세한 내용은 hadbm-restartnode(1)을 참조하십시오.


예 3–8 노드 재시작의 예

hadbm restartnode 1

데이터베이스 관리

HADB 데이터베이스에 대해 다음 작업을 수행할 수 있습니다.

데이터베이스 시작

데이터베이스를 시작하려면 hadbm start 명령을 사용합니다. 이 명령은 데이터베이스가 중지되기 전에 실행 중이던 모든 노드를 시작합니다. 개별적으로 중지된(오프라인) 노드는 데이터베이스를 중지한 후 시작할 때 시작되지 않습니다.

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

hadbm start  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

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


예 3–9 데이터베이스 시작의 예

hadbm start

데이터베이스 중지

별도 작업으로 데이터베이스를 중지하고 시작하는 경우 데이터베이스가 중지된 동안에는 데이터를 사용할 수 없습니다. 데이터를 사용할 수 있도록 하려면 데이터베이스 재시작에 설명된 대로 데이터베이스를 재시작할 수 있습니다.

데이터베이스를 중지하여 다음을 수행합니다.

데이터베이스를 중지하기 전에 데이터베이스를 사용하고 있는 개별 Application Server 인스턴스를 중지하거나 ha 이외의 지속성 유형을 사용하도록 구성합니다.

데이터베이스를 중지하면 데이터베이스에서 실행되고 있는 모든 노드가 중지되고 데이터베이스가 중지됨 상태로 됩니다. 데이터베이스 상태에 대한 자세한 내용은 HADB 상태 가져오기를 참조하십시오.

데이터베이스를 중지하려면 hadbm stop 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm stop  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent=maurl]  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

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


예 3–10 데이터베이스 중지의 예

hadbm stop

데이터베이스 재시작

이상 동작을 발견한 경우(예: 일관된 시간 초과 문제) 데이터베이스를 재시작해야 하는 경우가 있습니다. 경우에 따라 재시작으로 문제가 해결될 수도 있습니다.

데이터베이스(y)를 재시작할 때 데이터베이스와 데이터는 계속 사용할 수 있습니다. 별도 작업으로 HADB를 중지하고 시작하는 경우 HADB가 중지된 동안에는 데이터와 데이터베이스 서비스를 사용할 수 없습니다. 기본적으로 hadbm restart는 노드의 롤링 재시작을 수행하기 때문입니다. 노드는 하나씩 중지하고 시작합니다. 이와 반대로 hadbm stop은 모든 노드를 동시에 중지합니다.

데이터베이스를 재시작하려면 hadbm restart 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm restart  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[--no-rolling]  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

이 명령에는 모든 노드를 한 번에 재시작하도록 지정하고 서비스가 손실되는 한 개의 특수 옵션 --no-rolling(짧은 형식: -g)이 있습니다. 이 옵션을 사용하지 않으면 이 명령은 데이터베이스의 각 노드를 현재 상태 또는 향상된 상태로 재시작합니다.

다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오. 자세한 내용은 hadbm-restart(1)을 참조하십시오.

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

hadbm restart

데이터베이스 나열

HADB 인스턴스의 모든 데이터베이스를 나열하려면 hadbm list 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm list  
[--agent=maurl] 
[--adminpassword=password | --adminpasswordfile=file]

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

데이터베이스 지우기

다음과 같은 경우 데이터베이스를 지웁니다.

hadbm clear 명령은 데이터베이스 노드를 중지하고 데이터베이스 장치를 지운 후 노드를 시작합니다. 이 명령은 테이블, 사용자 이름 및 암호를 포함하여 HADB의 Application Server 스키마 데이터 저장소를 지웁니다. hadbm clear를 실행한 후 asadmin configure-ha-cluster를 사용하여 데이터 스키마를 다시 만들고 JDBC 연결 풀을 재구성한 다음, 세션 지속성 저장소를 다시 로드합니다.

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

hadbm clear  [--fast]  [--spares=number]  
[--dbpassword=password | --dbpasswordfile= file]  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent=maurl] 
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

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

자세한 내용은 hadbm-clear(1)을 참조하십시오.

표 3–12 hadbm clear 옵션

옵션 

설명 

기본값 

--fast

-F 

데이터베이스를 초기화하는 동안 장치 초기화를 건너뜁니다. 디스크 저장 장치가 손상된 경우에는 사용하지 마십시오. 

적용할 수 없음 

--spares= number

-s 

재초기화된 데이터베이스가 사용할 예비 노드 수. 이 숫자는 짝수여야 하며 데이터베이스에 있는 노드 수보다 작아야 합니다. 

이전 예비 노드 수 

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

hadbm clear --fast --spares=2 --dbpassword secret123

데이터베이스 제거

기존 데이터베이스를 제거하려면 hadbm delete 명령을 사용합니다. 이 명령은 데이터베이스의 구성 파일, 장치 파일 및 내역 파일을 삭제하고 공유 메모리 자원을 해제합니다. 제거할 데이터베이스는 반드시 존재해야 하고 중지되어야 합니다. 데이터베이스 중지를 참조하십시오.

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

hadbm delete  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

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


예 3–11 데이터베이스 제거의 예

다음 명령은

hadbm delete

기본 데이터베이스 hadb를 삭제합니다.


세션 데이터 손상에서 복원

다음은 세션 데이터가 손상되었을 수 있음을 나타냅니다.

Procedure세션 저장소를 일관된 상태로 되돌리는 방법

세션 저장소가 손상된 것으로 판단되면 다음 절차에 따라 세션 저장소를 일관된 상태로 되돌립니다.

  1. 세션 저장소를 지웁니다.

    이 작업으로 문제가 해결되는지 확인합니다. 문제가 해결되면 중지합니다. 문제가 해결되지 않으면(예: 서버 로그에 오류가 계속 나타나는 경우) 계속합니다.

  2. 모든 노드에서 데이터 공간을 다시 초기화하고 데이터베이스에서 데이터를 지웁니다.

    데이터베이스 지우기를 참조하십시오.

    이 작업으로 문제가 해결되는지 확인합니다. 문제가 해결되면 중지합니다. 문제가 해결되지 않으면(예: 서버 로그에 오류가 계속 나타나는 경우) 계속합니다.

  3. 데이터베이스를 삭제한 다음 다시 만듭니다.

    데이터베이스 제거 데이터베이스 만들기를 참조하십시오.

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 인스턴스를 다시 활성화합니다.

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

HADB 모니터링

다음 방법으로 HADB의 활동을 모니터할 수 있습니다.

이 절에서는 hadbm status, hadbm deviceinfohadbm resourceinfo 명령에 대해 간략하게 설명합니다. HADB 정보 해석에 대한 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Performance Tuning GuidePerformance를 참조하십시오.

HADB 상태 가져오기

데이터베이스나 노드의 상태를 표시하려면 hadbm status 명령을 사용합니다. 명령 구문은 다음과 같습니다.

hadbm status  
[--nodes]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl] 
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

--nodes 옵션(짧은 형식 -n)은 데이터베이스의 각 노드에 대한 정보를 표시합니다. 자세한 내용은 노드 상태를 참조하십시오. 다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오.

자세한 내용은 hadbm-status(1)을 참조하십시오.


예 3–15 HADB 상태 가져오기의 예

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

hadbm status --nodes

데이터베이스 상태

데이터베이스의 state는 현재 상태를 요약합니다. 다음 표에서는 가능한 데이터베이스 상태에 대해 설명합니다.

표 3–14 HADB 상태

데이터베이스 상태 

설명 

High-Availability Fault Tolerant(HAFaultTolerant) 

데이터베이스에 내결함성이 있으며 각 DRU에 하나 이상의 예비 노드가 있습니다. 

Fault Tolerant 

미러된 모든 노드 쌍이 실행 중입니다. 

Operational 

미러된 각 노드 쌍에서 하나 이상의 노드가 실행 중입니다. 

Non Operational 

미러된 하나 이상의 노드 쌍에 두 노드가 모두 없습니다. 

데이터베이스가 작동 중이 아닌 경우 데이터베이스 지우기에 설명된 대로 데이터베이스를 지웁니다.

Stopped 

데이터베이스에서 실행 중인 노드가 없습니다. 

Unknown 

데이터베이스의 상태를 확인할 수 없습니다. 

노드 상태

--nodes 옵션을 사용하면 hadbm status 명령은 데이터베이스의 각 노드에 대해 다음 정보를 표시합니다.

노드의 역할 및 상태는 이 절에 설명된 대로 변경할 수 있습니다.

노드의 역할

노드는 만드는 동안 역할이 할당되며 다음 역할 중 하나를 가질 수 있습니다.

노드의 상태

노드는 다음 상태 중 하나일 수 있습니다.

장치 정보 가져오기

HADB 데이터(디스크 저장소) 장치의 사용 가능한 공간 모니터:

데이터 장치의 사용 가능 공간에 대한 정보를 가져오려면 hadbm deviceinfo 명령을 사용합니다. 이 명령은 데이터베이스의 각 노드에 대해 다음 정보를 표시합니다.

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

hadbm deviceinfo  [--details]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  [dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

--details 옵션은 다음과 같은 추가 정보를 표시합니다.

다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오.

자세한 내용은 hadbm-deviceinfo(1)을 참조하십시오.

사용자 데이터에 사용 가능한 공간을 확인하려면 총 장치 크기를 확인한 다음 LogBufferSize의 네 배에 장치 크기의 1%를 더한 HADB에 대해 예약된 공간을 뺍니다. 로그 버퍼의 크기를 모르는 경우 hadbm get logbufferSize를 사용합니다. 예를 들어, 총 장치 크기가 128MB이고 LogBufferSize가 24MB인 경우 사용자 데이터에 사용 가능한 공간은 128 – (4 x 24) = 32MB입니다. 32MB에서 절반은 복제된 데이터에 사용되고 약 1퍼센트는 색인에 사용되며 25퍼센트만 실제 사용자 데이터에 사용할 수 있습니다.

사용자 데이터에 사용 가능한 공간은 총 크기와 예약된 크기가 다릅니다. 나중에 데이터를 재조각화하는 경우 여유 공간은 사용자 데이터에 사용 가능한 공간의 약 50%와 같아야 합니다. 재조각화가 관련되지 않으면 데이터 장치를 최대한 활용할 수 있습니다. 장치 공간이 부족한 상태에서 시스템이 실행 중인 경우 내역 파일에 자원 소모 경고가 기록됩니다.

HADB 조정에 대한 자세한 내용은 Sun Java System Application Server Performance Tuning Guide를 참조하십시오.


예 3–16 장치 정보 가져오기의 예

다음 명령은

hadbm deviceinfo --details

다음과 같은 예의 결과를 표시합니다.

NodeNO Totalsize Freesize Usage NReads NWrites DeviceName
0      128       120      6%    10000  5000    C:\Sun\SUNWhadb\hadb.data.0
1      128       124      3%    10000  5000    C:\Sun\SUNWhadb\hadb.data.1
2      128       126      2%     9500  4500    C:\Sun\SUNWhadb\hadb.data.2
3      128       126      2%     9500  4500    C:\Sun\SUNWhadb\hadb.data.3

런타임 자원 정보 가져오기

hadbm resourceinfo 명령은 HADB 런타임 자원 정보를 표시합니다. 이 정보를 사용하여 자원 경쟁을 식별하고 성능 병목 현상을 줄일 수 있습니다. 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Performance Tuning GuideTuning HADB를 참조하십시오.

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

hadbm resourceinfo  [--databuf]  [--locks]  [--logbuf]  [--nilogbuf]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

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

자세한 내용은 hadbm-resourceinfo(1)을 참조하십시오.

표 3–15 hadbm resourceinfo 명령 옵션

옵션 

설명 

--databuf

-d 

데이터 버퍼 풀 정보를 표시합니다. 

자세한 내용은 아래의 데이터 버퍼 풀 정보를 참조하십시오.

--locks

-l 

잠금 정보를 표시합니다. 

자세한 내용은 아래의 잠금 정보를 참조하십시오.

--logbuf

-b 

로그 버퍼 정보를 표시합니다. 

자세한 내용은 아래의 로그 버퍼 정보를 참조하십시오.

--nilogbuf

-n 

노드 내부 로그 버퍼 정보를 표시합니다. 

자세한 내용은 아래의 노드 내부 로그 버퍼 정보를 참조하십시오.

데이터 버퍼 풀 정보

데이터 버퍼 풀 정보에는 다음이 포함됩니다.

사용자 트랜잭션이 레코드에 대해 작업을 수행할 때 레코드가 포함된 페이지가 데이터 버퍼 풀에 있어야 합니다. 그렇지 않으면 miss 또는 페이지 오류가 발생합니다. 그런 다음 트랜잭션은 디스크의 데이터 장치 파일에서 페이지가 검색될 때까지 기다립니다.

실패율이 높으면 데이터 버퍼 풀을 늘리십시오. 실패는 누적되므로 hadbm resourceinfo를 주기적으로 실행하고 두 번 실행 간의 차이를 사용하여 실패율을 확인하십시오. 사용 가능 공간이 매우 작은 경우에는 검사점 메커니즘이 사용 가능한 새 블록을 만들기 때문에 걱정하지 않아도 됩니다.


예 3–17 데이터 버퍼 풀 정보의 예

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


NodeNO Avail Free Access Misses Copy-on-Write
0 256 128 100000 50000 10001 256 128 110000 45000 950

잠금 정보

잠금 정보는 다음과 같습니다.

단일 트랜잭션은 노드에서 사용 가능한 잠금의 25%까지 사용할 수 있습니다. 따라서 대규모로 작업을 수행하는 트랜잭션은 이 제한 내용을 알고 있어야 합니다. 이러한 트랜잭션은 일괄 작업으로 수행하는 것이 좋습니다. 여기서 각 일괄 작업은 별도의 트랜잭션, 즉 각 일괄 작업 커밋으로 취급되어야 합니다. repeatable read 격리 수준으로 실행 중인 읽기 작업과 delete, insertupdate 작업은 트랜잭션이 종료된 후에만 해제되는 잠금을 사용하기 때문입니다.

NumberOfLocks를 변경하려면 내역 파일 지우기 및 아카이브를 참조하십시오.


예 3–18 잠금 정보의 예

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


NodeNO Avail Free Waits
0 50000 20000 101 50000 20000 0

로그 버퍼 정보

로그 버퍼 정보는 다음과 같습니다.

사용 가능 공간이 매우 작은 경우에는 HADB가 로그 버퍼의 압축을 시작하기 때문에 걱정하지 않아도 됩니다. HADB는 링 버퍼의 처음부터 압축을 시작하고 연속되는 로그 레코드에 대해 수행합니다. HADB가 노드에서 실행된 적이 없고 미러 노드에서 수신되지 않은 로그 레코드를 발견할 때까지 압축이 계속됩니다.


예 3–19 로그 버퍼 정보의 예

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


NodeNO Avail Free
0 16 21 16 3

노드 내부 로그 버퍼 정보

노드 내부 로그 버퍼 정보는 다음과 같습니다.


예 3–20 내부 로그 버퍼 정보의 예

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

NodeNO Avail Free

0 16 21 16 3


HADB 시스템 유지 관리

HADB는 미러 노드에 데이터를 복제하여 내결함성을 아카이브합니다. 프로덕션 환경의 경우, Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide에 설명된 대로 미러 노드는 미러하는 노드와 별개의 DRU에 있습니다.

실패는 하드웨어 실패, 전원 실패 또는 운영 체제 재부트 등과 같은 예기치 않은 이벤트입니다. HADB는 한 노드, 한 시스템(미러 노드 쌍 없음), 동일한 DRU에 속한 하나 이상의 시스템 또는 하나의 전체 DRU의 단일 실패에 대해 내결함성을 가집니다. 하지만 HADB는 하나 이상의 미러 노드 쌍이 동시에 실패하는 이중 실패에서 자동으로 복원되지 않습니다. 이중 실패가 발생하면 HADB를 지우고 세션 저장소를 다시 만들어야 합니다. 이 경우 모든 데이터가 지워집니다.

단일 시스템에서 작업해야 하는지 또는 여러 시스템에서 작업해야 하는지 여부에 따라 유지 관리 절차가 다릅니다.

Procedure단일 시스템에서 유지 관리를 수행하는 방법

이 절차는 계획 및 계획되지 않은 유지 관리 모두에 적용되며 HADB 가용성이 인터럽트되지 않습니다.

  1. 유지 관리 절차를 수행하고 시스템을 실행합니다.

  2. ma가 실행되고 있는지 확인합니다.

    ma는 Windows 서비스로 실행되거나 init.d 스크립트(배포용으로 권장됨)에서 실행되는 경우 운영 체제에서 시작되어야 합니다. 시작되지 않으면 수동으로 시작합니다. 관리 에이전트 시작을 참조하십시오.

  3. 시스템의 모든 노드를 시작합니다.

    자세한 내용은 노드 시작을 참조하십시오.

  4. 노드가 활성화되어 실행 중인지 확인합니다.

    자세한 내용은 HADB 상태 가져오기를 참조하십시오.

Procedure모든 HADB 시스템에 계획된 유지 관리를 수행하는 방법

계획된 유지 관리에는 하드웨어 및 소프트웨어 업그레이드 등의 작업이 포함됩니다. 이 절차는 HADB 가용성을 인터럽트하지 않습니다.

  1. 첫 번째 DRU의 각 예비 시스템에 대해 단일 시스템에서 유지 관리를 수행하는 방법에 설명된 대로 단일 시스템 절차를 하나씩 반복합니다.

  2. 첫 번째 DRU의 각 활성 시스템에 대해 단일 시스템에서 유지 관리를 수행하는 방법에 설명된 대로 단일 시스템 절차를 하나씩 반복합니다.

  3. 두 번째 DRU에 대해 단계 1과 2를 반복합니다.

Procedure모든 HADB 시스템에 계획된 유지 관리를 수행하는 방법

이 절차는 HADB가 단일 또는 여러 시스템에 있을 때 사용할 수 있습니다. 유지 관리 절차 도중 HADB 서비스가 인터럽트됩니다.

  1. HADB를 중지합니다. 데이터베이스 중지를 참조하십시오.

  2. 유지 관리 절차를 수행하고 모든 시스템을 실행합니다.

  3. ma가 실행되고 있는지 확인합니다.

  4. HADB를 시작합니다.

    자세한 내용은 데이터베이스 시작을 참조하십시오.

    마지막 단계를 완료하면 HADB 데이터를 다시 사용할 수 있게 됩니다.

Procedure실패가 발생한 경우 계획되지 않은 유지 관리를 수행하는 방법

  1. 데이터베이스 상태를 확인합니다.

    HADB 상태 가져오기를 참조하십시오.

    • 데이터베이스 상태가 Operational 이상인 경우:

      계획되지 않은 유지 관리가 필요한 시스템에 미러 노드가 포함되어 있지 않습니다. 실패한 각 시스템에 대해 한 번에 한 DRU씩 단일 시스템 절차를 따릅니다. HADB 서비스는 인터럽트되지 않습니다.

    • 데이터베이스 상태가 Non-Operational인 경우:

      계획되지 않은 유지 관리가 필요한 시스템에 미러 노드가 포함됩니다. 전체 HADB가 실패한 단일 시스템에 있는 경우입니다. 먼저 모든 시스템을 실행합니다. 그런 다음 HADB를 지우고 세션 저장소를 다시 만듭니다. 데이터베이스 지우기를 참조하십시오. 이 경우 HADB 서비스가 인터럽트됩니다.

내역 파일 지우기 및 아카이브

HADB 내역 파일은 모든 데이터베이스 작업과 오류 메시지를 기록합니다. HADB는 기존 내역 파일의 끝에 추가하므로 시간이 지날수록 파일 크기가 커집니다. 디스크 공간을 절약하고 파일이 너무 커지지 않도록 하려면 내역 파일을 주기적으로 지우고 아카이브합니다.

데이터베이스의 내역 파일을 지우려면 hadbm clearhistory 명령을 사용합니다.

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

hadbm clearhistory  
[--saveto=path]  
[dbname]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]

dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.

기존 내역 파일을 저장할 디렉토리를 지정하려면 --saveto 옵션(짧은 형식: -o)을 사용합니다. 이 디렉토리에는 적절한 쓰기 권한이 있어야 합니다. 다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오.

자세한 내용은 hadbm-clearhistory(1)을 참조하십시오.

hadbm create 명령의 --historypath 옵션은 내역 파일의 위치를 결정합니다. 내역 파일의 이름 형식은 dbname.out. nodeno입니다. hadbm create에 대한 자세한 내용은 데이터베이스 만들기를 참조하십시오.

내역 파일 형식

내역 파일의 각 메시지에는 다음 정보가 포함되어 있습니다.

자원 부족에 대한 메시지에는 “HIGH LOAD” 문자열이 포함되어 있습니다.

내역 파일의 모든 항목에 대해 자세히 알 필요는 없습니다. 특정한 이유로 인해 내역 파일을 좀더 자세히 알아야 할 경우에는 Sun 고객 지원에 문의하십시오.