db2数据库的备份,我用的是backup命令。db2 backup database 数据库名(我的库是jsdb)忘了说了,在backup之前需要停止你要备份的数据库,我用了db2stop force(之所以用force参数是因为这样好停懒省事:)和db2start。这样就保证可以成功backup了。备份完成后db2会告诉你一个时间戳,例如:20040831(之后好几位)这样就会在当前目录下产生一个与你数据库名相同的文件夹名例如:jsdb。这个文件夹目录层次很重要,如果错了会在恢复时提示找不到文件。备份完成以后就是恢复了,我用的是restore命令。db2 restore database 数据库名(jsdb)taken at 时间戳(20040831)执行这个语句要注意两点:1,要把备份文件夹考到当前目录下(我用了一个cd c:\命令设当前目录为c盘,将jsdb文件夹考到c盘根目录下);2,时间戳要和jsdb目录中的一致。这样,就完成了恢复数据库了。

解决方案 »

  1.   

    我一般都是在control center中来做,在databasese上点右键选择create,选择database from backup在description中输入库名,在backup image中选择manually enter image information。选择文件夹,注意选到D:\MYDEV.0\为止,然后在日期处输入20040708时间处输入184136(18:41:36),然后就ok了
      

  2.   

    hanwei39:那么这样做能成功吗?我已经多次也和你一样,怎么老是会报错呢?我再试试看
      

  3.   

    hanwei39:我按照你的方法发出如下的错误!SQL2542N  根据所提供的源数据库别名 "MYDEV" 和时间戳记 
    "20040708184136",找不到数据库映象文件的匹配项。解释: 备份映象文件文件名由数据库别名和时间戳记组件组成。文件名根据
    Database Restore
    调用中提供的源数据库别名和时间戳记参数构造。源目录中不存在与提供的
    源数据库别名和时间戳记相匹配的文件名。如果从自动增量式复原接收到此
    错误,则根据数据库历史中的时间戳记和位置找不到必需的映象。 用户响应: 确保数据库备份映象驻留在媒体源上。重新提交操作,并指定正确的时间戳
    记来生成匹配。 如果从自动增量复原中接收到此错误,则检查相应的备份条目的数据库历史
    ,并验证列示的位置是否与备份映象的实际位置相匹配。要么更新数据库历
    史,并重试该操作,以生成匹配项,或者发出 RESTORE INCREMENTAL ABORT
    命令来清除在处理期间可能已经创建的任何资源。