다음 방법으로 HADB의 활동을 모니터할 수 있습니다.
이 절에서는 hadbm status, hadbm deviceinfo 및 hadbm resourceinfo 명령에 대해 간략하게 설명합니다. HADB 정보 해석에 대한 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Performance Tuning Guide의 Performance를 참조하십시오.
데이터베이스나 노드의 상태를 표시하려면 hadbm status 명령을 사용합니다. 명령 구문은 다음과 같습니다.
hadbm status [--nodes] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname 피연산자는 데이터베이스 이름을 지정합니다. 기본값은 hadb입니다.
--nodes 옵션(짧은 형식 -n)은 데이터베이스의 각 노드에 대한 정보를 표시합니다. 자세한 내용은 노드 상태를 참조하십시오. 다른 명령 옵션의 설명에 대해서는 일반 옵션을 참조하십시오.
자세한 내용은 hadbm-status(1)을 참조하십시오.
예를 들면 다음과 같습니다.
hadbm status --nodes
데이터베이스의 state는 현재 상태를 요약합니다. 다음 표에서는 가능한 데이터베이스 상태에 대해 설명합니다.
표 3–14 HADB 상태
데이터베이스 상태 |
설명 |
---|---|
High-Availability Fault Tolerant(HAFaultTolerant) |
데이터베이스에 내결함성이 있으며 각 DRU에 하나 이상의 예비 노드가 있습니다. |
Fault Tolerant |
미러된 모든 노드 쌍이 실행 중입니다. |
Operational |
미러된 각 노드 쌍에서 하나 이상의 노드가 실행 중입니다. |
Non Operational |
미러된 하나 이상의 노드 쌍에 두 노드가 모두 없습니다. 데이터베이스가 작동 중이 아닌 경우 데이터베이스 지우기에 설명된 대로 데이터베이스를 지웁니다. |
Stopped |
데이터베이스에서 실행 중인 노드가 없습니다. |
Unknown |
데이터베이스의 상태를 확인할 수 없습니다. |
--nodes 옵션을 사용하면 hadbm status 명령은 데이터베이스의 각 노드에 대해 다음 정보를 표시합니다.
노드 번호
노드가 실행 중인 시스템의 이름
노드의 포트 번호
노드의 역할. 역할과 의미에 대한 목록은 노드의 역할을 참조하십시오.
노드의 상태. 상태와 의미에 대한 목록은 노드의 상태를 참조하십시오.
해당 미러 노드 수
노드의 역할 및 상태는 이 절에 설명된 대로 변경할 수 있습니다.
노드는 만드는 동안 역할이 할당되며 다음 역할 중 하나를 가질 수 있습니다.
Active: 데이터를 저장하고 클라이언트 액세스를 허용합니다. 활성 노드는 미러된 쌍에 있습니다.
Spare: 클라이언트 액세스는 허용하지만 데이터는 저장하지 않습니다. 데이터 장치를 초기화한 후 다른 노드를 모니터하여 다른 노드를 사용할 수 없으면 복구를 시작합니다.
Offline: 역할이 변경될 때까지 서비스를 제공하지 않습니다. 다시 온라인 상태가 되면 역할이 이전 역할로 변경될 수 있습니다.
Shutdown: 활성과 오프라인의 중간 단계로, 예비 노드가 기능을 수행할 때까지 기다립니다. 예비 노드가 기능을 수행하게 되면 노드가 오프라인됩니다.
노드는 다음 상태 중 하나일 수 있습니다.
Starting: 노드가 시작 중입니다.
Waiting: 노드의 시작 상태를 확인할 수 없으며 오프라인입니다. 단일 노드가 2분 이상 이 상태에 있으면 노드를 중지한 후에 repair 수준으로 시작합니다. 노드 중지, 노드 시작 및 데이터베이스 지우기를 참조하십시오.
Running: 노드가 이 역할에 적합한 모든 서비스를 제공하고 있습니다.
Stopping: 노드가 중지 프로세스에 있습니다.
Stopped: 노드가 비활성 상태입니다. 중지된 노드는 복구할 수 없습니다.
Recovering:노드를 복원 중입니다. 노드가 실패하면, 실패한 노드의 기능을 미러 노드가 수행합니다. 실패한 노드는 주 기억 장치 또는 디스크의 데이터와 로그 레코드를 사용하여 복원을 시도합니다. 실패한 노드는 미러 노드의 로그 레코드를 사용하여 중지되었을 때 수행된 트랜잭션을 적용합니다. 복원에 성공하면 노드가 활성 상태가 됩니다. 복원에 실패하면 노드 상태가 복구 중으로 변경됩니다.
Repairing: 노드를 복구 중입니다. 이 작업은 노드를 다시 초기화하고 미러 노드에서 데이터와 로그 레코드를 복사합니다. 복구는 복원보다 시간이 더 오래 걸립니다.
HADB 데이터(디스크 저장소) 장치의 사용 가능한 공간 모니터:
일반적인 디스크 공간 사용 경향을 확인합니다.
예방 차원의 유지 관리 작업의 일부로: 사용자 로드가 증가하여 데이터베이스 구성의 크기를 조정하거나 확장하려 합니다.
데이터베이스 확장의 일부로: hadbm addnodes를 실행하여 시스템에 새 노드를 추가하기 전에 충분한 장치 공간이 있는지 확인합니다. 노드를 추가하려면 기존 노드에 약 40-50%의 사용 가능 공간이 있어야 합니다.
내역 파일 및 server.log 파일에 다음과 같은 오류 메시지가 있는 경우
No free blocks on data devices
No unreserved blocks on data devices
데이터 장치의 사용 가능 공간에 대한 정보를 가져오려면 hadbm deviceinfo 명령을 사용합니다. 이 명령은 데이터베이스의 각 노드에 대해 다음 정보를 표시합니다.
할당된 총 장치 크기(MB)(Totalsize)
사용 가능 공간(MB)(Freesize)
현재 사용 중인 장치의 백분율(Usage)
명령 구문은 다음과 같습니다.
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를 참조하십시오.
다음 명령은
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 Guide의 Tuning 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 명령 옵션
옵션 |
설명 |
---|---|
-d |
데이터 버퍼 풀 정보를 표시합니다. 자세한 내용은 아래의 데이터 버퍼 풀 정보를 참조하십시오. |
-l |
잠금 정보를 표시합니다. 자세한 내용은 아래의 잠금 정보를 참조하십시오. |
-b |
로그 버퍼 정보를 표시합니다. 자세한 내용은 아래의 로그 버퍼 정보를 참조하십시오. |
-n |
노드 내부 로그 버퍼 정보를 표시합니다. 자세한 내용은 아래의 노드 내부 로그 버퍼 정보를 참조하십시오. |
데이터 버퍼 풀 정보에는 다음이 포함됩니다.
NodeNo: 노드 번호
Avail: 풀에서 사용 가능한 총 공간(MB)
Free: 사용 가능 공간(MB)
Access: 시작부터 현재까지 데이터베이스에서 데이터 버퍼로의 누적 액세스 수
Misses: 데이터베이스 시작부터 현재까지 발생한 누적 페이지 오류 수
Copy-on-Write: 검사점으로 인해 데이터 버퍼에서 내부적으로 복사된 누적 페이지 수
사용자 트랜잭션이 레코드에 대해 작업을 수행할 때 레코드가 포함된 페이지가 데이터 버퍼 풀에 있어야 합니다. 그렇지 않으면 miss 또는 페이지 오류가 발생합니다. 그런 다음 트랜잭션은 디스크의 데이터 장치 파일에서 페이지가 검색될 때까지 기다립니다.
실패율이 높으면 데이터 버퍼 풀을 늘리십시오. 실패는 누적되므로 hadbm resourceinfo를 주기적으로 실행하고 두 번 실행 간의 차이를 사용하여 실패율을 확인하십시오. 사용 가능 공간이 매우 작은 경우에는 검사점 메커니즘이 사용 가능한 새 블록을 만들기 때문에 걱정하지 않아도 됩니다.
예를 들면 다음과 같습니다.
NodeNO Avail Free Access Misses Copy-on-Write 0 256 128 100000 50000 10001 256 128 110000 45000 950 |
잠금 정보는 다음과 같습니다.
NodeNo: 노드 번호
Avail: 노드에서 사용 가능한 총 잠금 수
Free: 사용 가능 잠금의 수
Waits: 잠금을 얻기 위해 대기 중인 트랜잭션의 수. 이 수는 누적됩니다.
단일 트랜잭션은 노드에서 사용 가능한 잠금의 25%까지 사용할 수 있습니다. 따라서 대규모로 작업을 수행하는 트랜잭션은 이 제한 내용을 알고 있어야 합니다. 이러한 트랜잭션은 일괄 작업으로 수행하는 것이 좋습니다. 여기서 각 일괄 작업은 별도의 트랜잭션, 즉 각 일괄 작업 커밋으로 취급되어야 합니다. repeatable read 격리 수준으로 실행 중인 읽기 작업과 delete, insert 및 update 작업은 트랜잭션이 종료된 후에만 해제되는 잠금을 사용하기 때문입니다.
NumberOfLocks를 변경하려면 내역 파일 지우기 및 아카이브를 참조하십시오.
예를 들면 다음과 같습니다.
NodeNO Avail Free Waits 0 50000 20000 101 50000 20000 0 |
로그 버퍼 정보는 다음과 같습니다.
NodeNo: 노드 번호
Available: 로그 버퍼에 할당된 메모리 양(MB)
Free: 사용 가능 메모리의 양(MB)
사용 가능 공간이 매우 작은 경우에는 HADB가 로그 버퍼의 압축을 시작하기 때문에 걱정하지 않아도 됩니다. HADB는 링 버퍼의 처음부터 압축을 시작하고 연속되는 로그 레코드에 대해 수행합니다. HADB가 노드에서 실행된 적이 없고 미러 노드에서 수신되지 않은 로그 레코드를 발견할 때까지 압축이 계속됩니다.
예를 들면 다음과 같습니다.
NodeNO Avail Free 0 16 21 16 3 |
노드 내부 로그 버퍼 정보는 다음과 같습니다.
노드 번호
Available: 로그 장치에 할당된 메모리 양(MB)
Free: 사용 가능 메모리의 양(MB)
예를 들면 다음과 같습니다.
NodeNO Avail Free
0 16 21 16 3