互联网服务

使用了别名后,数据库无法删除,帮忙看下

各位好,今天建了个数据库,语句如下:
F:>db2 create database JUSTONE alias JUST using codeset UTF-8 TERRITORY CN

创建成功之后,查看当前存在的数据库:
F:>db2 list db directory
数据库 1 条目:
数据库别名                      = JUST
数据库名称                      = JUSTONE
本地数据库目录                  = E:
数据库发行版级别                = d.00
注释                            =
目录条目类型                    = 间接
目录数据库分区号                = 0
备用服务器主机名                =
备用服务器端口号                =
数据库 2 条目:
数据库别名                      = JUSTONE
数据库名称                      = JUSTONE
本地数据库目录                  = E:
数据库发行版级别                = d.00
注释                            =
目录条目类型                    = 间接
目录数据库分区号                = 0
备用服务器主机名                =
备用服务器端口号                =

这个时候执行
F:>db2 connect to JUSTONE
F:>db2 connect to JUST
都没有问题。

然后我执行了下
F:>db2 drop database JUST

再次查看数据库列表:

F:>db2 list db directory
数据库 1 条目:
数据库别名                      = JUSTONE
数据库名称                      = JUSTONE
本地数据库目录                  = E:
数据库发行版级别                = d.00
注释                            =
目录条目类型                    = 间接
目录数据库分区号                = 0
备用服务器主机名                =
备用服务器端口号                =

然后连接这个JUSTONE数据库连接不上,删除也删除不掉,提示:
F:>db2 connect to JUSTONE
SQL1013N  找不到数据库别名或数据库名称 "JUSTONE"。  SQLSTATE=42705
F:>db2 DROP DATABASE JUSTONE
SQL1013N  找不到数据库别名或数据库名称 "JUSTONE "。  SQLSTATE=42705

请问下是怎么回事呢?
参与10

9同行回答

nevermore_hcxnevermore_hcx软件开发工程师HW
我理解楼主遇到的问题,从使用者的角度来说是没有必要在系统数据库编目中出现两次(数据库名和数据库别名) ...lauyatsao 发表于 2013-1-21 16:00     嗯 理解的很到位  受用了   其他朋友的回答 也很精彩  谢谢各位了...显示全部
我理解楼主遇到的问题,从使用者的角度来说是没有必要在系统数据库编目中出现两次(数据库名和数据库别名) ...
lauyatsao 发表于 2013-1-21 16:00



    嗯 理解的很到位  受用了   其他朋友的回答 也很精彩  谢谢各位了收起
互联网服务 · 2013-01-22
浏览926
nevermore_hcxnevermore_hcx软件开发工程师HW
回复 7# ljbupc     我大概明白你的意思了,你的意思是 list db directory是展示的客户端上编目的数据库目录吗?那如何展示服务端实际的数据库目录呢?显示全部
回复 7# ljbupc


    我大概明白你的意思了,你的意思是 list db directory是展示的客户端上编目的数据库目录吗?
那如何展示服务端实际的数据库目录呢?收起
互联网服务 · 2013-01-22
浏览904
ljbupcljbupc软件开发工程师上海安硕科技
编目是属于客户端的,你删除库是对服务端的操作。编目可以看做一个快捷方式吧。照你那么理解,如果我有多个远程的编目,你本地是没有远程操作其他机器的权限的,我要删除的时候是不是要提示要把编目都删掉才能drop,如果远程编目的机器现在连不上呢?...显示全部
编目是属于客户端的,你删除库是对服务端的操作。
编目可以看做一个快捷方式吧。

照你那么理解,如果我有多个远程的编目,你本地是没有远程操作其他机器的权限的,我要删除的时候是不是要提示要把编目都删掉才能drop,如果远程编目的机器现在连不上呢?收起
互联网服务 · 2013-01-22
浏览901
jlandzpajlandzpa系统运维工程师广州华南资讯科技有限公司
回复 5# nevermore     db2就是这样设计的吧    maybe.显示全部
回复 5# nevermore


    db2就是这样设计的吧
    maybe.收起
系统集成 · 2013-01-21
浏览936
nevermore_hcxnevermore_hcx软件开发工程师HW
回复 4# jlandzpa     嗯 确实是  然后需要手动删除数据库文件但是我想知道下,为啥使用了别名之后,list db directory会出现两个数据库呢。我理解的是,既然是别名,那么这两个名称应该指向同一个数据库,删除一个另一个也就应该自动删除了,为啥不是这样呢?求...显示全部
回复 4# jlandzpa


    嗯 确实是  然后需要手动删除数据库文件

但是我想知道下,为啥使用了别名之后,list db directory会出现两个数据库呢。我理解的是,既然是别名,那么这两个名称应该指向同一个数据库,删除一个另一个也就应该自动删除了,为啥不是这样呢?求指点下收起
互联网服务 · 2013-01-21
浏览911
jlandzpajlandzpa系统运维工程师广州华南资讯科技有限公司
db2 uncatalog db JUSTONE后,db2 list db directory里就没有了显示全部
db2 uncatalog db JUSTONE后,
db2 list db directory里就没有了收起
系统集成 · 2013-01-21
浏览937
nevermore_hcxnevermore_hcx软件开发工程师HW
回复 2# zhangjunpo     哥们,还是不行显示全部
回复 2# zhangjunpo


    哥们,还是不行收起
互联网服务 · 2013-01-21
浏览895
ABCABC数据库运维工程师ABC
db2 uncatalog db JUSTONE显示全部
db2 uncatalog db JUSTONE收起
保险 · 2013-01-21
浏览923
lauyatsaolauyatsao软件开发工程师江苏南京
我理解楼主遇到的问题,从使用者的角度来说是没有必要在系统数据库编目中出现两次(数据库名和数据库别名),只是需要别名的编目即可正常使用了(包括通过别名删除数据库)。这样双编目导致使用中的很多问题,例如删除数据库,无论通过数据库名还是别名都导致系统数据库编目中的残留,另外...显示全部
我理解楼主遇到的问题,从使用者的角度来说是没有必要在系统数据库编目中出现两次(数据库名和数据库别名),只是需要别名的编目即可正常使用了(包括通过别名删除数据库)。这样双编目导致使用中的很多问题,例如删除数据库,无论通过数据库名还是别名都导致系统数据库编目中的残留,另外如果原来有同名数据库的编目,那么数据库的创建就会失败,实际上的操作是没有完全回退,导致系统残留。
变通方法:
既然有系统数据库编目和本地数据库编目的分层和交互,可以充分利用好他们之间的关系。楼主的数据库别名的引进不知是出于什么目的考虑,最方便的是在创建玩数据库后手动取消以数据库名字的系统编目,例如:uncatalog db JUSTONE

至于如何查看本地编目,首先知道数据库创建的主目录(楼主需要知道相应的目录结构以及系统数据库编目和本地数据库编目的区别和联系以及对应的配置文件信息),对于你的案例,list db directory on f show detail即可。收起
互联网服务 · 2013-01-21
浏览913

提问者

nevermore_hcx
软件开发工程师HW

问题状态

  • 发布时间:2013-01-21
  • 关注会员:1 人
  • 问题浏览:5796
  • 最近回答:2013-01-22
  • X社区推广