DB/DB2

DB2 설치 및 사용방법 (v11.5 커뮤니티 버전, 리눅스 우분투)

토끼C 2023. 6. 28. 12:24
반응형

리눅스 DB2 커뮤니티버전 설치 방법(v11.5)

.

DB2 커뮤니티 버전(v11.5)을 설치하는 방법에 대한 포스팅입니다. 설치 전 요구사항을 충족시키기 위한 라이브러리 설치 방법과 인스턴스 생성, 데이터베이스 및 테이블 생성 방법을 안내합니다.

목차
설치 파일 다운로드
인스턴스 생성
Database 생성
Table 생성

 

설치 파일 다운로드

DB2를 사용하기 위해서 IBM 공식 홈페이지에 접속하여 설치 파일을 다운받아준다.

다음 링크를 통해 다운받을 수 있다.

https://www.ibm.com/kr-ko/products/db2/database

 

위의 주소로 접속하면 IBM Db2 Community Edition 무료 다운로드하기가 보일 것이다.

(안 보일 경우 제품>데이터베이스>기능>데이터베이스 로 직접 접속해준다.)

 

위의 버튼은 클리하면 다음과 같은 화면이 나온다.

커뮤니티 버전은 무료이면서, 원하는 기간동안 사용이 가능하다.

커뮤니티 버전 다운로드를 위해서는 IBM 계정이 있어야한다.

회원가입을 통해 아이디를 생성하거나 기존 아이디가 있다면 로그인해준다.

 

 

로그인을 하면 화면이 다음과 같이 변한다.

계속 버튼을 눌러준다.

 

 

DB2를 설치할 환경에 맞게 다운로드 해준다.

우분투에 설치할 것이기 때문에 Liunx 버전으로 다운한다.

다운로드를 누르면 바로 v11.5.8_linuxx64_server_dec.tar.gz 파일이 다운받아진다.

 

다운로드 받은 파일을 DB2를 설치할 서버의 경로에 업로드 해준다.

 

압축 풀기

tar -xvf v11.5.8_linuxx64_server_dec.tar.gz

위 명령어 실행으로 server_dec폴더가 생성된다.

 

server_dec 폴더로 이동

cd server_dec

 

 

설치 전, db2 사용에 필요한 환경이 준비되었는지 확인한다.

 

db2 설치 전제 조건 검사

./db2prereqcheck -v 11.5.8.0

root@LYJ:~/db2_v11.5.8/server_dec# ./db2prereqcheck -v 11.5.8.0

==========================================================================

Thu Jun  8 09:19:33 2023
DB2 설치를 위한 전제조건을 검사 중입니다. 버전 "11.5.8.0". 운영 체제 "Linux"

"커널 레벨 " 유효성 확인...
   필수 최소 운영 체제 커널 레벨: "3.10.0".
   실제 운영 체제 커널 레벨: "4.15.0".
   요구사항을 충족합니다.

"Linux 배포판 " 유효성 확인...
   필수 최소 "UBUNTU" 버전: "16.04"
   실제 버전: "18.04"
   요구사항을 충족합니다.

"ksh symbolic link" 유효성 확인...
   경고 : 요구사항을 충족시키지 못합니다.

"C++ 라이브러리 버전 " 유효성 확인...
   필수 최소 C++ 라이브러리: "libstdc++.so.6"
   표준 C++ 라이브러리가 "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25" 디렉토리에 있습니다.
   실제 C++ 라이브러리: "CXXABI_1.3.1"
   요구사항을 충족합니다.

""libstdc++.so.6"의 32비트 버전 " 유효성 확인...
   "/usr/lib/x86_64-linux-gnu" 디렉토리에서 64비트 "/usr/lib/x86_64-linux-gnu/libstdc++.so.6"을(를) 찾았습니다.
DBT3514W  db2prereqcheck 유틸리티가 32비트 라이브러리 파일 "libstdc++.so.6"을(를) 찾지 못했습니다.

"libaio.so 버전 " 유효성 확인...
DBT3552E  db2prereqcheck 유틸리티가 libaio.so.1 파일을 열지 못했습니다. 명령 출력: "libaio.so.1: cannot open shared object file: No such file or directory".
DBT3520E  db2prereqcheck 유틸리티가 라이브러리 파일 libaio.so.1을 찾을 수 없습니다.
   오류 : 요구사항을 충족시키지 못합니다.

"libnuma.so 버전 " 유효성 확인...
DBT3610I  db2prereqcheck 유틸리티가 libnuma.so.1 파일을 로드했습니다.
   요구사항을 충족합니다.

"/lib/i386-linux-gnu/libpam.so*" 유효성 확인...
   DBT3514W  db2prereqcheck 유틸리티가 32비트 라이브러리 파일 "/lib/i386-linux-gnu/libpam.so*"을(를) 찾지 못했습니다.
   경고 : 요구사항을 충족시키지 못합니다.
DB2 데이터베이스 "Server" 에 대해 요구사항이 일치하지 않습니다. 버전: "11.5.8.0".
현재 시스템에서 충족되지 않은 전제조건 요약:
   DBT3514W  db2prereqcheck 유틸리티가 32비트 라이브러리 파일 "/lib/i386-linux-gnu/libpam.so*"을(를) 찾지 못했습니다.

DBT3514W  db2prereqcheck 유틸리티가 32비트 라이브러리 파일 "libstdc++.so.6"을(를) 찾지 못했습니다.

DBT3619W  db2prereqcheck 유틸리티에서 ksh가 ksh 또는 ksh93에 링크되지 않음을 발견했습니다. 이는 Tivoli SA MP가 사용된 Db2 고가용성 기능에 필요합니다.

 

충족되지 않은 요구사항을 충족하기 위해 라이브러리 설치

apt-get install libaio1

apt-get install libpam0g:i386

apt-get install libstdc++5:i386

apt-get install libstdc++.so.6

apt-get install ksh

 

 

요구사항이 충족 되었는지 확인한다.

./db2prereqcheck -v 11.5.8.0

 

 

충족되지 않았을 경우, 추가로 필요한 라이브러리를 설치한다.

Thu Jun  8 09:23:46 2023
DB2 설치를 위한 전제조건을 검사 중입니다. 버전 "11.5.8.0". 운영 체제 "Linux"

"커널 레벨 " 유효성 확인...
   필수 최소 운영 체제 커널 레벨: "3.10.0".
   실제 운영 체제 커널 레벨: "4.15.0".
   요구사항을 충족합니다.

"Linux 배포판 " 유효성 확인...
   필수 최소 "UBUNTU" 버전: "16.04"
   실제 버전: "18.04"
   요구사항을 충족합니다.

"ksh symbolic link" 유효성 확인...
   요구사항을 충족합니다.

"C++ 라이브러리 버전 " 유효성 확인...
   필수 최소 C++ 라이브러리: "libstdc++.so.6"
   표준 C++ 라이브러리가 "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25" 디렉토리에 있습니다.
   실제 C++ 라이브러리: "CXXABI_1.3.1"
   요구사항을 충족합니다.

""libstdc++.so.6"의 32비트 버전 " 유효성 확인...
   "/usr/lib/i386-linux-gnu" 디렉토리에서 32비트 "/usr/lib/i386-linux-gnu/libstdc++.so.6"을(를) 찾았습니다.
   요구사항을 충족합니다.

"libaio.so 버전 " 유효성 확인...
DBT3553I  db2prereqcheck 유틸리티가 libaio.so.1 파일을 로드했습니다.
   요구사항을 충족합니다.

"libnuma.so 버전 " 유효성 확인...
DBT3610I  db2prereqcheck 유틸리티가 libnuma.so.1 파일을 로드했습니다.
   요구사항을 충족합니다.

"/lib/i386-linux-gnu/libpam.so*" 유효성 확인...
   요구사항을 충족합니다.
DBT3533I  db2prereqcheck 유틸리티가 모든 설치 요구사항이 충족되었음을 확인했습니다.

모든 설치 요구사항이 충족된 것을 확인할 수 있다.

 

이제 설치 파일을 실행한다.

./db2_install

 

그냥 ./db2_intall만 실행하면 -f sysreq파라미터를 넣어서 실행하라고한다.

 

./db2_install -f sysreq로 실행하면 정상적으로 설치가 진행된다.

 

모두 진행된 후에는 다음 명령어를 통해 설치가 정상적으로 되었는지 확인한다.

db2ls -q -p -b /opt/ibm/db2/V11.5

Install Path : /opt/ibm/db2/V11.5

Product Response File ID                  Level   Fix Pack   Product Description
---------------------------------------------------------------------------------------------------------------------
DB2_SERVER_EDITION                      11.5.8.0          0   DB2 Server Edition
DB2_WAREHOUSE_ON_CLOUD                  11.5.8.0          0   DB2 Server Edition

 

인스턴스 생성

설치가 정상적으로 되었다면, 인스턴스를 생성해준다. 인스턴스는 DB2를 사용하는 OS계정으로 사용한다.

다음은 인스턴스를 생성할 계정 생성 명령어이다. root권한의 계정으로 진행해야 하며, 그룹 및 사용자 계정 생성, 인스턴스 생성, 포트 설정, 방화벽 설정 등 설치에 필요한 단계들이 포함되어 있다.

다음 예제에서는 instance user와 fenced user를 동일한 계정으로 사용했다.

 

1. db2 그룹 추가

groupadd db2

 

2. 사용자 계정 및 home 생성

useradd -g db2 -m -s /bin/bash -d /home/db2_yj db2_yj

 

3. 사용자 계정 비밀번호 생성

passwd db2_yj

 

4. db2 관리서버 사용자 생성

useradd -g db2 -m -s /bin/bash -d /home/dasusr1 dasusr1

passwd dasusr1

cd /opt/ibm/db2/V11.5/instance

./dascrt -u dasusr1

 

5. 인스턴스 생성

./db2icrt -u db2_yj db2_yj

 

6. 인스턴스 계정 로그인

su - db2_yj

 

7. db2 통신방법 설정

db2set DB2COMM=TCPIP

 

8. 포트 확인

db2 get dbm cfg | grep SVC

 

9. 포트 확인 및 변경

vi /etc/services

 

10. 포트 직접 설정

db2 update dbm cfg using svcename 50000

 

 

포트 값을 바꿔주고 싶을 때 사용 위에서 확인한 25001을 그대로 사용할 것이라면 설정을 안 해도 된다.

 

11. 방화벽 설정

iptables -I INPUT 1 -p tcp --dport 25001 -j ACCEPT

iptables -I OUTPUT 1 -p tcp --dport 25001 -j ACCEPT

 

12. DB2 시작 및 중지 명령어

db2start

db2stop

 

Database 생성

다음은 database 생성에 대한 예시이다.

1. database 생성

db2 create database testdb

 

2. database 연결

db2 connect to testdb 또는 db2 connect to testdb user db2_yj using db2_yj

 

3. database 연결 끊기

db2 disconnect testdb

 

Table 생성

table 생성은 db2 커맨드에서 직접 쿼리를 입력하는 방법과 sql 파일을 실행하는 방법 중 db 스크립트 파일을 실행하였다.

 

1. sql 파일 실행

db2 -tvf ${실행할 파일명}

 

table 생성 예제 EMP.SQL

CREATE TABLE EMP(EMPNO INT NOT NULL,ENAME VARCHAR(20),JOB VARCHAR(20),MGR INT,HIREDATE DATE,SAL INT,COMM INT,DEPTNO INT);
COMMIT;
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'1981-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'1981-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'1981-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'1981-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'1981-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'1981-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'1981-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'1981-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'1980-12-09',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'1982-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'1983-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'1982-01-11',1300,NULL,10);
COMMIT;

 

반응형

'DB > DB2' 카테고리의 다른 글

DB2 JDBC Driver 다운로드 방법  (0) 2023.08.12
DB2 설치 및 사용 방법 (10.5V fix11 for Linux)  (0) 2023.06.28