DB2
1,DB2简介及发展历史
1.1,DB2简介
-
IBM公司的数据库系统
-
关系型数据系统
-
适用于大型应用系统,如:某企业门户网站,商务智能系统
-
支持大多数主流操作系统,如:window,Linux,AIX
-
与平台无关的基本功能和SQL语句
1.2 ,DB2的发展历史
-
1969 DB1
-
1983 DB2 for MVS
-
2006
DB2 V9 -
DB2 V9.5
-
DB2 V9.7
-
DB2 V9.8
-
DB2 V10.1
-
2013
DB2 V10.5
2,DB2支持的平台及版本
2.1,补充知识:IBM的主机体系简介
2.2,DB2支持的平台
2.3,DB2的版本
3,DB2主要产品组件及功能
3.1,连接数据库所需的组件/客户端
3.2,DB2 Connect
4,DB2体系结构简介
4.1,DB2体系结构简图
-
一个数据库实例可以管理一到多个数据库
-
数据库由一到多个表空间组成
-
表存储在表空间中
4.2,数据库管理实例(Database manager instance)
-
不同版本的DB2产品可以共存于同一套操作系统。
-
每个DB2产品可以创建一到多个实例
-
每个数据库实例都有自己的配置文件
4.3,数据库(database)
-
数据库必须受实例的管理
-
在非集群的情况下,一个数据库只能受一个实例的管理。
-
每个数据库都有自己的配置文件。
4.4,表空间(Tablespace)
-
数据库由一到多个表空间组成
-
表空间用于存储数据库对象,比如表,索引等。
-
表空间创建相关操作
1.创建表空间最简单的命令 db2 create tablespace tablespace_name 2.创建一个大型表空间 db2 create large tablespace tablespace_name 3.创建一个用户临时表空间 db2 create user temporary tablespace tablespace_name 4.创建一个8K页大小的表空间 db2 create tablespace tablespace_name pagesize 8K 5.创建一个数据库管理的表空间 db2 "create tablespace tablespace_name managed by database using (file '/dbpath/tabalespace_name01.dbf' 10m,file '/dbpath/tabalespace_name02.dbf' 10m)";
-
表空间修改相关操作
1.查看表空间 db2 list tablespaces [show detail] 2.查看表空间的容器 db2 list tablespace containers for tablespace_id [show detail] 3.修改表空间 alter tablespace tablespace_name
管理实例
创建实例示例:
-
Linux&Unix上创建实例:
DB2DIR/instance/db2icrt -u FencedID InstNam
-
Windows上创建实例:
DB2DIR/bin/db2icrt InstName
#### 连接和断开实例
-
连接实例的命令:
db2 attach to INSTName
-
断开实例的命令:
db2 detach
停止实例
-
停止实例必须具有相应的权限
-
停止实例的命令:
db2stop
-
强制应用程序与用户与数据库断开:
db2stop force
实例参数
-
查看实例参数:
db2 get dbm cfg
-
修改实例参数:
db2 update dbm cfg using 参数名 参数值
-
复位实例参数为默认值:
db2 reset dbm cfg
删除实例
-
删除实例,必须具有root或者系统管理员的权限
-
删除实例前,要确保实例已经停止
-
删除实例的命令:
./db2idrop 实例名
操作实例的其他命令
-
查看实例:
db2ilist
-
更新实例:
db2iupdt
-
迁移实例:
db2imigr
-
自动启动实例:
db2iauto
环境变量的优先级
-
操作系统级别的环境变量
--
使用set或者export设置
-
全局级概要文件注册变量
--
使用db2set -g设置
-
实例级概要文件注册变量
--
使用db2set -i设置
-
实例节点级概要文件注册变量
--
使用dbset -i <instance name> <nodenum> 命令
管理实例注册变量
-
管理实例变量的命令:
db2set
-
查看已经设置的实例变量:
db2set -all
-
查看所有可进行定义的实例变量:
db2set -lr
[e] DB2PATH=D:\02java\db2\impl [i] DB2INSTPROF=C:\ProgramData\IBM\DB2\DB2COPY1 [i] DB2COMM=TCPIP [g] DB2_COMPATIBILITY_VECTOR=MYS [g] DB2_EXTSECURITY=NO [g] DB2_COMMON_APP_DATA_PATH=C:\ProgramData [g] DB2SYSTEM=LAPTOP-B6J956SC [g] DB2PATH=D:\02java\db2\impl [g] DB2INSTDEF=DB2 [g] DB2ADMINSERVER=DB2DAS00
[e]
: 系统级别的变量[i]
: 实例级别的变量[g]
: 全局级别的变量
黑窗口使用的命令
db2cmd
: 进入db2的黑窗口界面
db2 list db directory
: 展示可操作的db2数据库目录
db2 connect to LEIYUDB1
: 连接到指定的数据库
db2 create tablespace leiyu01
: 创建普通的表空间
db2 create large tablespace largeleiyu01
: 创建大型表空间
db2 list tablespaces
: 查看所有的表空间
创建数据库
数据库和自动存储的位置
create database dataname(名称) on /dataroad(路径)
-- 数据库路径: /dataroad(路径)
-- 自动储存路径:/dataroad(路径)
删除表空间
db2 alter tablespace tablespace_name
重命名表空间
db2 rename tablespace_old to tablespace_new
创建表
db2 "create table employee(id integer,name varchar(10),gender char(1))"
查询该表
db2 describe table employee
20201108补充
报错:SQL1582N 表空间 "JBPM" 的 PAGESIZE 和与该表空间相关联的缓冲池 "IBMDEFAULTBP" 的 PAGESIZE 不匹配。 SQLSTATE=428CB 原因分析: CREATE TABLESPACE默认使用的BUFFERPOOL IBMDEFAULTBP的PAGESIZE是4K,建一个非4K PAGESIZE的表空间时,需要先创建一个相同大小PAGESIZE的缓冲池,然后使用这个缓冲池。
具体操作如下:
1.db2 create bufferpool bp16k size 1000 pagesize 16 K 2.db2 create tablespace leiyu pagesize 16k managed by database using (file 'D:\DB2\data\leiyu' 10000) bufferpool bp16k