SQLDBDIR目录详解

Part 1

======================================================================================

DB2 有两个描述 databaseentry的文件,一个在实例的SQLLIB目录下,<instancedirectory>/sqllib/sqldbdir/sqldbdir(称作 实例sqldbdir),一个在数据库的目录下<db_path>/NODE0000/sqldbdir/sqldbidir(称作 数据库sqldbdir)。

db2 list db directory , db2 catalog db, db2 uncatalog db 都是在操作实例sqldbdir。
而 db2 create db 和 db2 drop db 都是在操作数据库 sqldbdir。
要查看 实例 sqldbdir的信息用db2 list db directory 就可以。
要查看具体 的 数据库sqldbdir的信息可以用 db2 list db directory on<db_path>就可以。


=====================================================================================


Part 2

=====================================================================================

 

不小心将NODE0000目录下的SQLDBDIR文件删除了,通过客户端连接数据库时 报SQL30061N  在远程节点上找不到数据库别名或数据库名称 "DB  "
SQLSTATE=08004

实现步骤:

1.先备份
1.uncatlog db
2.将当前的目录改名
3.重新创建一个名字一样的数据库
4.然后将新生成的SQLDBDIR保留下来
5.将改名的目录改回来,把新生成的SQLDBDIR文件拷回去。
如果运气好可以成功,不能保证每次都行

具体步骤是:
1.uncatalog database db1
2.db2_kill 杀掉db2进程
3.cp -r SQL00001 B_SQL00001
4.rm -r sqldbdir
5.db2start
6.Create database db1 on '目录' 目录要跟原先的db1的目录保持一致
7.db2_kill 杀掉db2进程
8.rm -rf SQL00001
9.cp -r B_SQL00001 SQL00001
10.db2start
11.connect to db1
连接成功,问题解决!

 

=====================================================================================

posted @ 2013-03-12 00:33  胡.杰  阅读(561)  评论(0编辑  收藏  举报