DB2数据库是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据。一般DB2是搭配IBM Power系列小机使用的,兼容性好、性能高。当然DB2也有Linux版本的,相对性能会差一些,主要使用在一些开发、学习环境,成本低嘛。
今天就来简单介绍一下在Linux环境安装db2数据库软件。
一、DB2 软件安装包下载
可在IBM网站的如下地址,下载个版本的DB2软件包:
https://www.ibm.com/support/pages/download-db2-fix-packs-version-db2-linux-unix-and-windowshttps://www.ibm.com/support/pages/download-db2-fix-packs-version-db2-linux-unix-and-windows在选择某个版本db2之后,需要选择正确的操作系统版本,并选择“DB2 Server Fix Pack”类型的安装包。
“DB2 Server Fix Pack”与“DB2 Universal Fix Pack”的区别:Server Fix Pack是全量补丁包,可以直接安装;Universal Fix Pack是增量补丁包,只能用来打补丁,不能直接新安装。
二、DB2 软件安装
打开命令行窗口。运行以下命令安装DB2软件:
linux-d4al:~ # ls -l v10.5fp7_linuxx64_server_t.tar.gz -rw-r--r-- 1 root root 1429018107 Jul 21 00:54 v10.5fp7_linuxx64_server_t.tar.gz linux-d4al:~ # gzip -d v10.5fp7_linuxx64_server_t.tar.gz -c | tar -xf - linux-d4al:~ # cd server_t linux-d4al:~/server_t # ls db2 db2_deinstall db2_install db2checkCOL.tar.gz db2checkCOL_readme.txt db2ckupgrade db2ls db2prereqcheck db2setup ibm_im installFixPack nlpack linux-d4al:~/server_t # ./db2_install DBI1324W Support of the db2_install command is deprecated. Default directory for installation of products - /opt/ibm/db2/V10.5 *********************************************************** Install into default directory (/opt/ibm/db2/V10.5) ? [yes/no] yes Specify one of the following keywords to install DB2 products. SERVER CONSV EXP CLIENT RTCL Enter "help" to redisplay product names. Enter "quit" to exit. *********************************************************** SERVER *********************************************************** Do you want to install the DB2 pureScale Feature? [yes/no] no DB2 installation is being initialized. Total number of tasks to be performed: 49 Total estimated time for all tasks to be performed: 1947 second(s) Task #1 start Description: Checking license agreement acceptance Estimated time 1 second(s) Task #1 end Task #2 start Description: Base Client Support for installation with root privileges Estimated time 3 second(s) Task #2 end Task #3 start Description: Product Messages - English Estimated time 14 second(s) Task #3 end Task #49 start Description: Registering DB2 Update Service Estimated time 30 second(s) Task #49 end Task #50 start Description: Updating global profile registry Estimated time 3 second(s) Task #50 end The execution completed successfully. For more information see the DB2 installation log at "/tmp/db2_install.log.43840".
最后看到“The execution completed successfully.”提示后,安装成功。
三、License 注册
DB2是IBM出版的商业化数据库软件,需要注册License才能够使用,当然如果不注册是有90天的免费试用期的,试用期内所有功能都是可以使用的,超过试用期后,DB2数据库将无法正常启动。
License注册步骤:
linux-d4al:~ # /opt/ibm/db2/V10.5/adm/db2licm -a /root/db2aese_c.lic LIC1402I License added successfully. LIC1426I This product is now licensed for use as outlined in your License Agreement. USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF THE TERMS OF THE IBM LICENSE AGREEMENT, LOCATED IN THE FOLLOWING DIRECTORY: "/opt/ibm/db2/V10.5/license/en_US.iso88591"
至此,DB2数据库软件就安装完毕可以正常使用啦。接下来就可以建实例、建库、导入数据等等操作。
四、创建DB2实例与数据库
4.1. 创建数据库用户
通过以下命令,创建DB2需要的用户:
linux-d4al:~ # mkdir /db2home linux-d4al:~ # groupadd db2igrp1 linux-d4al:~ # groupadd db2fgrp1 linux-d4al:~ # useradd -d /db2home/db2inst1 -g db2igrp1 -m db2inst1 linux-d4al:~ # useradd -d /db2home/db2fenc1 -g db2fgrp1 -m db2fenc1
注:其中,db2inst1是实例用户,db2fenc1是防护用户。
4.2. 修改实例用户的ulimit限制(可选)
编辑/etc/security/limits.conf文件,增加如下内容(如果实例名字不是db2inst1,就改成实例名字):
# limits for the db2 instance user db2inst1 soft data -1 db2inst1 hard data -1 db2inst1 soft nofile 65536 db2inst1 hard nofile 65536 db2inst1 soft fsize -1 db2inst1 hard fsize -1 db2inst1 soft nproc -1 db2inst1 hard nproc -1
重新登录db2inst1(退出shell),然后运行ulimit -l命令,确认一下用户进程数的限制为unlimited。
linux-d4al:~ # su - db2inst1 db2inst1@linux-d4al:~> ulimit -a core file size (blocks, -c) 1 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31507 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) 3437652 open files (-n) 65536 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) unlimited virtual memory (kbytes, -v) 4918080 file locks (-x) unlimited
4.3. 创建实例
在root用户下运行:
linux-d4al:~ # /opt/ibm/db2/V10.5/instance/db2icrt -p 50000 -u db2fenc1 db2inst1 DBI1446I The db2icrt command is running. DB2 installation is being initialized. Total number of tasks to be performed: 4 Total estimated time for all tasks to be performed: 309 second(s) Task #1 start Description: Setting default global profile registry variables Estimated time 1 second(s) Task #1 end Task #2 start Description: Initializing instance list Estimated time 5 second(s) Task #2 end Task #3 start Description: Configuring DB2 instances Estimated time 300 second(s) Task #3 end Task #4 start Description: Updating global profile registry Estimated time 3 second(s) Task #4 end The execution completed successfully. For more information see the DB2 installation log at "/tmp/db2icrt.log.82608". DBI1070I Program db2icrt completed successfully.
实例创建完毕,通过以下命令,启动实例:
linux-d4al:~ # su - db2inst1 db2inst1@linux-d4al:~> db2start 11/21/2020 02:18:34 0 0 SQL1063N DB2START processing was successful. SQL1063N DB2START processing was successful.
通过以下命令,验证实例启动成功:
db2inst1@linux-d4al:~> ps -ef|grep db2sysc db2inst1 98705 98703 1 02:18 pts/1 00:00:00 db2sysc 0 db2inst1 98748 98217 0 02:19 pts/1 00:00:00 grep db2sysc db2inst1@linux-d4al:~> netstat -an|grep LISTEN|grep 50000 tcp 0 0 0.0.0.0:50000 0.0.0.0:* LISTEN
4.4. 创建数据库
通过以下命令,创建数据库,并连接数据库、建表、插入数据,进行验证:
db2inst1@linux-d4al:~> db2 create db testdb DB20000I The CREATE DATABASE command completed successfully. db2inst1@linux-d4al:~> db2 activate db testdb DB20000I The ACTIVATE DATABASE command completed successfully. db2inst1@linux-d4al:~> db2 connect to testdb Database Connection Information Database server = DB2/LINUXX8664 10.5.7 SQL authorization ID = DB2INST1 Local database alias = TEST db2inst1@linux-d4al:~> db2 "create table t (id int)" DB20000I The SQL command completed successfully. db2inst1@linux-d4al:~> db2 "insert into t values (1)" DB20000I The SQL command completed successfully. db2inst1@linux-d4al:~> db2 "select * from t" ID ----------- 1 1 record(s) selected.
所有上面的操作都成功,说明数据库可以正常工作。
4.5. 创建SAMPLE数据库
DB2软件中自带一个SAMPLE数据库,里面有部分表和数据,可以在实验过程中用到。通过以下方式创建SAMPLE数据库:
db2inst1@linux-d4al:~> db2sampl Creating database "SAMPLE"... Connecting to database "SAMPLE"... Creating tables and data in schema "DB2INST1"... Creating tables with XML columns and XML data in schema "DB2INST1"... 'db2sampl' processing complete.
查看SAMPLE数据库中有哪些表:
db2inst1@linux-d4al:~> db2 connect to sample Database Connection Information Database server = DB2/LINUXX8664 10.5.7 SQL authorization ID = DB2INST1 Local database alias = SAMPLE db2inst1@linux-d4al:~> db2 list tables Table/View Schema Type Creation time ------------------------------- --------------- ----- -------------------------- ACT DB2INST1 T 2020-11-21-11.26.41.039078 ADEFUSR DB2INST1 S 2020-11-21-11.26.44.389708 CATALOG DB2INST1 T 2020-11-21-11.26.51.653362 CL_SCHED DB2INST1 T 2020-11-21-11.26.38.263370 CUSTOMER DB2INST1 T 2020-11-21-11.26.50.056282 DEPARTMENT DB2INST1 T 2020-11-21-11.26.38.753447 DEPT DB2INST1 A 2020-11-21-11.26.39.231002 EMP DB2INST1 A 2020-11-21-11.26.39.576230 EMPACT DB2INST1 A 2020-11-21-11.26.41.027695 EMPLOYEE DB2INST1 T 2020-11-21-11.26.39.231730 EMPMDC DB2INST1 T 2020-11-21-11.26.45.668977 EMPPROJACT DB2INST1 T 2020-11-21-11.26.40.925404 EMP_ACT DB2INST1 A 2020-11-21-11.26.41.028217 EMP_PHOTO DB2INST1 T 2020-11-21-11.26.39.576716 EMP_RESUME DB2INST1 T 2020-11-21-11.26.39.971092 INVENTORY DB2INST1 T 2020-11-21-11.26.49.691897 IN_TRAY DB2INST1 T 2020-11-21-11.26.41.315460 ORG DB2INST1 T 2020-11-21-11.26.41.450716 PRODUCT DB2INST1 T 2020-11-21-11.26.49.118415 PRODUCTSUPPLIER DB2INST1 T 2020-11-21-11.26.53.558753 PROJ DB2INST1 A 2020-11-21-11.26.40.694064 PROJACT DB2INST1 T 2020-11-21-11.26.40.695770 PROJECT DB2INST1 T 2020-11-21-11.26.40.391983 PURCHASEORDER DB2INST1 T 2020-11-21-11.26.50.896302 SALES DB2INST1 T 2020-11-21-11.26.41.676581 STAFF DB2INST1 T 2020-11-21-11.26.41.547694 STAFFG DB2INST1 T 2020-11-21-11.26.43.416941 SUPPLIERS DB2INST1 T 2020-11-21-11.26.52.367045 VACT DB2INST1 V 2020-11-21-11.26.41.904154 VASTRDE1 DB2INST1 V 2020-11-21-11.26.42.270762 VASTRDE2 DB2INST1 V 2020-11-21-11.26.42.276813 VDEPMG1 DB2INST1 V 2020-11-21-11.26.42.262310 VDEPT DB2INST1 V 2020-11-21-11.26.41.783723 VEMP DB2INST1 V 2020-11-21-11.26.41.901406 VEMPDPT1 DB2INST1 V 2020-11-21-11.26.42.266396 VEMPLP DB2INST1 V 2020-11-21-11.26.42.303926 VEMPPROJACT DB2INST1 V 2020-11-21-11.26.42.152614 VFORPLA DB2INST1 V 2020-11-21-11.26.42.290855 VHDEPT DB2INST1 V 2020-11-21-11.26.41.899784 VPHONE DB2INST1 V 2020-11-21-11.26.42.300732 VPROJ DB2INST1 V 2020-11-21-11.26.41.902841 VPROJACT DB2INST1 V 2020-11-21-11.26.41.929668 VPROJRE1 DB2INST1 V 2020-11-21-11.26.42.280267 VPSTRDE1 DB2INST1 V 2020-11-21-11.26.42.283597 VPSTRDE2 DB2INST1 V 2020-11-21-11.26.42.287719 VSTAFAC1 DB2INST1 V 2020-11-21-11.26.42.293776 VSTAFAC2 DB2INST1 V 2020-11-21-11.26.42.297155 47 record(s) selected.
最后,搞定!
还没有评论,来说两句吧...