Linux下db2V10.5命令行安裝超詳細圖文教程(附下載地址)

下載地址://pan.baidu.com/s/1GtF03x1FMF3IsGdSiBJu-g 提取碼:8vfj

失效了發郵件:[email protected]

一、db2prereqcheck預檢查

首先進入到壓縮包所在的目錄,執行tar命令對.tar.gz壓縮文件進行解壓

# 解壓到當前目錄 
tar -zxvf v10.5_linuxx64_expc.tar.gz
# 後面加 -C 目錄  可以指定需要解壓到的目錄。
# 如:tar -zxvf v10.5_linuxx64_expc.tar.gz -C /home/wells/soft

image-20200528234445605

image-20200528234507228

第一次解壓的時候失敗了,刪了重新從網盤下了一次再解壓,解壓完成!

解壓完成後,進入當前目錄下剛剛解壓出來的expc文件夾,通過ll命令可以看到,有一個叫db2prereqcheck的文件,這個文件是用於db2安裝預檢查的,命令如下:

# 進入解壓出來的文件夾
cd expc/
# 查看當前所在目錄下的所有文件資訊
ll
# 執行預檢查程式
./db2prereqcheck

image-20200528234934522

image-20200528235917162

預檢查程式顯示未滿足的條件,這裡出現了4個問題。

  1. /lib/libpam.so*

    錯誤資訊

    英文:
    	DBT3514W The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/libpam.so*"
    中文:
    	DBT3514W db2prereqcheck 實用程式未能找到以下 32 位庫文件:"/lib/libpam.so*"
    

    解決方案:

    yum install pam-devel.i686
    yum install pam.i686
    

    這裡我只執行成功了yum install pam-devel.i686,執行yum install pam.i686時提示沒有可以安裝的依賴包。

image-20200529000805420

  1. sg3_utils / sg_persist

    錯誤資訊

    英文:
    	DBT3507E The db2prereqcheck utility failed to find the following package or file: "sg_persist".
    	DBT3507E The db2prereqcheck utility failed to find the following package or file: "sg3_utils".
    中文:
    	DBT3507E db2prereqcheck 實用程式未能找到以下程式包或文件:"sg_persist"
    	DBT3507E db2prereqcheck 實用程式未能找到以下程式包或文件:"sg3_utils"
    

    解決方案:

    yum install sg3_utils-*
    

    運行一行解決兩個!nice!

sg_persist也解決了

image-20200529000940950

  1. 關閉SELinux

    這裡我使用永久關閉,百度有臨時關閉的方法~

    使用vi命令編輯/etc/selinux/config

    vi /etc/selinux/config
    

    image-20200529001512208

    SELINUX=enforcing注釋,新增一行SELINUX=disabled:wq保存退出

    image-20200529001611397

    設置完成後,記得使用reboot命令重啟。

重啟後再次執行預檢查程式。

# 執行預檢查程式
./db2prereqcheck

如下圖所示,剛剛出現的問題已經解決了!

image-20200529001908459

二、db_install安裝

還是在剛剛的expc文件夾,運行db2_install進行安裝:

./db2_install

這裡有詢問是否安裝到預設目錄。我這裡選擇,當然,也可以輸入 否 ,安裝到指定的目錄。

image-20200529002028964

image-20200529002304763

三、創建用戶組和用戶

創建實例前,需要先創建用戶組和用戶

# 創建兩個組
groupadd db2adm1
groupadd db2fen1
# 創建兩個用戶,並將他們分配給剛剛創建好的用戶組
# 在這裡-d指定目錄,-m 表示如果用戶目錄不存在,則創建, -g指定用戶組
useradd -d /home/db2inst1 -m db2inst1 -g db2adm1
useradd -d /home/db2fenc1 -m db2fenc1 -g db2fen1

image-20200529003006221

db2inst1db2fenc1兩個賬戶設置密碼,如果沒有設置密碼後面會出現問題。

tip: 密碼不能小於8位,且不能與用戶名相同

passwd db2inst1
passwd db2fenc1

image-20200529003134784

image-20200529003201052

現在可以創建實例啦~

首先進入我們前面的安裝路徑/opt/ibm/bd2/V10.5下的/instance/目錄。在這個目錄下,用lsll命令可以看到一個叫db2icrt的命令。他是db2 instance create 的縮寫,我們用這個命令來創建一個實例。

cd /opt/ibm/bd2/V10.5/instance/
ll
# 創建一個叫db2inst1的實例
./db2icrt -u db2fenc1 db2inst1

image-20200529003447677

image-20200529010040840

驗證是否創建成功

# 切換用戶
su - db2inst1
# 啟動資料庫實例
db2start
# 在實例中創建資料庫
db2sampl # 創建一個DB2SAMPL樣板庫
# 或
db2 create create db wellsdb # 用db2的命令來創建資料庫,這裡的wellsdb是資料庫名,可改成自己的

image-20200529010213574

image-20200529010442288

# 查看當前實例下所存在的資料庫 
db2 list db directory

image-20200529010522444

# 連接到資料庫
db2 connect to wellsdb

image-20200529010611931

# 查看當前資料庫下的表空間有哪些,可以看到,我的資料庫中有3個表空間,id 分別為 0,1,2
db2 list tablespaces

image-20200529010803613

執行sql語句

db2 "create table user(id int,name varchar(10))"
db2 "insert into user values(1,'wells')"
db2 "insert into user values(2,'974')"
db2 "select id,name from user"

image-20200530120103686

image-20200530120426020

image-20200530120515158

關閉資料庫

db2 terminate
db2stop

image-20200530120813456

tip:

terminate 、db2stop、db2start三個命令的意義

db2 terminate

  1. 斷開當前與資料庫的連接

  2. 終止後台對應的db2bp進程

db2start/db2stop

​ 啟動/停止資料庫伺服器

搞定,債見~