今天一开发人员反应,说有一数据库连接不上,我试着连接,数据库报如下错误:
$ db2 connect to cbstest5
SQL1031N The database directory cannot be found on the indicated file system.
SQLSTATE=58031
然后查看:
$ db2 list db directory
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = CBSTEST5
Database name = CBSTEST5
Local database directory = /cbstest5
Database release level = b.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
此数据库在/cbstest5目录下,通过如下命令查看,居然报同样的错误
$ db2 list db directory on /cbstest5
SQL1031N The database directory cannot be found on the indicated file system.
SQLSTATE=58031
看来问题出现在此目录,查看此目录下 文件发现sqldbdir目录不见了,看来只能想办法先生成此目录下的文件;
生成此目录过程:
1、UNCATALOG此数据库
$ db2 uncatalog db cbstest5
2、修改此库所在目录名为其他名称
$ mv db2inst1 db2inst1.liyj
3、在原路径创建与先前库名一样的数据库
$ db2 create database cbstest5 on /cbstest5 using CODESET gbk TERRITORY cn
4、拷贝sqldbdir目录至原来备份的路径
$ cp -r sqldbdir /cbstest5/db2inst1.liyj/*00/
5、删除新生成的库目录,然后复原先前备份的目录
$ mv db2inst1.liyj db2inst1
重新连接数据库成功,检查数据库表数据与结构一切正常;
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论4 条评论
2013-01-21 15:06
2012-12-13 17:16
2012-11-01 17:00
2012-10-12 10:31