1. 시스템 준비 및 패키지 압축 해제
DB2 인스턴스를 관리할 전용 사용자와 그룹을 생성하고, 설치 미디어를 준비합니다. 본 가이드에서는 인스턴스 이름을 db2admin으로 설정합니다.
# 그룹 및 사용자 생성
groupadd db2grp
useradd -g db2grp -m -d /home/db2admin db2admin
passwd db2admin
# 설치 디렉토리 생성 및 권한 부여
mkdir -p /opt/ibm/db2setup
chown -R db2admin:db2grp /opt/ibm/db2setup
# db2admin 사용자로 전환 후 압축 해제
su - db2admin
cd /opt/ibm/db2setup
tar -zxvf v10.5fp11_linuxx64_server_t.tar.gz
2. 바이너리 설치 및 환경 변수 설정
압축이 완료된 디렉토리에서 설치 스크립트를 실행합니다.
cd server_t
./db2_install
설치 마법사가 실행되면 제품 유형으로 SERVER를 선택합니다. pureScale 기능 사용 여부를 묻는 프롬프트에서는 no를 입력하여 기본 설치를 진행합니다.
설치 완료 후, DB2 명령어를 전역에서 사용할 수 있도록 환경 변수를 등록합니다.
echo 'export PATH=$PATH:/home/db2admin/sqllib/bin' >> /home/db2admin/.bashrc
source /home/db2admin/.bashrc
3. 라이선스 등록
공급받은 라이선스 파일을 서버에 업로드한 후, db2licm 유틸리티를 통해 활성화합니다.
# 라이선스 적용
/home/db2admin/sqllib/adm/db2licm -a /tmp/db2ese_c.lic
# 적용된 라이선스 상태 확인
/home/db2admin/sqllib/adm/db2licm -l
4. OS 리소스 제한(Limits) 최적화
DB2가 안정적으로 작동할 수 있도록 파일 디스크립터 및 프로세스 제한을 해제합니다. /etc/security/limits.conf 파일을 열어 하단에 다음 내용을 추가합니다.
db2admin soft nofile 65536
db2admin hard nofile 65536
db2admin soft nproc 16384
db2admin hard nproc 16384
db2admin soft fsize -1
db2admin hard fsize -1
설정 반영을 위해 현재 세션을 종료하고 다시 로그인합니다.
5. TCP/IP 네트워크 통신 구성
외부 클라이언트의 접속을 허용하기 위해 서비스 포트와 DB2 매니저 구성을 업데이트합니다. 본 예제에서는 50001 포트를 사용합니다.
# /etc/services 파일에 DB2 포트 등록 (root 권한 필요)
echo "DB2_db2admin 50001/tcp" >> /etc/services
# DB2 매니저 구성 업데이트
db2 update dbm cfg using SVCENAME 50001
# 인스턴스 재시작 및 포트 리스닝 확인
db2stop
db2start
ss -tlnp | grep 50001
6. 데이터베이스 생성 및 DBeaver 연동 설정
UTF-8 인코딩을 사용하는 새 데이터베이스를 프로비저닝합니다.
db2 "CREATE DATABASE appdb USING CODESET UTF-8 TERRITORY US PAGESIZE 8 K"
db2 connect to appdb
db2 list tables
DBeaver와 같은 JDBC 기반 클라이언트 도구에서 비밀번호 인증 시 오류가 발생하지 않도록, DB2 보안 바이너리의 SUID 권한을 조정해야 합니다.
# root 사용자로 전환
su - root
cd /home/db2admin/sqllib/security
# 인증 관련 바이너리 소유권 및 권한 변경
chown root db2ckpw db2chpw
chmod 4511 db2ckpw db2chpw
# db2admin으로 복귀 후 인스턴스 재시작
su - db2admin
db2stop
db2start
7. 아카이브 로깅(Archive Logging) 활성화
재해 복구를 위해 트랜잭션 로그 아카이빙 모드로 전환합니다.
# 아카이브 로그 저장 디렉토리 생성
mkdir -p /home/db2admin/archive_logs
# 로그 아카이빙 방법 및 경로 설정
db2 update db cfg for appdb using LOGARCHMETH1 DISK:/home/db2admin/archive_logs
# 설정 적용을 위한 인스턴스 강제 재시작
db2stop force
db2start
아카이브 모드 활성화 후, 데이터베이스는 백업 펜딩(Backup Pending) 상태가 됩니다. 이를 해제하기 위해 전체 백업을 수행해야 합니다.
# 오프라인 전체 백업 실행
db2 backup db appdb to /home/db2admin/archive_logs
# 로그 아카이빙 정상 작동 여부 테스트
db2 terminate
db2 archive log for db appdb
8. DB2 인스턴스 및 바이너리 제거
서버에서 DB2를 완전히 제거하기 위해 실행 중인 프로세스를 종료하고 언인스톨 스크립트를 실행합니다.
# 인스턴스 및 잔여 프로세스 종료
db2stop force
db2_kill
# 언인스톨 스크립트 실행
cd /home/db2admin/sqllib/install
./db2_deinstall -a
제거 프로세스가 완료되면, 시스템에 남은 설정을 정리합니다.
# root 권한으로 사용자 및 그룹 삭제
userdel -r db2admin
groupdel db2grp
# 잔여 백업 디렉토리 제거
rm -rf /home/db2admin/sqllib_bk