DB2备份与还原

鉴于网上对DB2数据库的备份、还原资料较少,故将自己整理的内容记录一下。

常见的备份方式有三种,

第一种:数据库整体备份,通过时间戳还原数据库;

第二种:通过将数据库文件导出为 .ixf 文件,命令行还原方式;

第三种:通过其他中间件备份,如CSV表格等等。

这里仅对前两种备份的方式进行说明。

Part One -》

     通过cmd命令进入db2cmd,

     备份命令: db2 backup database <DB_NAME> to E:/

     还原命令: db2 restore db <DB_NAME>  from E:/   taken  at 20190505181334 replace existing

     (或通过datastudio进行备份、复原亦可)

 

Part Two -》

  1> 导出表结构

    db2look -d <DB_NAME> -u <USER_NAME> -e -o  E:\FILE_TO_EXPORT.sql

   单模式导出语句   db2look -d <DB_NAME> -u <USER_NAME>  -e -z <SCHEMA_NAME> -o  E:\FILE_TO_EXPORT.sql

   具体参数说明:  https://blog.csdn.net/qiuyoungster/article/details/48549817

  2> 导出表数据

    通过数据库连接工具运行如下命令,这里以备份COMMON 模式为例。

   select 'db2 export to '|| 'E:\data\COMMON\' || tabname ||'.ixf of ixf  select * from '||'COMMON.'||tabname  from syscat.tables where TABSCHEMA='COMMON'

    将运行的结果写入批处理文件中。

    export.bat

db2 connect to <DB_NAME> user administrator using  <PASSWORD>
 
 
db2 export to E:\data\COMMON\T_BAS_ATTACH.ixf of ixf select * from COMMON.T_BAS_ATTACH
db2 export to E:\data\COMMON\T_BAS_COMPANY.ixf of ixf select * from COMMON.T_BAS_COMPANY
  另外如果密码中含有特殊字符,如","等,需要将密码转义, \" xx,.xx \"。

  在需要备份的数据库db2cmd中运行该批处理文件,即可将数据备份至文件目录下。

 3> 导入表结构

      db2 -tvf E:\FILE_TO_EXPORT.sql

      单模式还原  db2 -z <SCHEMA_NAME>  -tvf E:\FILE_TO_EXPORT.sql

 4> 导入表数据

 通过数据库连接工具运行如下命令,这里以备份COMMON 模式为例。

select 'db2 load  from '|| 'D:\data\COMMON\' || tabname ||'.ixf of ixf modified by identityoverride  replace into ' ||'COMMON.' || tabname   from syscat.tables where TABSCHEMA='COMMON'

将运行的结果写入批处理文件中。

import.bat

db2 connect to <DB_NAME> user administrator using  <PASSWORD>
 
 
db2 load from E:\data\COMMON\T_BAS_ATTACH.ixf of ixf modified by identityoverride replace into COMMON.T_BAS_ATTACH
db2 load from E:\data\COMMON\T_BAS_COMPANY.ixf of ixf modified by identityoverride replace into COMMON.T_BAS_COMPANY
在需要备份的数据库db2cmd中运行该批处理文件,即可将数据还原。

5> 数据表有时会出现暂挂的状态。

不允许对表 "" 执行操作,原因码为 "1"。. SQLCODE=-668, SQLSTATE=57016, 

// 查看表是否暂挂
db2 load query TABLE <TABLE_NAME>
 
db2 set integrity for <TABLE_NAME> check immediate unchecked
ps: 此外,如果需要将备份的数据导入到别名的数据库中,命令如下

db2 RESTORE DATABASE <OLD_DB_NAME>  from E:\   taken  at 20190505181334 INTO  <NEW_DB_NAME> 


版权声明:本文为CSDN博主「斌小哥」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38319645/article/details/91406254

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页