在创建数据库时遇到数据库别名已存在的问题时,可以:
1. 首先用 db2 list database directory 命令看在系统数据库目录(System Database Directory)中有没有该数据库,如果有,应该在确定该数据库是没有用的数据库之后用 db2 drop database 数据库名将其删除。
2. 如果没有,再用 db2 list database directory on location 看在本地数据库目录(Local Database Directory)中有没有该数据库,location指定数据库的位置(如Windows下的C: ,Unix下的/home/db2inst1)。如果有,先用 db2 catalog database 数据库名 on location将数据库编目到节点上,再对其进行删除处理。
解决过程:
1.首先用db2 list database directory查看系统数据库目录,为空,说明不在系统数据库目录中。
2.在用db2 list database directory on location(这里是盘符c:,先尝试用localhost和127.0.0.1都不识别),然后发现有sample和source的别名。说明在本地数据库目录中。
3.catalog database source on c:
4.drop database source
5.catalog database sample on c:
6.drop database sample
删除结点的方法是:uncatalog database source,再次用catalog database source on c:命令查询的话,就应该找不到source结点了。
如果恢复以前的数据库,可以先使用 db2 list database directory on d: ,
然后使用利用下面的命令就可以把上面的数据库联上:
db2 catalog db db_name
db2 connect to db_name
如果出现SQL6028N 因为在本地数据库目录中找不到数据库 "UMC_TEST",所以目录数据库失败。
则使用catalog database source on d: