DB2数据库中的表在硬盘上的存储位置在哪?

我把系统重装了,但是只格式化了C盘,所以其他盘的文件依然存在,重新安装DB2后发现原来建的数据库依然存在,但是数据库中的表却没有了,请问这些数据库原来的表所存放的默认位置在哪?这些表如果没有删除的话我该如何将它们重新加入数据库中?

这个得查,先查数据库的位置,再查表所属的表空间,现查表空间的存储位置,

执行db2cmd
查看本机所有的数据库编目
db2 list db directory
联接数据库
db2 connect to db_name user uid using pwd
查看表空间位置
db2 list tablespaces show detail
重装数据库后,只要原数据的文件没有删除,可以用catalog db 加载机器上原有的数据库,但是只加载一个表空间或一个表我觉得实现不了。追问

但是现在情况就是这么古怪,数据库我已经注册回来了,但是里面自己建的表却一个都没有。
db2 list tablespaces show detail我试了,只能查找当前数据库有哪些表空间,找不到表空间位置,我随便试了个丢失的数据库,里面一共有5个表空间,分别是SYSCATSPACE、TEMPSPACE1、USERSPACE1、SYSTOOLSPACE、SYSTOOLSTMPSPACE。

追答

看样子你列出来的都是数据库默认的表空间,你可以在db2cc(控制中心)看看。

用户表空间为USERSPACE1

追问

谢谢了,不过原因我已经知道了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-27
db2 list db directory $disk
$disk 换成你的D:盘或者E:盘,DB2 Windows只允许安装在盘符根目录下,这样就可以查看到盘里是否有数据库,如果发现了catalog一下数据库就回来了追问

数据库已经注册到DB2中,让我奇怪的是为什么里面自己建的表都不见了,DB2自己建的表好像都还有。重装系统前我可以保证绝对没有删过数据库中的表。还有就是为什么只能安在根目录下,我的DB2软件所在地就不是根目录,而存放数据库数据的地方倒是在根目录下,但那是我自己指定的吧?

追答

DB2软件是安装软件,DB2 COPY是一个实例,这两者要明显区分开。
在DB2中的表,都会归属于某个模式Schema,默认就是当前用户,你用之前的用户user1创建的表为user1.table1,重装系统后现在的user2如果要访问table1,必须写完整的表名及user1.table1。输入db2 select current_schema from sysibm.sysdummy1即可查看到当前默认的schema,而如果要查看所有原来的表格,只需要 db2 list tables for schema user1 即可,或者 db2 list tables for all查看所有表

追问

恩,非常感谢,确实是这样!那能不能够将table1的模式修改为当前默认的模式?网上查V9.0有个ADMIN_COPY_SCHEMA,但是里面的参数不是很懂,如果这个功能能够实现我的要求,能不能够麻烦你帮忙把每个参数都解释一下,或者给个有详细解释的链接也可以

追答

http://www.cnblogs.com/lianyonglove/archive/2009/12/07/1618730.html

我倒是没用过,可以试试嘛,试之前,要做好备份

本回答被提问者采纳
第2个回答  2013-11-27

我用的SQL Server2008,数据库的工程文件默认保存路径如下如所示(在D盘):

追问

不行,DB2与SQL Server2008不同。

相似回答