原文地址:http://www.cnblogs.com/fulltimeangel/archive/2010/07/17/SQL1013N.html
机器重装系统后还原数据库时出现错误,错误描述的大体意思是数据库的别名已经存在。
用db2 list db directory 命令查看d盘的数据库目录,发现别名确实存在。
D:\Program Files\IBM\SQLLIB\BIN>db2 list db directory on d:
d: 上的本地数据库目录
目录中的条目数 = 2
数据库 1 条目:
数据库别名 = RMDB
数据库名称 = RMDB
数据库目录 = SQL00001
数据库发行版级别 = b.00
注释 =
目录条目类型 = 本地
目录数据库分区号 = 0
数据库分区号 = 0
数据库 2 条目:
数据库别名 = NHSAMPLE
数据库名称 = NHSAMPLE
数据库目录 = SQL00002
数据库发行版级别 = b.00
注释 =
目录条目类型 = 本地
目录数据库分区号 = 0
数据库分区号 = 0
运行数据库删除命令 db2 drop db
D:\Program Files\IBM\SQLLIB\BIN>db2 drop database RMDB
SQL1013N 找不到数据库别名或数据库名称 "RMDB "。 SQLSTATE=42705
尝试连接数据库时出现SQL1013N错误
D:\Program Files\IBM\SQLLIB\BIN>db2 connect to RMDB user db2admin using password
SQL1013N 找不到数据库别名或数据库名称 "RMDB"。 SQLSTATE=42705
D:\Program Files\IBM\SQLLIB\BIN>db2 connect to RMDB
SQL1013N 找不到数据库别名或数据库名称 "RMDB"。 SQLSTATE=42705
执行数据库编目命令 db2 catalog database
D:\Program Files\IBM\SQLLIB\BIN>db2 catalog database RMDB as RMDB
DB20000I CATALOG DATABASE命令成功完成。
DB21056W 只有在刷新目录高速缓存以后,目录更改才会生效。
执行命令 db2start
D:\Program Files\IBM\SQLLIB\BIN>db2start
ADM12026W DB2 服务器检测到尚未注册此产品的有效许可证。
SQL1026N 数据库管理器已激活。
重新连接数据库
D:\Program Files\IBM\SQLLIB\BIN>db2 connect to RMDB
数据库连接信息
数据库服务器 = DB2/NT 9.1.3
SQL 授权标识 = ADMINIST...
本地数据库别名 = RMDB
关闭数据库连接,删除数据库成功!
D:\Program Files\IBM\SQLLIB\BIN>db2 disconnect current
DB20000I SQL DISCONNECT命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>db2 drop database RMDB
DB20000I DROP DATABASE命令成功完成。
结论:由于系统数据库目录中对数据库RMDB的编目已经被删除,因此在连接数据库RMDB或者删除数据库RMDB时,db2会去系统数据库目录中查找连接的信息找不到,但在创建具有相同别名数据库时(如:新建、还原),由于数据库的物理文件还存在并且在本地数据库中有对应条目,所以出错。
对RMDB重新编目,就可以修正该问题。