Linux, UNIX 및 Windows용 DB2 버전 9.7
DB2 서버 제품 설치 후 > 설치 후 태스크 > 파티션된 데이터베이스 환경 >

DB2 노드 구성 파일의 형식

db2nodes.cfg 파일은 DB2® 인스턴스에 참여하는 데이터베이스 파티션을 정의하는 데 사용됩니다. 데이터베이스 파티션 서버 통신에 고속 상호 연결을 사용하고자 하는 경우, db2nodes.cfg 파일은 고속 상호 연결의 호스트 이름 또는 IP 주소를 지정하는 데에도 사용됩니다.

Linux® 및 UNIX® 운영 체제에서의 db2nodes.cfg 파일의 형식은 다음과같습니다.

dbpartitionnum hostname logicalport netname resourcesetname
dbpartitionnum

, hostname, logicalport, netnameresourcesetname은 다음 섹션에 정의되어 있습니다.

Windows® 운영 체제에서의 db2nodes.cfg 파일의 형식은 다음과같습니다.

dbpartitionnum hostname computername logicalport netname resourcesetname
Windows

운영 체제에서 db2nodes.cfg에 대한 이러한 엔트리는 db2ncrt 또는 START DBM ADD DBPARTITIONNUM 명령에 의해 추가됩니다. 또한, 엔트리는 db2nchg 명령에 의해 수정됩니다. 이러한 행을 직접 추가하거나 이 파일을 편집하면 안됩니다.

dbpartitionnum
0과 999 사이의 고유 번호로서 파티션된 데이터베이스 시스템 내의 데이터베이스 파티션 서버입니다.

파티션된 데이터베이스 시스템의 크기를 조정하려면 각 데이터베이스 파티션 서버에 대한 항목을 db2nodes.cfg 파일에 추가하십시오. 추가적인 데이터베이스 파티션 서버에 대해 선택한 dbpartitionnum 값은 오름차순이어야 하지만 이 시퀀스에 갭이 존재해야 합니다. 논리적 파티션을 추가하고 노드를 이 파일에서 논리적으로 그룹화하려면 dbpartitionnum 값 사이에 갭을 넣도록 선택할 수 있습니다.

이 항목은 필수 항목입니다.

hostname
FCM이 사용할 데이터베이스 파티션 서버의 TCP/IP 호스트 이름입니다. 이 항목은 필수 항목입니다.

db2nodes.cfg 파일에 IP 주소 대신 호스트 이름이 제공된 경우, 데이터베이스 관리 프로그램은 동적으로 호스트 이름을 해결하려고 시도합니다. 머신의 OS 설정에 따라 로컬 또는 등록된 DNS(Domain Name Server)를 찾아보는 것을 통해 해결이 수행됩니다.

DB2 버전 9.1부터는 TCP/IPv4 및 TCP/IPv6 프로토콜이 둘 다 지원됩니다. 호스트 이름 해결 방법이 변경되었습니다.

버전 9.1 이전 릴리스에서 사용된 방법이 db2nodes.cfg 파일에 정의된 문자열을 해결했던 반면, 버전 9.1 이상의 방법에서는 db2nodes.cfg 파일에 단축 이름이 정의된 경우 FQDN(Fully Qualified Domain Name)을 해결하려고 시도합니다. 완전한 호스트 이름에 대해 구성된 단축 이름을 지정하면 호스트 이름을 해결하는 프로세스에 불필요한 지연을 가져옵니다.

호스트 이름 해결이 필요한 DB2 명령에서 지연을 피하기 위해 다음과 같은 일시적인 해결책을 사용하십시오.

  1. db2nodes.cfg 파일 및 운영 체제 호스트 이름 파일에 단축 이름이 지정된 경우, 운영 체제 호스트 파일에 호스트 이름에 대한 단축 이름 및 FQDN(Fully Qualified Domain Name)을 지정하십시오.
  2. DB2 서버가 IPv4 포트에서 대기 중이라는 것을 알고 있는 경우, IPv4 주소만을 사용하려면 다음 명령을 발행하십시오.
    db2 catalog tcpip4 node db2tcp2 remote 192.0.32.67 server db2inst1 with "Look up IPv4 address from 192.0.32.67"
  3. DB2 서버가 IPv6 포트에서 대기 중이라는 것을 알고 있는 경우, IPv6 주소만을 사용하려면 다음 명령을 발행하십시오.
    db2 catalog tcpip6 node db2tcp3 1080:0:0:0:8:800:200C:417A server 50000 with "Look up IPv6 address from 1080:0:0:0:8:800:200C:417A"
logicalport
데이터베이스 파티션 서버용 논리 포트 번호입니다. 이 필드는 논리 데이터베이스 파티션 서버를 실행 중인 워크스테이션에서 특정 데이터베이스 파티션 서버를 지정하는 데 사용됩니다.

설치 시 파티션 간 통신을 위해 DB2는 포트 범위(예: 60000 - 60003)를 /etc/services 파일에 예약합니다. db2nodes.cfg의 이 logicalport 필드는 해당 범위 중 어떤 포트를 특정 논리적 파티션 서버에 지정할 것인지를 지정합니다.

이 필드에 대한 항목이 없을 경우 디폴트값은 0입니다. 그러나 netname 필드에 대한 항목을 추가할 경우에는 logicalport 필드에 숫자를 입력해야 합니다.

논리적 데이터베이스 파티션을 사용할 경우, 지정된 logicalport 값은 0에서 시작하고 오름차순으로 계속되어야 합니다(예: 0,1,2).

또한, 하나의 데이터베이스 파티션 서버에 대해 logicalport 항목을 지정할 경우, db2nodes.cfg 파일에 나열된 각 데이터베이스 파티션 서버에 대해서도 logicalport를 지정해야 합니다.

이 필드는 논리 데이터베이스 파티션이나 고속 상호 연결을 사용하지 않은 경우에만 선택적입니다.

netname
FCM 통신을 위한 고속 상호 연결의 호스트 이름 또는 IP 주소를 지정합니다.

이 필드에 대한 항목이 지정되면 데이터베이스 파티션 서버 간의 모든 통신(db2start, db2stop 및 db2_all 명령으로 인한 통신은 제외)이 고속 상호 연결을 통해 처리됩니다.

이 매개변수는 데이터베이스 파티션 통신에 고속 상호 연결을 사용할 경우에만 필요합니다.

resourcesetname
resourcesetname은 노드가 시작될 운영 체제 자원을 정의합니다. resourcesetname은 프로세스 친화도 지원을 위한 것이며, MLN(Multiple Logical Node)에 대해 사용됩니다. 이는 이전에는 quadname으로 알려진 문자열 유형 필드와 함께 제공됩니다.

이 매개변수는 AIX®, HP-UX 및 Solaris 운영 체제에서만 지원됩니다.

AIX에서는 이러한 개념을 "자원 세트"라고 하고 Solaris 운영 체제에서는 "프로젝트"라고 합니다. 자원 관리에 대한 자세한 정보는 운영 체제 문서를 참조하십시오.

HP-UX에서 resourcesetname 매개변수는 PRM 그룹의 이름입니다. 자세한 정보는 HP에서 제공하는 "HP-UX 프로세스 자원 관리자 사용자 안내서 (B8733-90007)" 문서를 참조하십시오.

Windows 운영 체제에서 논리 노드에 대한 프로세스 친화도는 DB2PROCESSORS 레지스트리 변수를 통해 정의될 수 있습니다.

Linux 운영 체제에서 resourcesetname 컬럼은 시스템의 NUMA(Non-Uniform Memory Access) 노드에 해당하는 번호를 정의합니다. 시스템 유틸리티 numactl은 2.6 커널뿐 아니라 NUMA 규정 지원에서도 사용 가능해야 합니다.

resourcesetname 매개변수를 사용하는 경우 netname 매개변수를 지정해야 합니다.

구성 예

다음 구성 예를 사용하여 사용자 환경에 해당하는 구성을 판별하십시오.

한 대의 컴퓨터, 네 개의 데이터베이스 파티션 서버
클러스터 환경을 사용하지 않으면서 ServerA라는 하나의 실제 워크스테이션에 네 개의 데이터베이스 파티션 서버를 지정하려면 db2nodes.cfg 파일을 다음과 같이 갱신해야 합니다.
      0          ServerA        0
      1          ServerA        1
      2          ServerA        2
      3          ServerA        3
두 대의 컴퓨터, 컴퓨터당 하나의 데이터베이스 파티션 서버
파티션된 데이터베이스 시스템에 ServerAServerB라는 두 개의 실제 워크스테이션을 포함시키려면 db2nodes.cfg 파일을 다음과 같이 갱신하십시오.
      0          ServerA        0
      1          ServerB        0
두 대의 컴퓨터, 한 컴퓨터에 세 개의 데이터베이스 파티션
파티션된 데이터베이스 시스템에 ServerAServerB라는 두 개의 물리적 워크스테이션을 포함시키고 ServerA가 세 개의 데이터베이스 파티션 서버를 실행 중이면 db2nodes.cfg 파일을 다음과 같이 갱신하십시오.
      4          ServerA        0
      6          ServerA        1
      8          ServerA        2
      9          ServerB        0
두 대의 컴퓨터, 고속 스위치가 있는 세 개의 데이터베이스 파티션 서버
파티션된 데이터베이스 시스템에 ServerAServerB라는(ServerB는 두 개의 데이터베이스 파티션 서버를 실행 중) 두 대의 컴퓨터를 포함시키고 switch1switch2라는 고속 상호 연결을 사용할 경우, db2nodes.cfg 파일을 다음과 같이 갱신하십시오.
      0          ServerA        0              switch1
      1          ServerB        0              switch2
      2          ServerB        1              switch2

resourcesetname을 사용한 예

이러한 제한사항은 다음의 예에 적용됩니다.

AIX 예

다음 예에 AIX 운영 체제용 자원 세트를 설정하는 방법이 나와 있습니다.

이 예에는 32개의 프로세서와 8개의 논리적 데이터베이스 파티션(MLN)이 있는 한 개의 물리적 노드가 있습니다. 이 예는 각 MLN에 프로세스 유사성을 제공하는 방법을 설명합니다.

  1. /etc/rset에 자원 세트를 정의하십시오.
    DB2/MLN1:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00000,sys/cpu.00001,sys/cpu.00002,sys/cpu.00003
    
    DB2/MLN2:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00004,sys/cpu.00005,sys/cpu.00006,sys/cpu.00007
    
    DB2/MLN3:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00008,sys/cpu.00009,sys/cpu.00010,sys/cpu.00011
    
    DB2/MLN4:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00012,sys/cpu.00013,sys/cpu.00014,sys/cpu.00015
    
    DB2/MLN5:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00016,sys/cpu.00017,sys/cpu.00018,sys/cpu.00019
    
    DB2/MLN6:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00020,sys/cpu.00021,sys/cpu.00022,sys/cpu.00023
    
    DB2/MLN7:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00024,sys/cpu.00025,sys/cpu.00026,sys/cpu.00027
    
    DB2/MLN8:
            owner     = db2inst1
            group     = system
            perm      = rwr-r-
            resources = sys/cpu.00028,sys/cpu.00029,sys/cpu.00030,sys/cpu.00031
  2. 다음 명령을 입력하여 메모리 유사성을 사용 가능하게 하십시오.
       vmo -p -o memory_affinity=1
  3. 자원 세트를 사용하기 위한 인스턴스 권한을 부여하십시오.
    chuser capabilities=
            CAP_BYPASS_RAC_VMM,CAP_PROPAGATE,CAP_NUMA_ATTACH  db2inst1
  4. 자원 세트 이름을 db2nodes.cfg의 다섯 번째 컬럼으로 추가하십시오.
    1 regatta 0 regatta DB2/MLN1
    2 regatta 1 regatta DB2/MLN2
    3 regatta 2 regatta DB2/MLN3
    4 regatta 3 regatta DB2/MLN4
    5 regatta 4 regatta DB2/MLN5
    6 regatta 5 regatta DB2/MLN6
    7 regatta 6 regatta DB2/MLN7
    8 regatta 7 regatta DB2/MLN8

HP-UX 예

이 예에서는 4개의 CPU 및 4개의 MLN이 있는 머신에서 CPU 공유를 위해 PRM 그룹을 사용하는 방법을 표시하며, MLN당 24%의 CPU 공유를 설정하고 4%는 다른 응용프로그램에 사용하기 위해 남겨둡니다. DB2 인스턴스 이름은 db2inst1입니다.

  1. /etc/prmconf의 GROUP 섹션을 편집하십시오.
        OTHERS:1:4::
    	db2prm1:50:24::
      	db2prm2:51:24::
        	db2prm3:52:24::
      	db2prm4:53:24::  
  2. /etc/prmconf에 인스턴스 소유자 엔트리를 추가하십시오.
          db2inst1::::OTHERS,db2prm1,db2prm2,db2prm3,db2prm4
  3. 다음 명령을 입력하여 그룹을 초기화하고 CPU 관리 프로그램을 사용 가능하게 하십시오.
          prmconfig -i
          prmconfig -e CPU
  4. db2nodes.cfg에 PRM 그룹 이름을 다섯 번째 컬럼으로 추가하십시오.
          1 voyager 0 voyager db2prm1 	
          2 voyager 1 voyager db2prm2 	
          3 voyager 2 voyager db2prm3 	
          4 voyager 3 voyager db2prm4

대화식 GUI 도구인 xprm을 사용하여 PRM 구성(단계 1-3)을 완료할 수 있습니다.

Linux 예

Linux 운영 체제에서 resourcesetname 컬럼은 시스템의 NUMA(Non-Uniform Memory Access) 노드에 해당하는 번호를 정의합니다. NUMA 정책을 지원하는 2.6 커널에 추가하여 numactl 시스템 유틸리티를 사용할 수 있습니다. Linux 운영 체제에서 NUMA 지원에 관한 자세한 정보는 numact1의 man 페이지를 참조하십시오.

이 예에서는 NUMA 노드와 연관된 각 논리 노드가 있는 네 개의 NUMA 노드 컴퓨터를 설정하는 방법이 나와 있습니다.

  1. 시스템에 NUMA 기능이 있는지 확인하십시오.
  2. 다음 명령을 발행하십시오.
    $ numactl --hardware
    다음과 유사한 출력이 표시됩니다.
    available: 4 nodes (0-3)
    node 0 size: 1901MB 
    node 0 free: 1457MB 
    node 1 size: 1910MB 
    node 1 free: 1841MB 
    node 2 size: 1910MB 
    node 2 free: 1851MB 
    node 3 size: 1905MB 
    node 3 free: 1796MB
  3. 이 예에서는 시스템에 네 개의 NUMA 노드가 있습니다. db2nodes.cfg 파일을 다음과 같이 편집하여 각 MLN을 시스템의 NUMA 노드와 연관시키십시오.
    0 hostname 0 hostname 0 
    1 hostname 1 hostname 1 
    2 hostname 2 hostname 2 
    3 hostname 3 hostname 3

Solaris 예

다음은 Solaris 버전 9에 대한 프로젝트를 설정하는 방법의 예입니다.

이 예에는 8개의 프로세서가 있는 하나의 실제 노드가 있습니다. 디폴트 프로젝트에 하나의 CPU가 사용되고 응용프로그램 서버에 세 개의 CPU가 사용되며 DB2에 네 개의 CPU가 사용됩니다. 인스턴스 이름은 db2inst1입니다.

  1. 편집기를 사용하여 자원 풀 구성 파일을 작성하십시오. 이 예에서 파일은 pool.db2라고 합니다. 내용은 다음과 같습니다.
       create system hostname
          create pset pset_default (uint pset.min = 1)
          create pset db0_pset (uint pset.min = 1; uint pset.max = 1)
          create pset db1_pset (uint pset.min = 1; uint pset.max = 1)
          create pset db2_pset (uint pset.min = 1; uint pset.max = 1)
          create pset db3_pset (uint pset.min = 1; uint pset.max = 1)
          create pset appsrv_pset (uint pset.min = 3; uint pset.max = 3)
          create pool pool_default (string pool.scheduler="TS";  
                    boolean pool.default = true)
          create pool db0_pool (string pool.scheduler="TS") 
          create pool db1_pool (string pool.scheduler="TS") 
          create pool db2_pool (string pool.scheduler="TS") 
          create pool db3_pool (string pool.scheduler="TS") 
          create pool appsrv_pool (string pool.scheduler="TS") 
          associate pool pool_default (pset pset_default) 
          associate pool db0_pool (pset db0_pset) 
          associate pool db1_pool (pset db1_pset) 
          associate pool db2_pool (pset db2_pset) 
          associate pool db3_pool (pset db3_pset) 
          associate pool appsrv_pool (pset appsrv_pset)
  2. 다음과 같이 /etc/project 파일을 편집하여 DB2 프로젝트 및 appsrv 프로젝트를 추가하십시오.
       system:0:::: 
          user.root:1:::: 
          noproject:2:::: 
          default:3:::: 
          group.staff:10:::: 
          appsrv:4000:App Serv project:root::project.pool=appsrv_pool 
          db2proj0:5000:DB2 Node 0 project:db2inst1,root::project.pool=db0_pool 
          db2proj1:5001:DB2 Node 1 project:db2inst1,root::project.pool=db1_pool 
          db2proj2:5002:DB2 Node 2 project:db2inst1,root::project.pool=db2_pool 
          db2proj3:5003:DB2 Node 3 project:db2inst1,root::project.pool=db3_pool 
  3. 자원 풀을 작성하십시오. # poolcfg -f pool.db2.
  4. 자원 풀을 활성화하십시오. # pooladm -c
  5. 프로젝트 이름을 db2nodes.cfg 파일의 다섯 번째 컬럼으로 추가하십시오.
       0 hostname 0 hostname db2proj0
          1 hostname 1 hostname db2proj1
          2 hostname 2 hostname db2proj2
          3 hostname 3 hostname db2proj3
[ 페이지의 맨 위 | 이전 페이지 | 다음 페이지 | 목차 ]