`

使用命令删除DB2数据库,然后新建

    博客分类:
  • DB2
 
阅读更多

我们在创建新的数据库时,经常会碰上数据库别名已经存在的错误,产生这个错误的原因可能有两种:

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
命令成功完成。
 
命令成功完成。

分享到:
评论

相关推荐

    Db2_SQL命令大全(完整版)

    ### Db2_SQL命令大全知识点详解 #### 连接数据库 **命令格式:** ...以上是基于提供的文件信息总结的关键知识点,这些命令对于DB2数据库管理员来说非常重要,掌握它们能够帮助更好地管理和优化DB2数据库系统。

    DB2数据库备份.docx

    ### DB2数据库自动备份详解 #### 一、DB2数据库自动备份原理与步骤 DB2是一种广泛使用的数据库管理系统,为了确保数据的安全性和可用性,定期对数据库进行备份是非常重要的。本文将详细介绍如何利用DB2自带的功能...

    db2创建用户以及授予权限1

    在DB2数据库管理系统中,用户管理和权限分配是确保数据安全性和控制访问的重要环节。本文将详细介绍如何在DB2中创建用户并为其授予权限的过程。通过具体实例,帮助读者理解各个步骤和命令的含义。 #### 二、创建...

    DB2常用命令

    - **应用场景**: 当数据库发生故障或数据被意外删除时,使用该命令进行恢复操作。 ### 数据库管理和查询命令 #### 6. 列出所有活动的应用程序 - **命令**: `db2 list application show detail` - **描述**: 显示...

    DB2导出、导入表结构、表数据及数据库安装小结(Windows环境)

    ### DB2导出与导入操作详解 #### 一、DB2导出操作 ##### 1....通过以上步骤,可以顺利完成DB2数据库的导出、导入操作以及数据库的安装与配置。这些操作对于维护数据库的一致性和可用性至关重要。

    db2中有表损坏时最快的恢复方法db2look-move

    最后,使用`db2move`的`import`功能,将之前导出的数据重新加载至新建的数据库中。命令如下: ```bash cddb2move db2move orcl load db2move orcl import -u db2inst1 -p db2inst1 ``` 至此,整个恢复流程完成,...

    DB2开发培训

    DB2开发培训旨在帮助学员掌握DB2数据库的设计、操作和维护技能,包括SQL查询、客户端设置、存储过程的编写与使用,以及数据库对象的管理。 在DB2开发中,SQL(结构化查询语言)扮演着核心角色。SQL主要分为三类:...

    db2的常用命令 常用命令

    根据提供的文件信息,我们可以归纳出一系列与DB2数据库管理相关的常用命令及操作。这些命令涵盖了数据库创建、连接、别名创建、表与视图的操作、触发器与索引的管理等多个方面。下面是针对这些命令的详细解释: ###...

    db2常用命令

    ### DB2常用命令详解 #### 一、建立数据库 **命令:** `CREATE DATABASE DB2_GCB ONG: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32` - **功能描述:** 该命令用于创建一个...

    DB2 DPF分区库搭建手册

    - 使用`chown`和`chmod`命令将数据库目录的所有权赋予DB2用户,并设置适当的访问权限,以便DB2服务能够读写这些目录。 5. **操作系统优化**: - 为了最大化数据库性能,可能需要进行一些操作系统级别的优化,如...

    a5m2数据库工具

    通过a5m2,用户能够方便地管理DB2数据库,进行表的创建、修改、删除,以及数据导入导出等任务,使得DB2的管理变得直观易懂。 SQL Server,微软公司出品的企业级数据库,广泛应用于Windows环境。a5m2对SQL Server的...

    db2命令介绍

    根据提供的文件信息,我们可以梳理出一系列与DB2相关的命令及使用场景。以下是对这些命令的知识点详细介绍: ### DB2 命令介绍 #### 1. db2cmd 这是一个通用命令,用于执行 DB2 数据库中的 SQL 语句或脚本。 ####...

    NC6.5 数据库参考脚本及临时表空间配置.pdf

    总之,本文介绍的内容包括用友NC6.5数据库参考脚本,尤其是涉及到的SQLServer、Oracle和DB2数据库创建、配置及临时表空间的设置。这些脚本对于数据库管理员和开发人员在实际工作中创建、管理数据库和优化数据库性能...

    db2常用句子

    根据提供的文件信息,我们可以归纳出一系列关于IBM DB2数据库管理系统的常用命令与操作知识点。以下是对这些知识点的详细解析: ### 1. 启动DB2实例 **命令**: `#db2start` - **作用**: 用于启动DB2数据库实例。 - ...

    DB2存储过程入门实例

    DB2提供了ALTER PROCEDURE修改存储过程,DROP PROCEDURE删除存储过程,以及SHOW PROCEDURE查看存储过程的系统命令。 总结,DB2存储过程是数据库开发中的重要组成部分,理解和熟练掌握其使用能极大地提高数据库应用...

    oracle与db2的区别.docx

    - **DB2数据库创建:** - 在DB2中,一个实例可以支持多个数据库。 - 每个数据库创建时都会自动生成编目表空间、临时表空间和用户表空间。 - 使用`CREATE DATABASE`命令手动创建数据库,也可以通过DB2 Control ...

Global site tag (gtag.js) - Google Analytics