DB2是IBM公司研制的一种关系型数据库系统,它主要应用于大型应用系统,具有很强的海量数据处理能力,具有较好的可伸缩性 教学地址
可支持从大型机到单用户环境,包括DB2工作组版(DB2Workgroup Edition)、DB2企业版(DB2 Enterprise Edition)、DB2个人版(DB2 Personal Edition)和DB2企业扩展版(DB2 Enterprise-Exended Edition)等,这些产品基本的数据管理功能是一样的,区别在于支持远程客户能力和分布式处理能力。日常可自行安装DB2个人版进行学习,本教程旨在帮助初学者了解DB2,方便日后的进一步学习。
1、什么是DB2?
百度百科
DB2是IBM公司于1983年研制的一种关系型数据库系统
(Relational Database Management System),主要应用于大型应用系统,具有较好的可伸缩性 。DB2是IBM推出的第二个关系型数据库,所以称为db2。DB2 提供了高层次的数据利用性、完整性、安全性 、并行性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令运行环境。可以同时在不同操作系统使用,包括Linux、UNIX 和 Windows。
2、DB2数据库的特色
✔ 支持面向对象的编程db2支持复杂的数据结构,如无结构文本对象,可以对无结构文本对象进行布尔匹配、最接近匹配和任意匹配等搜索。可以建立用户数据类型和用户自定义函数。
✔ 支持多媒体应用程序
✔ db2支持大二分对象(blob),允许在数据库中存取二进制大对象和文本大对象。其中,二进制大对象可以用来存储多媒体对象。
✔ 备份和恢复能力
✔ 支持存储过程和触发器,用户可以在建表时显示的定义复杂的完整性规则
✔ 提供GUI和命令行,在windows和Unix下操作相同
✔ 支持异构分布式数据库访问
✔ 支持数据复制
3、DB2数据库的优势
✔ 开放性。 能在所有主流平台上运行(包括windows)。最适于海量数据。
✔ 可伸缩性,并行性。具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点。
✔ 安全性。获得最高认证级别的ISO标准认证。
✔ 客户端支持及应用模式。跨平台,多层结构,支持ODBC,JDBC等客户。
✔ 操作。操作简单,同时提供GUI和命令行,在windowsNT和unix下操作相同。
✔ 使用风险。在巨型企业得到广泛的应用,向下兼容性好。风险小。
4、使用场景
DB2性能较高,适用于数据仓库和在线事物处理
。DB2 超大型数据库,数据仓库和数据挖掘相当的不错,特别是集群技术可以使DB2的可扩性能达到极致。
部署
docker run -itd --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=123.com -e DBNAME=db2 -v /data/db2:/database ibmcom/db2
查看日志
[root@master ~]# docker logs mydb2
2022-06-15-01.05.48.427085+000 I233623E393 LEVEL: Warning
PID : 15210 TID : 139833389700992 PROC : db2start
INSTANCE: db2inst1 NODE : 000
HOSTNAME: 1e01bd034b3b
FUNCTION: DB2 UDB, base sys utilities, sqleReleaseStStLockFile, probe:16187
MESSAGE : Released lock on the file:
DATA #1 : String, 50 bytes
/database/config/db2inst1/sqllib/ctrl/db2strst.lck
进入容器中
[root@master ~]# docker exec -ti mydb2 bash -c "su - db2inst1"
Last login: Wed Jun 15 01:07:54 UTC 2022
[db2inst1@1e01bd034b3b ~]$ pwd
/database/config/db2inst1
[db2inst1@1e01bd034b3b ~]$ ls
set_rec_values.sh sqllib
# 连接实例
[db2inst1@1e01bd034b3b ~]$ db2 attach to db2inst1
Instance Attachment Information
Instance server = DB2/LINUXX8664 11.5.7.0
Authorization ID = DB2INST1
Local instance alias = DB2INST1
# 断开实例
[db2inst1@1e01bd034b3b ~]$ db2 detach
DB20000I The DETACH command completed successfully.
# 创建数据库
[db2inst1@1e01bd034b3b ~]$ db2 create db test
db2 connect to test
DB20000I The CREATE DATABASE command completed successfully.
# 连接数据库
[db2inst1@1e01bd034b3b ~]$ db2 connect to test
Database Connection Information
Database server = DB2/LINUXX8664 11.5.7.0
SQL authorization ID = DB2INST1
Local database alias = TEST
db2 get dbm cfg # 查看实例参数
db2 list db directory # 查看数据库列表
db2 drop database TEST # 删除数据库
# 查看db2端口
[db2inst1@1e01bd034b3b ~]$ db2 get dbm cfg|grep SVCENAM
TCP/IP Service name (SVCENAME) = db2c_db2inst1
SSL service name (SSL_SVCENAME) =
[db2inst1@1e01bd034b3b ~]$ cat /etc/services | grep db2c_db2inst1
db2c_db2inst1 50000/tcp
db2c_db2inst1_ssl 50001/tcp
Don’t give up so easily!