[DB2] Install DB2 11.1 on Ubuntu 16.04

พอดีอยากลองศึกษา DB2 กับตัว Docker แต่ความรู้พื้นฐานของ Linux ไม่ค่อยมีเลย ใช้แต่ GUI มาตลอด (Ubuntu GUI สวยนะ) ผมเลยลองมาศึกษา Linux ปกติก่อนและ เอาให้เชี่ยวระดับแล้วค่อยข้ามไป Docker มาเข้าเรื่องดีกว่า สำหรับการลง DB2 11.1 Ubuntu โดยใช้ตัว Command Line

สิ่งที่ต้องเตรียม

  • Ubuntu ลงให้เรียบร้อยเลย ใช้ VM หรือ เครื่องจริงก็ได้ (ของผมใช้ VM นะ)
  • ตัวติดตั้ง DB2 ของ Linux สามารถ Download ได้จาก ที่นี่ (ผมลอง Version Express C นะครับ Feature ต่างๆ เพียงพอแล้วสำหรับผม)
  • เนื้อที่ว่างประมาณ 3.5 GB

ลงมือเข้า Terminal ลุยติดตั้ง

  • ไปที่ Path ที่เก็บตัว Setup DB2 11.1 ไว้ครับ
  • มันถูกบีบเป็น .tar.gz เราใช้คำสั่ง เพื่อแตกตัวติดตั้งออกมาครับ ดังนี้
tar xvzf v11.1_linuxx64_expc.tar.gz
  • เมื่อแตกไฟล์ออกมาเสร็จ ได้ folder expc ดังรูป
  • ลองเข้าไปดูข้างในด้วยคำสั่ง ls พบไฟล์ที่สำคัญ ดังนี้
โพลเดอร์ db2 - เก็บทุกอย่างที่จำเป็นสำหรับการติดตั้ง
db2ckupgrade  - เปลี่ยน Version
db2_deinstall  - เอาออก
db2_install  - ติดตั้งแบบ Command line
db2ls
db2prereqcheck - เช็คความพร้อมของเครื่องก่อนติดตั้ง
db2setup - ต้วติดตั้งแบบ GUI
  • ลองรัน bash db2prereqcheck ก่อนเพื่อตรวจสอบ คำสั่ง
sudo ./db2prereqcheck
  • มันมีหลาย Version สนใจที่ 11.1 ตามรูป
  • มาดูเฉพาะอันดีกว่า
Validating "32 bit version of "libstdc++.so.6" " ...
Found the 64 bit "/usr/lib/x86_64-linux-gnu/libstdc++.so.6" in the following directory "/usr/lib/x86_64-linux-gnu".
DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "libstdc++.so.6".

Validating "/lib/i386-linux-gnu/libpam.so*" ...
DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/i386-linux-gnu/libpam.so*".
WARNING : Requirement not matched.
Requirement not matched for DB2 database "Server" . Version: "11.1.0.0".
Summary of prerequisites that are not met on the current system:
DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/i386-linux-gnu/libpam.so*".

DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "libstdc++.so.6".
  • ผมลองเพิ่มไป 3 ตัว เพื่อแก้ปัญหาดังนี้
    (Ref:https://www.ibm.com/support/knowledgecenter/SS4KMC_2.4.0/com.ibm.sco.doc_2.4/ts/ts_errors_of_32_bit_library_files.html)
apt-get install libx32stdc++6
apt-get install libpam0g:i386
apt-get install libaio1
  • ลอง Run Bash db2setup มีตัวติดตั้งแบบ GUI สวยแฮะ ด้วยคำสั่ง
sudo ./db2setup
ตัวติดตั้งแบบ GUI สวยแฮะ
  • กลับมาที่เราสนใจดีกว่า
sudo ./db2_install
  • มันถาม Path ว่าติดตั้งตาม Default ไหม ที่ /opt/ibm/db2/V11.1 ตอบ yes ไปครับ
Install into default directory (/opt/ibm/db2/V11.1) ? [yes/no]
yes
  • รอให้มันลงทีละ step เรื่อยๆ
  • จากนั้นสร้าง user และ password ที่จำเป็น ดังนี้
useradd -m db2inst1
sudo passwd db2inst1

useradd -m db2fenc1
sudo passwd db2fenc1

useradd -m db2das1
sudo passwd db2das1
  • DB2DIR คือ Path ที่ลง DB2 ตอนนี้ คือ /opt/ibm/db2/V11.1
  • ต่อไปสร้าง db2 administration server ด้วยคำสั่ง
 DB2DIR/instance/dascrt -u db2das1
  • สร้าง db2 instance ด้วยคำสั่ง
DB2DIR/instance/db2icrt -a server -u db2fenc1 db2inst1
  • สร้าง Symbolic link เชื่อม DB2 โดยใช้ db2ln ด้วยคำสั่ง
DB2DIR/cfg/db2ln
  • มาดู Port ของ DB2 ดีกว่า ที่ /etc/services ปกติ default 50000 ถ้าไม่ชอบก็เปลี่ยนได้ครับ

Verify DB2

  • login เข้า user db2inst1
  • เปิด Terminal ทดสอบ DB2 ด้วย คำสั่ง db2stop และ db2start
  • ลองสร้าง Database ในที่นี้ ผมสร้างชื่อ Test ด้วยคำสั่ง
db2 create database TEST
  • ทดสอบ Connect ด้วยคำสั่ง
db2 connect to TEST user db2inst1


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.