一、准備環境:
介質: db2 v11 redhat7.3
安裝所需軟件包 libstdc++.so.6
yum install -y libstdc++
修改/etc/hosts如下配置:
#vi /etc/hosts
127.0.0.1 localhost
修改系統內核參數 # vi /etc/sysctl.conf kernel.shmmax = 137438953472 --設置為物理內存的一半或稍大 kernel.shmall = 67108864 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
二、安裝DB2軟件
root用戶執行
df -h 確保空間大小滿足條件
vi /etc/security/limits
除notice之外設置參數為-1
mkdir /tmp/db2v11
chown db2inst1:db2iadm1 /tmp/db2v11
上傳介質
chmod -R 777 /tmp/db2v11
gzip -d product.tar.gz
tar xvf product.tar
安裝前驗證
./db2prereqcheck
安裝
./db2_install 安裝目錄,選擇推薦目錄即可(可以修改目錄,如果不修改/預留大小為6G) Enter "help" to redisplay product names. --------------- 選擇安裝產品類型,這里選擇SERVER Do you want to install the DB2 pureScale Feature? [yes/no] ---------------- 選擇是否安裝pureScale功能,這里選擇不安裝 生成如下目錄 /opt/ibm/db2/V11.1 /tmp/生成install日志,查看並確認
三、創建Instance
1. 創建DB2實例 以下操作全部以root用戶執行 groupadd db2iadm1 groupadd db2fadm1 useradd db2inst1 -G db2iadm1 passwd db2inst1 Changing password for user db2inst1. New password: input your password Retype new password: retype input your password useradd db2fenc1 -G db2fadm1 cd /opt/ibm/db2/V11.1/instance/ ./db2icrt -a server -p 50000 -u db2fenc1 db2inst1 開放端口50000,以便用戶可以訪問 firewall-cmd --zone=public --add-port=50000/tcp --permanent systemctl stop firewalld.service systemctl start firewalld.service
2. 激活license
以下操作全部以db2inst1用戶執行
查看license信息
db2licm -l license激活 db2licm -a /usr/local/src/db2ese_c.lic
方式二 指定 用戶ID和密碼
創建用戶和組 用戶用途 用戶名 用戶組 實例所有者 db2inst1 db2iadm1 受防護的用戶 db2fenc1 db2fadm1 # groupadd -g 1011 db2iadm1 # groupadd -g 1012 db2fadm1 # useradd -u 1013 -g db2iadm1 -d /home/db2inst1 -m db2inst1 # useradd -u 1014 -g db2fadm1 -d /home/db2fenc1 -m db2fenc1 # echo 'db2inst1' |passwd --stdin db2inst1 # echo 'db2fenc1' |passwd --stdin db2fenc1
#cd /opt/ibm/db2/V11.1/instance
#./db2icrt -a server -p 50000 -u db2fenc1 db2inst1
The execution completed successfully.
For more information see the DB2 installation log at "/tmp/db2icrt.log.9503".
DBI1070I Program db2icrt completed successfully.
2. 激活license
以下操作全部以db2inst1用戶執行
查看license信息
db2licm -l license激活 db2licm -a /usr/local/src/db2ese_c.lic
創建DB文件系統並賦權給用戶db2inst1 # chown db2inst1:db2iadm1 /data # chown db2inst1:db2iadm1 /db2log # chown db2inst1:db2iadm1 /db2arch
四、配置並啟動Instance
# /opt/ibm/db2/V11.1/instance/db2ilist
db2inst1
(1) 修改db2nodes.cfg
位置在instance用戶的$HOME/sqllib/.文件格式是:
<logic port> <hostname> <logic port> //主機名要與/etc/hosts 的主機名一致 或hostname命令查看
0 r201 0
1 r201 1
(2) 檢查services文件(多節點配置自動生成多個服務端口)
vi /etc/services -G 跳到最后一行
#DB2c_db2inst1 50000/tcp // 要與dbm SVCENAME一致
(3) 啟動實例: --切換到db2inst1用戶
配置環境變量 --root用戶和db2inst1用戶
# vi ~/.bash_profile
$ vi ~/.bash_profile
./home/db2inst1/sqllib/db2profile # 增加該行代碼
# source ~/.bash_profile
$ source ~/.bash_profile
設置服務名稱
$ db2 update dbm cfg using SVCENAME db2inst1
設置注冊變量
$ db2set DB2COMM=tcpip
啟動實例
$ db2start
五、創建DB
$ db2 "create db RESDB on /oradata4 using codeset UTF-8 territory cn" DB20000I The CREATE DATABASE command completed successfully. 批注:創建數據庫時若為指定路徑,將使用默認路徑,數據庫用戶的家目錄,如下查看: $ db2 get dbm cfg | grep -i DFTDBPATH Default database path (DFTDBPATH) = /home/db2inst1 9.參數調整
$ db2 connect to resdb
$ db2iauto -on db2inst1 --設置數據庫實例開機自啟動
9.1參數調整
$ db2 update dbm cfg using SVCENAME 9999 DFT_MON_BUFPOOL on DFT_MON_UOW on NUM_POOLAGENTS 4100
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.
SQL1362W One or more of the parameters submitted for immediate modification
were not changed dynamically. Client changes will not be effective until the
next time the application is started or the TERMINATE command has been issued.
Server changes will not be effective until the next DB2START command.
批注:需要重啟數據庫生效
9.2日志調整
--日志位置和大小調整
$ db2 update db cfg for RESDB using NEWLOGPATH /db2log
$ db2 update db cfg for RESDB using LOGARCHMETH1 disk:/db2arch
$ db2 update db cfg for RESDB using LOGFILSIZ 25600 LOGPRIMARY 13 LOGSECOND 12 CATALOGCACHE_SZ 2048 LOGBUFSZ 4096 UTIL_HEAP_SZ 10240 DB_MEM_THRESH 100 DLCHKTIME 5000 LOCKTIMEOUT 15
9.3其他參數調整
db2set DB2_PARALLEL_IO=*
db2set DB2_SKIPINSERTED=YES
db2set DB2_USE_ALTERNATE_PAGE_CLEANING=YES
db2set DB2_EVALUNCOMMITTED=YES
db2set DB2_ANTIJOIN=EXTEND
db2set DB2_SKIPDELETED=YES
db2set DB2CODEPAGE=1208
參數調整完畢,數據庫重啟:
$ db2stop
01/23/2017 13:48:24 0 0 SQL1025N The database manager was not stopped because databases are still active.
SQL1025N The database manager was not stopped because databases are still active.
$ db2 force application all
DB20000I The FORCE APPLICATION command completed successfully.
DB21024I This command is asynchronous and may not be effective immediately.
$ db2stop
01/23/2017 13:49:39 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
$ db2start
01/23/2017 13:50:13 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
此時需要調整/etc/security/limits.conf配置文件 db2list1 soft nofile 65536 db2inst1 hard nofile 65536 db2inst1 soft nproc 65536 db2inst1 hard nproc 65536