DB2 V9.5 (Viper II) 부터 root 이외 계정으로 설치가 가능해졌다.

특정 고객사 설치 작업 시, root가 필요한 사유를 작성해야 되는 경우가 있었으니, non root 설치 방식 지원은 업무 진행에 도움이 될 것이다.

 

비루트 설치의 제약사항은 DB2 설치 시 인스턴스 구성이 된다는 점이다. (1 엔진에 1 인스턴스 구성만 가능)

어떤 의미에서는 엔진과 인스턴스가 붙어있다고 말할 수 있을 것 같다.

 

설치 후를 비교하면 다음과 같은 차이가 있다.

1. root로 수행되는 프로세스의 소유자

# root 설치 인스턴스

$> db2_ps

    UID          CMD
db2inst          - 113:50 db2sysc 0 
   root          - 0:00 db2ckpwd 0 
   root          - 0:00 db2ckpwd 0
db2inst          - 0:00 db2vend (PD Vendor Process - 258) 
   root          - 0:00 db2ckpwd 0

 

# non root 설치 (인스턴스명: test)

UID       CMD
test       db2sysc 0
test       db2ckpwd 0
test       db2ckpwd 0
test       db2ckpwd 0

 

2. fence (루틴 소유자)

   인스턴스 계정과 fence 계정을 동일하게 하는 것은 개발환경에서만 권장하고, 운영시스템에서는 권장하지 않는 것으로 알고 있다.

   non-root 설치의 경우는 fence 계정과 인스턴스 계정이 동일해지는 점을 유의하고, 비루트 설치 시의 차이점을 고객에게 인지시켜야겠다.

 

# root 설치

$ db2pd -fmp

FMP:
Pool Size:       0
Max Pool Size:   200 ( Automatic )
Keep FMP:        YES
Initialized:     YES
Trusted Path:    /instance/inst10/sqllib/function/unfenced
Fenced User:     db2fenc
Shared Memory:   0x0000000201AE0420
IPC Pool:        0x0000000201AE0480



# non root 설치 (인스턴스명: test)

$ db2pd -fmp

FMP:
Pool Size:       0
Max Pool Size:   200 ( Automatic )
Keep FMP:        YES
Initialized:     YES
Trusted Path:    /instance/test/sqllib/function/unfenced
Fenced User:     test
Shared Memory:   0x0000000201AE0420
IPC Pool:        0x0000000201AE0480

 

3. fixpack 적용 시의 downtime

  비루트 방식의 설치는 엔진과 인스턴스가 동시에 진행되기 때문에 root 설치 방식의 fixpack 작업과는 조금 달라질 수 있다.

  개인적으로 fixpack을 적용하는 경우 사용 중인 엔진과 별도의 경로에 설치 후, 인스턴스를 update 해야 할 때만 운영중인 인스턴스를 중단한다.

  그러나 이런 방식의 fixpack은 비루트 방식에서는 불가능하다. (db2stop 후 fixpack 설치 작업 진행 함)

 

4. 기타

    root 설치의 경우 사용자 자원 제약(ulimit) 값을 설정하지 않는다, 그러나 비루트 설치의 경우 ulimit 값을 설정해야 한다.

DB2계정  hard  data     unlimited
DB2계정  hard  nofile  65536
DB2계정  hard  fsize    unlimited
DB2계정  soft  data     unlimited
DB2계정  soft  nofile  65536
DB2계정  soft  fsize    unlimited

 

     이외 OS기반 DB2 사용자 인증처리를 하도록 root 권한으로 설정작업이 필요하다.

#> cp ~/sqllib/cfg/db2rfe.cfg.sample db2rfe.cfg

INSTANCENAME=test
ENABLE_DB2_ACS=NO
ENABLE_HA=YES
ENABLE_OS_AUTHENTICATION=YES
RESERVE_REMOTE_CONNECTION=YES
SVCENAME=db2c_test
SVCEPORT=50001
RESERVE_TEXT_SEARCH_CONNECTION=NO

 

#> ~/sqllib/instance/db2rfe -f db2rfe.cfg

DBI1213I  Root feature HA has been enabled successfully.

DBI1213I  Root feature OS_AUTHENTICATION has been enabled successfully.

 

테스트해 본 바, SVCENAME, SVCEPORT 설정은 되지 않았다.

응답파일을 통한 비루트 설치 시, 인스턴스 DBM CFG의 SVCENAME 값은 포트번호로 설정이 되었다.

+ Recent posts