设为首页 收藏本站
查看: 774|回复: 0

[经验分享] 使用命令删除DB2数据库,然后新建

[复制链接]

尚未签到

发表于 2016-11-16 09:18:04 | 显示全部楼层 |阅读模式
我们在创建新的数据库时,经常会碰上数据库别名已经存在的错误,产生这个错误的原因可能有两种:
1. 这个数据库在系统数据库目录中存在。
在控制中心能够看到和 DB2CLP 窗口中使用 LIST DB DIRECTORY 可以看到。
2. 该数据库被除去,而不是被删除
另一个可能,这是由于之前我们在控制中心,使用了除去数据库功能,而不是删除数据库功能(或者在 DB2CLP 窗口中使用“ UNCATALOG DB 数据库名命令),除去数据库只是在逻辑上把数据库的编目信息删除,并没有真实的删除该数据库。只是我们用 LIST DB DIRECTORY 或在控制中心查看的时候,看不到该数据库而已。在我们用这个数据库名创建新的数据库时,就会报 SQL1005N 错。
解决的这个问题的具体的步骤如下:
1.     首先通过在 DB2CLP 窗口中,发出“ DB2 LIST DB DIRECTORY ”命令,查看系统数据库目录中有没有该数据库。如果有,看这个数据库是否还有用,如果没有用,就删除掉该数据库重新创建即可。
2.     如果系统数据库目录下没有该数据库存在,就通过 db2 list database directory on location 查看在本地数据库目录中有没有该数据库,location 指定数据库的位置(在 Windows 下只能是各个盘符,比如 C: D: UNIX 下可以是具体的文件目录),如果有,就先使用 db2 catalog database 数据库名 on location 将数据库 catalog 到节点上,再删除该数据库并重新创建。
下面我们来通过具体的例子来看一下。继续在 DB2CLP 窗口中,发出 LIST DB DIRECTORY 命令,来查看我们目前在系统数据库目录下都有哪些数据库,具体如清单 22
所示:

清单 22. 查看系统数据库目录,都有哪些数据库
C:\>DB2 LIST DB DIRECTORY  系统数据库目录   目录中的条目数 = 7

数据库 1 条目:

数据库别名  = EMR
数据库名称  = EMR
本地数据库目录  = C:
数据库发行版级别  = c.00
注释 =
目录条目类型  = 间接
目录数据库分区号  = 0
备用服务器主机名  =
备用服务器端口号  =

数据库 2 条目:

数据库别名  = DBSAMPL2
数据库名称  = DBSAMPL2
本地数据库目录  = C:
数据库发行版级别  = c.00
注释  =
目录条目类型  = 间接
目录数据库分区号  = 0
备用服务器主机名  =
备用服务器端口号  =

数据库 3 条目:

数据库别名  = ABC
数据库名称 = SAMPLE
本地数据库目录  = C:
数据库发行版级别  = c.00
注释  =
目录条目类型  = 间接
目录数据库分区号  = 0
备用服务器主机名  =
备用服务器端口号  =

数据库 4 条目:

数据库别名 = TEST
数据库名称  = EMR
节点名  = NEW
数据库发行版级别  = c.00
注释  =
目录条目类型  = 远程
目录数据库分区号  = -1
备用服务器主机名 =
备用服务器端口号  =

数据库 5 条目:

数据库别名  = MYABC
数据库名称  = ABC
节点名  = MYREMOTE
数据库发行版级别  = c.00
注释  =
目录条目类型 = 远程
目录数据库分区号  = -1
备用服务器主机名  =
备用服务器端口号  =

数据库 6 条目:

数据库别名  = SAMPLE_1
数据库名称  = SAMPLE_1
本地数据库目录  = C:
数据库发行版级别  = c.00
注释  =
目录条目类型  = 间接
目录数据库分区号  = 0
备用服务器主机名  =
备用服务器端口号  =

数据库 7 条目:

数据库别名  = SAMPLE
数据库名称  = SAMPLE
本地数据库目录 = C:
数据库发行版级别  = c.00
注释  =
目录条目类型  = 间接
目录数据库分区号  = 0
备用服务器主机名  =
备用服务器端口号  =
命令成功完成。我们可以看到,目前在系统数据库目录下有 7 条记录,也就是有 7 个数据库或别名。此时我们在控制中心除去数据库 SAMPLE_1,具体如图 5 所示:

5. 在控制中心除去数据库 SAMPLE_1


此时我们在 DB2CLP 窗口中,发出“ CREATE DB SAMPLE_1 ”命令,会得到“ SQL1005N 数据库别名 "SAMPLE_1" 已存在于本地数据库目录或系统数据库目录中。错误,提示已经有数据库 SAMPLE_1 存在了,具体如清单 24 所示:


清单 24. 创建数据库 SAMPLE_1
C:\> DB2 CREATE DB SAMPLE_1
 SQL1005N  数据库别名 "SAMPLE_1" 已存在于本地数据库目录或系统数据库目录中。 


解决这个问题的办法,就是把原来存在的数据库重新 CATALOG 上,然后再删除掉,而不是除去,这样处理过后,就可以使用这个数据库名创建新的数据库成功了。

下面我们继续在当前 DB2CLP 窗口中,发出“ LIST DB DIRECTORY ON C: ”命令,可以看到数据库 SAMPLE_1 还在本地目录中存在,参照本小节开头的解决方法第二步,需要先 CATALOG 该数据库,再 DROP 掉该数据库,才能重新创建,具体如清单 25 所示:


清单 25. 创建数据库 SAMPLE_1
C:\> db2 list db directory on c:

 c: 上的本地数据库目录   目录中的条目数 = 4

数据库 1 条目:

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

数据库 2 条目:

数据库别名  = DBSAMPL2
数据库名称  = DBSAMPL2
数据库目录  = SQL00004
数据库发行版级别  = c.00
注释  =
目录条目类型  = 本地
目录数据库分区号  = 0
数据库分区号  = 0

数据库 3 条目:

数据库别名  
                 = SAMPLE_1 数据库名称  
                 = SAMPLE_1 数据库目录  
                 = SQL00003 数据库发行版级别  
                 = c.00 注释  
                 = 目录条目类型 = 本地
目录数据库分区号  
                 = 0 数据库分区号  
                 = 0 数据库 4 条目:

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

 C:\> db2 catalog db sample_1
 DB20000I CATALOG DATABASE 命令成功完成。
 DB21056W  直到刷新目录高速缓存之后,目录更改才生效。

 C:\> db2 terminate
 DB20000I TERMINATE 命令成功完成。

 C:\> db2 drop db sample_1
 DB20000I DROP DATABASE 命令成功完成。

 C:\> db2 create db sample_1
 DB20000I CREATE DATABASE 命令成功完成。
 
命令成功完成。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301014-1-1.html 上篇帖子: (转)DB2解决“数据库日志已满”操作 SQLCODE=-964 下篇帖子: DB2数据库性能调整和优化(第2版)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表