我用DB2的这几年(二)

发表于:2007-07-02来源:作者:点击数: 标签:
题外话 上次写的东西发表以后有人提意见说我写的太罗索,那我在这里把前次的东西简明扼要的提议下,就是我装DB2 数据库 之后私自修改了db2admin用户的密码,造成DB2服务无法正常启动;因此建议大家以后修改db2admin用户密码的时候要慎重;不过还是有办法解决

题外话

上次写的东西发表以后有人提意见说我写的太罗索,那我在这里把前次的东西简明扼要的提议下,就是我装DB2数据库之后私自修改了db2admin用户的密码,造成DB2服务无法正常启动;因此建议大家以后修改db2admin用户密码的时候要慎重;不过还是有办法解决的,至于怎么做请你找我上次的文章把,我还是少说为妙~~

 

备份和恢复数据库

有一天,别人扔给我一个IBM的本子,说是要演示一个系统;需要恢复一个DEMO数据库。我当时说我不会恢复数据库阿,他说没有关系,里面有恢复数据库的步骤说明。我打开一看,果然写得很详细,首先打开DB2控制中心(你说这不是废话吗),后面还有更变态的话,如果你不知道怎么打开控制中心的话,在开始菜单中找到IBMDB2项进入之后找到DB2控制中心然后单击(FT!把我当阿甘了!我也不至于弱到这个地步吧!看完这句话我严重郁闷了几分钟~~)。。。。。。

几分钟之后,他拍了拍我,问我好了没有;我说还没有,马上就好。接着往下看,好像有料;是讲怎么根据备份文件恢复数据库的,这个Master在文档中是这么描述的:在数据库上选择创建数据库里面的根据备份创建数据库,然后在弹出的页面中设置新建数据库的属性数据库名阿别名阿什么的;下一步在备份映像页中设置数据库备份的信息,他在这里特别提到的是需要选择人工输入备份映像信息的选项,然后数据库名称就是备份文件的最高一级目录名就是带Sample.0的那个目录的Sample,同时需要指定备份文件的时间戳,具体方式是看最后一级目录名称和最终的文件名称例如20031204\180623.001,那么它的时间戳就是2003-12-04 18:06:23。如此这般设置就可以OK啦。

不过,在做数据库恢复的时候还要关注一下另外几个页面的内容:重定向表空间和前滚;这些曾经一度让我十分头疼。

首先是表空间的重定向,在以往的数据库恢复中我一般都是按照备份数据库的缺省表空间容器路径恢复的,有那么几次就是死活都恢复不成功,察看恢复作业中有文件系统已满、驱动器不允许进行些操作等错误信息(恢复作业会在DB2日志中心生成一条作业信息,可以通过系统提示的作业ID去查找错误信息)。经查找原因一个是容器路径所指定的驱动器没有足够的空间另外一个原因就是容器路径指向光驱或者其他网络驱动器。尤其是在机器上存在多个数据库的时候要特别注意重定向表空间,否则新恢复的数据库按照指定表空间恢复是不会提示是否有另外的数据库使用了相同的数据库表空间的容器。我曾经有一次比较惨痛的教训,就是花了一个星期做的演示数据就这么费了。

而如果不取消恢复数据库的处于前滚暂挂状态的选项,在恢复成功后使用数据库会报错“数据库处于前滚暂挂”从而连不上数据库。后来发现有一个办法好象能够解决就是恢复成功数据库后在数据库上右键选择“停止前滚”的操作吧。

以上所说的都是对于脱机数据库备份文件的恢复,关于联机备份的恢复会在后面的内容中说明。

至于备份数据库比较简单,backup db dbname to BACKPATH 然后等待几分钟就好啦。我就不罗嗦了。

待续~~

2004-02-18(刚看完中国队比赛)

原文转自:http://www.ltesting.net