DB2恢复高分求助:如果数据库控制文件,日志文件损坏,怎样从全备恢复?

hqx8211 2007-05-15 01:32:36
问题描述:
1. AIX + DB2 9环境,实例db2inst1下有三个数据库,dbnm1,dbnm2,dbnm3,位于/db2data(也就是说,/db2data/db2inst1/NODE0000下面有7个文件夹,SQL00001,SQL00002,SQL00003,DBNM1,DBNM2,DBNM3,sqllibdir)
2. 对数据库dbnm3做一个离线数据库全备,成功
3. 由于误操作,SQL00003文件夹被彻底删除,此时需要恢复数据库dbnm3。

问题在于:
1. 直接恢复,提示
SQL1042C An unexpected system error occurred. SQLSTATE=58004

2. 试图drop db dbnm3, 提示:
SQL1036C An I/O error occurred while accessing the database. SQLSTATE=58030

3. 系统数据库目录中删除 dbnm3, uncatalog db dbnm3,再恢复,提示:
SQL1005N The database alias "dbnm3" already exists in either the local
database directory or system database directory.

也就是说,由于本地数据库目录中存在dbnm3,但是又无法访问它的控制和日志文件,导致无法恢复。本地数据库目录又无法直接添加删除。

我想到的解决方法:
1。恢复到另一个名字,restore db dbnm3 from xxx taken at xxx into new_dbnm3
2。或者把另外两个数据库先全部备份,然后删除NODE0000下所有文件夹,再uncatalog dbnm1, dbnm2,dbnm3,再一一恢复。

请问有没有其他方法,能够使用离线数据库全备,来直接恢复dbnm3?
...全文
848 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
tttk 2007-06-26
  • 打赏
  • 举报
回复
sql003里存放的好像是临时表空间的数据,恢复数据库的时候好像要用到临时表空间。

既然你的dbnm3已经做了备份,假定这个备份的文件没有损坏。你可以尝试新建一个数据库,然后从dbnm3恢复。
njhart2003 2007-06-21
  • 打赏
  • 举报
回复
有dbnm3的冷备份,恢复还不是容易?

直接恢复就是了。

注意恢复之前,中止连接该数据库的进程,然后再覆盖dbnm3
fengyunleo 2007-05-17
  • 打赏
  • 举报
回复
学习,帮顶
hqx8211 2007-05-15
  • 打赏
  • 举报
回复
CU上我也发了,旧帖子没有这些内容啊。有一些关于备份与恢复的帖子,但是都是比较基础的命令讲解,针对这种情况搜不到。
kangji 2007-05-15
  • 打赏
  • 举报
回复
不懂,可以发帖到chineunix.net试试
或者直接搜索旧帖http://search.chinaunix.net/

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧