学习DB2数据库

工作中使用到了DB2数据库,录之,以便后用。

2022年08月12日

目录


1. 数据库基础命令

#1. 切换到数据库安装用户
su - db2inst1

#2. 连接到数据库
db2 connect to <数据库> #本地
db2 connect to <数据库> user <用户名> using <密码> #远端

#3. 强制所有应用断开数据库连接
db2 force application all

#4. 备份/还原整个数据库
db2 backup db <数据库>
db2 restore db <数据库>

#5. 查看所有数据库连接
db2 list application

#6. 启动/关闭数据库
db2start/db2stop

#7. 执行sql
db2 -tvf *.sql #中间出现错误不会断开
db2 -txvf *.sql #中间出现错误会断开,并提示错误

#8获取日志路径
db2 get db cfg for bpfdb3 #获取实例日志路径
db2 get dbm cfg | grep DIAGPATH #获取诊断日志路径

2. 数据库结构/数据导入导出

db2结构导出

db2lookup -d <数据库> -u <用户> -o <导出脚本.sql>

注意:导出的结构中可能有源数据库中自定义的表空间,如果导入目标数据库中没有相应的表空间就会报错,为了保持迁移表的一致性,在执行sql的时候使用db2 -txvf *.sql,中间如果出现错误会断开,需要把所有的错误都解决了。

db2move数据导出导入

#导出数据
db2move <数据库> export -l lobs

#导入数据
db2move <数据库> import -l lobs

注意:这里的-l参数指的是lobpaths,而不是日志。如果有lob相关的字段,需要指定路径将lob数据单独放在指定路径下。在数据导入的时候同样要指定lob路径,这样lob字段的数据才能够导入。

db2move命令参数参考相关文档:https://www.ibm.com/docs/en/db2/10.5?topic=commands-db2move-database-movement-tool

3. 数据库表空间

表空间创建示例:

db2 "create regular tablespace  tablespace1 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace1' 5g) bufferpool bp32k"
db2 "create regular tablespace  tablespace2 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace2' 10g) bufferpool bp32k"
db2 "create regular tablespace  tablespace3 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace3' 2g) bufferpool bp32k"

4. 参考链接