重装db2

机器重装系统后还原数据库时出现错误,错误描述的大致意思是数据库的别名已经存在。数据库

用db2 list db directory 命令查看d盘的数据库目录,发现别名确实存在。缓存

 

D:/Program Files/IBM/SQLLIB/BIN>db2 list db directory on d:服务器

 d: 上的本地数据库目录.net

 目录中的条目数 = 2blog

数据库 1 条目:产品

 数据库别名                      = RMDB
 数据库名称                               = RMDB
 数据库目录                      = SQL00001
 数据库发行版级别                = b.00
 注释                            =
 目录条目类型                    = 本地
 目录数据库分区号                  = 0
 数据库分区号                             = 0im

数据库 2 条目:数据

 数据库别名                      = NHSAMPLE
 数据库名称                               = NHSAMPLE
 数据库目录                      = SQL00002
 数据库发行版级别                = b.00
 注释                            =
 目录条目类型                    = 本地
 目录数据库分区号                  = 0
 数据库分区号                             = 0db

 

 

运行数据库删除命令 db2 drop dbword

 

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会去系统数据库目录中查找链接的信息找不到,但在建立具备相同别名数据库时(如:新建、还原),因为数据库的物理文件还存在而且在本地数据库中有对应条目,因此出错。

相关文章
相关标签/搜索