#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 #获取诊断日志路径
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
表空间创建示例:
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"