Docker - 通过容器安装部署DB2数据库教程
我之前写过文件介绍如何使用 DB2 官方的安装程序进行 DB2 数据库的安装(点击查看)。本文介绍另一种方式:通过 Docker 来快速搭建 DB2 数据库环境,使用这种方式可以免去很多安装配置上的麻烦,方便快捷。
1,拉取镜像
(1)首先执行如下命令将镜像下载到本地:
(2)由于镜像比较大(2.69G),执行如下命令删除所有 dangling 数据卷(即无用的 Volume),避免空间不足:
1 | docker volume rm $(docker volume ls -qf dangling=true) |
2,启动容器
(1)执行如下命令实例化 DB2 服务:参数说明:
- -d: 表示在后台启动容器;
- -p 50000:50000: 容器内部的 50000 端口映射主机的 50000 端口;
- --name db2:将容器命名为 db2
- --privileged=true:使得容器内的 root 拥有真正的 root 权限。
- -e DB2INST1_PASSWORD=marco-1234:设置内置实例用户 db2inst1 的密码为 marco-1234
- -e DBNAME=testdb:容器启动时自动创建一个名为 testdb 的数据库,如果不指定该参数则不创建数据库
- -e LICENSE=accept:接受协议
- -v /usr/local/db2:/database:挂载目录,其中 /usr/local/db2 是宿主机的目录
1 | docker run -d -p 50000:50000 --name db2 --privileged=true -e DB2INST1_PASSWORD=marco-1234 -e DBNAME=testdb -e LICENSE=accept -v /usr/local/db2:/database ibmcom/db2 |
(2)执行 docker ps 命令确认容器启动成功。
3,执行命令
(1)首先执行如下命令进入 DB2 实例的命令环境中:
1 | docker exec -it db2 /bin/bash |
(2)执行如下命令切换到实例用户 db2inst1:
注意:一定要写中间的那个横条(-)。
(3)执行如下命令可以查看运行状态:
(4)执行如下命令可以查看数据库和补丁版本:
(5)执行如下命令可以查看已经创建的数据库,可以发现根据启动时的配置参数,目前创建一个 testdb 数据库:
(6)执行如下命令连接 testdb 数据库:
(7)然后执行如下命令创建一个名为 TEST 的表:
注意:db2 命令后面的sql语句需要用引号括起来,否中会报 -bash: syntax error near unexpected token `(' 错误。
1 | db2 "create table TEST(ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1,INCREMENT BY 1),USER_NAME VARCHAR(20),USER_AGES INT)" |
(8)执行如下命令可以查看所以用户表,可以发现 TEST 表创建成功:
(9)我们还可以执行如下命令再创建一个 SAMPLE 数据库(样例数据库)
(10)接着再次执行 db2 list dbdirectory 命令可以看到数据库创建成功:
(11)最后执行 exit 即可退出容器,返回到宿主机。
4,执行命令
DB2数据库常用命令学习
db2start
:
启动数据库实例
db2stop force
:
停止数据库实例
db2pd -
:
查看数据库运行状态
db2level: 查看数据库和补丁版本
db2ilist: 查看数据库已经安装的实例
db2 list db directory 查看当前实例下有哪些数据库
db2 connect to testdb: 连接到数据库实例testdb
db2 get instance :
显示当前数据库管理实例
db2 select current schema from sysibm.sysdummy1
– 查看当前数据库默认的schema
db2 SELECT CURRENT USER FROM SYSIBM.SYSDUMMY1
– 查看当前数据库默认的user
db2 list tables 列出数据库中的表(需要先连接数据库)
db2 describe table TABLENAME(表名) 查看表的信息
db2 list tables for all
– 列出当前数据库下所有的表
db2 list tablespaces show detail
– 显示数据库空间使用情况
db2 get db cfg
:显示库实例的配置
db2 get db cfg for testdb :
显示testdb数据库配置
db2 list applications show detail 查看数据库连接详细信息
db2 list active databases 列出当前实例中正在使用的数据库
DB2DIR/instance/db2icrt -u FencedID instName : Linux上创建DB2实例
db2 attach to INSTName : 连接DB2实例
db2 detach : 断开DB2 实例
db2 get dbm cfg :查看DB2数据库实例
db2 update dbm cfg using 参数名 参数值
db2 reset dbm cfg : 复位实例参数为默认值
1、db2 connect to <数据库名> --连接到
本地
数据库名
db2 connect to <数据库名> user <用户名> using <密码> --连接到
远端
数据库
2、 db2 force application all --强迫所有应用断开数据库连接
3、db2 backup db db2name<数据库名称> --备份整个数据库数据
db2 restore db <db2name> --还原数据库
4、
db2 list application
--查看所有连接(需要连接到具体数据库才能查看)
5、db2stop --停止数据库
db2start --启动数据库
6、create database <数据库名> using codeset utf-8 territory CN --创建数据库使用utf-8编码
7、db2 catalog 命令
db2 catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号> --把远程数据库映射到本地接点一般为50000
db2 catalog db <远程数据库名称> as <接点名称> at node PUB11 --远程数据库名称到本地接点
db2 CONNECT TO <接点名称> user <用户名> using <密码> --连接本地接点访问远程数据库
8、数据库导出
db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql --导出数据库的表结构,其中用户空间一般为
db2admin/db2inst2
db2look -d <数据库名> -u <用户> -t <表1> <表2> -e -o <脚本名称>.sql --导出数据库中表1和表2的表结构
db2move <数据库名> export --导出数据库数据
db2move <数据库名> export -tn <表1>,<表2> --导出数据库中表和表数据
9、数据库导入
db2 -tvf <脚本名称>.sql --把上述导出的表结构导入到数据库表结构
db2move <数据库名> load -lo replace --把上述“db2move <数据库名> export “导出的数据导入到数据库中并把相同的数据替换掉
在实际使用过程中,如果用到db2自增主键,需要使用by default, 而不是always,功能是一样的,但这样在数据移植时候会很方便!
10、db2 connect reset 或 db2 terminate --断开与数据库的连接
11、db2set db2codepage=1208 --修改页编码为1208
12、db2 describe table <表名> --查看表结构
13、db2 list tables --查看数据库中所有表结构
db2 list tables for system --列出所有系统表
14、db2 list tablespaces --列出表空间
所有评论(0)