DB2
备份与恢复
整理下16年写的DB2相关文档,换工作以后一直没用过DB2,忘的差不多了。
一 db2 backup/restore
备份和恢复
1.1
备份
db2 backup/restore
备份与恢复只适用于相同操作系统平台的数据库;
命令格式:
db2 backup db <
数据库名
> to <
目录名
>
注:在备份前需断开所有与数据库的连接
,
断开连接后再备份
,
目录名是备份后的文件的存放目录.
例
:
db2 backup database sample to d:\backup
如果数据库正在被使用,可能回报错“
SQL1035N
The database is currently in use. SQLSTATE=57019
”需要停掉服务,用命令:
db2 force application all
db2 backup db
sample
to d:\
backup
1.2恢复
命令格式:
db2 restore db <
数据库名
> from <
目录名
>
例
:
db2 restore db
sample
from d:\
backup
—
删除原有的
sample
数据库
(
模拟数据库恢复
)
恢复数据库sample
db2 restore db sample from D:\DB2\backup
查看数据库
二:db2move
备份和恢复
2.1
备份
1)
首先连接到要导出的数据库上,如本例导出数据库
nctest
:
db2 connect to nctest user db2inst1 using db2inst1
其中的参数user
后面跟指定用户,
using
后面指定用户的密码,不指定时会使用默认用户进行登录;
2)
使用
db2look
导出数据对象的定义语句
db2look
–
d nctest
–
e
–
o ncdb.sql
–i
db2inst1
–
w d
b2inst1
命令中的参数
–
o 意思是将数据对象的定义导出到指定的文件中;
其中的参数-i
后面跟指定用户,
-w
后面指定用户的密码,不指定时会使用默认用户进行登录;
3)
使用db2move 命令导出数据库对象的数据
db2move nctest export
–
u db2inst1
–
p db2inst1
连接数据库sample
通过db2look
导出
sample
数据库创建对象的脚本
sample.sql
db2look -d sample -e -o sample.sql
-i
用户名
-w
用户密码
导出数据
db2move sample export
-u
用户名
-p
用户密码
sample.sql:
创建数据对象的脚本;
export.out:
数据库导出日志;
db2move.lst:
包括导出的对象名称和各个对象所属的模式;
—
如果导出时报错
SQL3107W
,需要更改环境变量的字符集
2.2
恢复
将SAMPLE
数据库数据导入到
test
数据库中
db2 create database test
通过db2move
恢复
NC
数据库时,可以根据建库脚本
1.sql
,先进行创建数据库和表空间等操作;
db2 connect to test
user
用户名
using
用户密码
a.sql—create_table.sql
b.sql—create_foreign.sql
修改sample.sql
脚本,将脚本中数据库名称,表空间名称更改为实际的名称;
将sample.sql
脚本中创建外键的语句剪切到另一个脚本中
(create_foreign.sql);
如果导入数据时,在没有导入主表数据之前,导入对应外键表数据时会出现错误,所以需要在成功导入外数据后,在进行外键的创建;
创建表结构
db2 -tvf a.sql
…
导入数据
db2 test import -io insert
-u
用户名
-p
用户密码
导入外键约束
db2 -tvf b.sql
查看数据
…..
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!