我把系统重装了,但是只格式化了C盘,所以其他盘的文件依然存在,重新安装DB2后发现原来建的数据库依然存在,但是数据库中的表却没有了,请问这些数据库原来的表所存放的默认位置在哪?这些表如果没有删除的话我该如何将它们重新加入数据库中?
-----
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
我倒是没用过,可以试试嘛,试之前,要做好备份
-----------
重装数据库后,只要原数据的文件没有删除,可以用catalog db 加载机器上原有的数据库,但是只加载一个表空间或一个表我觉得实现不了。