如何彻底删除DB2中的Database以及DB2文件配置

摘要:
如何完全删除DB2中的数据库和DB2文件配置PostedbyMIBAdminon II-26-2008没有评论。615views首先,我不擅长DB2,因为数据库A尚未完全删除。此时,您可以使用DB2 CATALOG DBA在db2cmd控制台上重新编目数据库A。此目录中的文件用于管理和控制此实例。图2:进入SMS表空间DMS表空间的数据库的内部目录结构的容器类型是文件或设备。

如何彻底删除DB2中的Database以及DB2文件配置

Posted by MIB Admin on 二 - 26 - 2008
615 views

首先我不是专门做DB2的,只是工作中遇到了一些问题并且X文个DB2根本无法跟它沟通,所以对删除DB这个新手问题做一些个人解释。

背景操作(类似)

1、在“配置助手”中选择数据库A点击右键,选择“除去数据库”
2、手工删除D:\DB2\NODE0000下的数据库对应的SQL00003

然后你会发现再也不能建数据库A,原因是数据库A没有彻底删除

这时候你可以在db2cmd控制台用DB2 CATALOG DB A重新编目数据库A,之后你会发现A已经可视但是仍然无法DROP,你需要手动恢复SQL00003目录内容,可以COPY002后改名为003,之后在CMD控制台DB2 DROP DB A, 来删除数据库A,这样你会发现A已经被彻底删除了,因为你已经可以重建它了。

说明:

DB2中数据库和DB2文件两者是分开的,也就是说无论删除实例,还是卸载DB2,都不会影响数据库,想删除数据库,使用drop database。

 

因此你的问题就简单了,在控制台执行db2 list db directory on dbpath, 比如

D:\Program Files\IBM\SQLLIB\BIN>DB2 LIST DB DIRECTORY

你会找到当前已经CATALOG的DB,你也可以使用DB2 CATALOG / UNCATALOG DB dbname 来编目/取消DB。

引用:

我创建的数据库存储在什么地方

从DB2 的架构上来看,DB2 中的数据库的层次位于实例之下。实例实际上就是一个逻辑的数据库管理器,它提供了一个相对独立的运行环境。数据库必须要被创建在某个实例之下,因此,在创 建数据库之前,必须要先创建实例。每当一个新的实例被创建,DB2都会在DB2安装目录sqllib下生成一个目录,其目录名称与实例名称相同,该目录下 的文件用于对该实例进行管理和控制。另外,在使用CREATE DATABSE创建数据库之后,系统还将会生成一系列子目录,具体的目录结构如图1所示。

图1:数据库缺省目录结构

如何彻底删除DB2中的Database以及DB2文件配置第1张

LIST DB DIRECTORY ON <驱动器/路径>

数据库内部结构

不同的数据库中可能有不同的存储设定,因此子目录可能会有些差异。 很多初学者在安装了DB2后都会创建一个样本数据库,我们就以这个数据库为例介绍一下数据库内部的结构,请参见图2。

图2. 数据库内部目录结构

如何彻底删除DB2中的Database以及DB2文件配置第2张走进 SMS 表空间

DMS 表空间的容器类型是文件或者设备,其内部有独特的映射机制来控制存储空间的分配。而 SMS 表空间则不同,表中数据的分配会非常有规律地体现在文件结构中。很容易分辨,由于本文介绍的是 DB2 中不同文件的作用,因此我们会着重探讨 SMS 表空间下数据的分配。下面我们来看一看样本数据库中缺省用户表空间下的文件。

图3:缺省用户表空间下的文件

如何彻底删除DB2中的Database以及DB2文件配置第3张

SELECT TBSPACE, TBSPACEID FROM SYSCAT.TABLESPACES

通过上面语句的查询结果可以得出 USERSPACE1 的 表空间 ID 为 2,然后再通过下面的命令得出 USERSPACE1 中 表名称和表ID的对应关系。

SELECT TABNAME, TABLEID FROM SYSCAT.TABLES WHERE TBSPACEID =2

假 定我们看到样本数据库中表 EMP_PHOTO的 ID 为 8,则文件名称形如 SQL00008.<type> 的文件都与 EMP_PHOTO 相关联。如果文件的扩展名为 .DAT,则说明该文件中包含的是 EMP_PHOTO 表中的常规(REGULAR)数据,也就是除了LONG VARCHAR、LONG VARGRAPHIC、CLOB,BLOB 以及 DBCLOB之外的数据,每个数据行中这类数据的大小不能超过一个数据页;如果文件的扩展名为 .LF,则说明该文件中包含的是表中的 LONG VARCHAR 或者 LONG VARGRAPHIC 数据,由于 EMP_PHOTO 表中不存在这类数据,因此不存在 SQL00008.LF 文件;如果文件的扩展名为 .LB,则说明该文件中包含的是 EMP_PHOTO 表中的 BLOB、CLOB 和 DBCLOB 数据;如果文件的扩展名为 .LBA,则说明该文件中包含的是 EMP_PHOTO 表中 BLOB、CLOB 和 DBCLOB 数据的空间分配信息,该文件与 .LB 文件是成对出现的;如果文件的扩展名为 .INX,则说明该文件中包含的是 EMP_PHOTO 表上建立的索引数据。除此之外,如果创建了多维群集(MDC) 或者对表进行了重组,则还可能会出现其他一些扩展名,我们这里就不再介绍了。

DB2 实例目录中的重要文件

在 前面我们已经提到过,在创建一个实例以后,DB2 还会在 sqllib 目录下生成一个目录,其目录名称与实例名称相同。该目录下包含了很多与控制该实例运行的重要文件。当删除一个实例的时候,DB2 实际上只是删除该目录,而不是真正删除实例中的所有数据。因此重新创建实例后,还可以通过编目命令使原来实例下的数据库重新投入使用。该实例下的文件如图 4 所示:

图4: DB2 实例目录下的文件和目录

如何彻底删除DB2中的Database以及DB2文件配置第4张

  • db2systm 文件db2systm 就是对应实例的数据库管理器配置文件,里面包含着数据库管理器配置参数的值。由于该文件是二进制格式,因此不能使用文本编辑器编辑,而应该使用 GET DBM CFG 以及 UPDATE DBM CFG 命令来察看和修改。
  • db2diag.log 文件db2diag.log 文件是一个文本格式的错误诊断文件,其中记录的信息可以用来判断系统问题的根源。用户可以通过数据库管理器配置参数 DIAGLEVEL 来调整被记录信息的详细程度,也可以通过数据库管理器配置参数 DIAGPATH 来改变该文件的位置。
  • SQLDBDIR 目录这 个目录虽然与我们前面介绍的 SQLDBDIR 目录同名,但里面包含的内容是不一样的。我们先前介绍的 SQLDBDIR 中存储的是本地数据库目录的信息,而这个 SQLDBDIR 目录中存放的是系统数据库目录的信息。在 DB2 中,如果想对一个数据库进行存取,就必须通过编目为其在系统数据库目录中创建相应条目。要想察看系统数据库目录的内容,可以通过下列命令:
    LIST DB DIRECTORY
  • SQLNODIR 目录SQLNODIR 目录中包含的则是另外一种 DB2 目录-节点目录的信息,节点目录中包含了客户端可以存取的所有数据库实例的网络连接信息。要想察看节点目录的内容,可以通过下列命令:
    LIST NODE DIRECTORY

注:如果想要向系统数据库目录和节点数据库目录中添加条目,可以通过CATALOG DB 和 CATALOG NODE 命令;如果想要删除条目,可以使用UNCATALOG DB 和 UNCATALOG NODE 命令。

免责声明:文章转载自《如何彻底删除DB2中的Database以及DB2文件配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何获取项目中XML的路径(学)XtraReport WebService Print 报错下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用phpMyAdmin批量修改Mysql数据表前缀的方法

多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的批量修改数据库中表前缀的方法,适用于修改数据库中相同前缀且数据表较多的情况。 此例中假定修改名为“www_sdck_cn”的数据库中前缀为“p...

php实现文件下载代码一例

php实现文件下载代码 需要用到header函数来发送相关信息给客户端浏览器,同时再结合filesize函数来读取文件大小并进行下载操作。简单的文件下载只需要使用HTML的连接标记<a>,并将属性href的URL值指定为下载的文件即可。 文件下载,只能处理一些浏览器不能默认识别的MIME类型文件,例如当访问book.rar文件时,浏览器并没有直...

PowerDesigner 15 使用技巧

1、  找回PowerDesigner的Palette工具栏 Tools(工具栏) >>  customsize toolbars(自定义工具栏)>> palette(调色板)勾选 2、  批量修改Table中文字的格式 Tools(工具栏) >> 显示设置(Display Preference) >> Ta...

tornado项目

tornado项目之基于领域驱动模型架构设计的京东用户管理后台 本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”。 一、预备知识:1.接口: python中并没有类似java等其它语言中的接口类型,但是python中有抽象类和抽象方法。如果一个抽象类有抽象方法,那么继承它的子类必须实现抽象类的所有方法,因此,我...

MongoDB基础命令及操作

MongoDB:NoSQL数据库 MongoDB中的重要指示点 MongoDB中的三要素 数据库 集合 文档 MongoDB中的数据存储是以Bson的形式存储的,Bson是二进制的json,所以看上去记录的形式类似于json数据 MongoDB中集合中的数据不同于关系型数据库中的数据,MongoDB中文档结构可以不同,因此扩展性非常好 Mong...

beego

            beego使用orm包操作数据库 1、Model的设置 1 //声明一个结构体,用于映射数据库表 2 type Person struct { 3 Id int 4 Name string `orm:"size(100)"` 5 Age int 6 } 2、数据库的设置 RegisterDrive 1 //...