• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

我用DB2这些年(四)

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 8次 | 进入软件测试论坛讨论

领测软件测试网
续:恢复数据库

最近不断地有人问我怎么在命令行下面恢复数据库,我给每个人都进行了比较详细的说明;后来感觉这样的事情还是写出来比较好一些,于是就有了想写关于这个东西的念头。我想还是从讲故事开始把。。。。。。

那是一个冬天,很冷很冷的那种。当时做一个项目,采用IBM RS6000小型机作为数据库的服务器,当时是第一次接触这种机器,感觉什么东西都很新鲜。在摆弄了几天之后我真正认识到学会使用CPL环境管理数据库是多么的关键,因为我把系统玩得不正常了,DB2cc在那上面启动不起来了(后来经过查验是AIX系统环境变量的问题)。当时我一下子就蒙到那里了,因为我刚做了备份后Drop了数据库准备重新恢复到另外一个地方的;后面开发还要用呢。这时候出问题可真是要命啊~~这个时候最需要的就是冷静,我回想起当时备份使用的命令行环境,肯定可以用它来恢复数据库的,但是怎么去重定向那些表空间呢?问题就在这里,原来都是用图形界面来完成的根本就没有考虑用命令行来做,弄得现在这么狼狈地。哎!早知如此,何必当初阿!

想想还是从信息中心找下把,不过运气还不错让我给找到了。在Command Reference的Restore DataBase章节中有个例子是关于重定向表空间的,于是我照着做了,具体过程如下:

第一步:建立一个新的数据库,在这里需要注意它的字符集,例如:

db2 create db test on /home/db2inst1 using codeset GBK territory zh_CN;

codeset GBK territory zh_CN就是指定中文字符集的命令字

第二步:将需要恢复的数据库恢复到这个新建的数据库中,在这个命令运行的时候会有一个提示信息,大概得意思就是说你要恢复的数据库正试图覆盖一个数据库,原来数据库的数据将会被覆盖,你可以不管它,选择Yes就行,因为那个数据库就是你刚才新建的。

db2 restore db test1 from /home/db2inst1/dbback taken at 20040330073123 into test REDIRECT WITHOUT ROLLING FORWARD;

在这个命令中需要指定待恢复数据库的时间戳,REDIRECT WITHOUT ROLLING FORWARD的意思是不要前滚。

第三步:重新定向表空间,我在这里使用的是文件型的表空间容器。

在这里需要注意的是你必须事先知道表空间容器的类型和大小。通过LIST TABLESPACES命令可以查看到数据库表空间的数量、类型和ID。然后通过命令LIST TABLESPACE CONTAINERS For tablespaceID(在前面命令中显示的tablespaceID的值) show detail查看表空间容器的大小类型和位置,如下所示:

Tablespace Containers for Tablespace 0



 Container ID                         = 0

Name                                 = /home/smith/smith/NODE0000/

                                        SQL00001/SQLT0000.0

Type                                 = Path

Total pages                          = 895

Useable pages                        = 895

Accessible                           = Yes

接下来决定需要重定向表空间容器的类型位置和大小。重定向的表空间容器的size是不能小于当前值。

db2 =〉set tablespace containers for 4 using (file @#/home/db2inst1/ long@# 51200);

db2 =〉set tablespace containers for 3 using (file @#/home/db2inst1/temp@# 51200);

db2 =〉set tablespace containers for 2 using (file @#/home/db2inst1/user@# 102400);

第四步:正式恢复数据库,打完收工。

db2 => restore db test1 continue;

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网