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

http://www.2cto.com/database/201308/237026.html


使用命令删除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 命令成功完成。
 
命令成功完成。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统怎么用命令重启db2数据库全文共4页,当前为第1页。Linux系统怎么用命令重启db2数据库全文共4页,当前为第1页。Linux系统怎么用命令重启db2数据库 Linux系统怎么用命令重启db2数据库全文共4页,当前为第1页。 Linux系统怎么用命令重启db2数据库全文共4页,当前为第1页。 Linux系统中db2数据库是常用数据库之一,我们需要执行启动或关闭操作时候,可以通过命令来实现。下面由店铺为大家整理了Linux系统重启db2数据库命令实例详解,希望对大家有帮助! Linux系统重启db2数据库命令实例详解 DB2重启数据库实例时,有时停止实例会失败,此时需要先确认没有应用链接数据库,然后再关闭数据库实例,并重新启动。 1.查看是否有活动的链接 命令db2 list applications for db db_name 发现有两个活动链接,此时需要将链接进行关闭。 2.关闭连接 命令db2 force application all 3.再执行一次步骤1中的命令,查看链接是否全部关闭。 4.执行停止实例命令 命令db2stop 注意:命令中没有空格 5.执行实例启动命令 命令db2start 6.如果此时,发现连接不了数据库,莫慌,需要激活目标数据库 首先查看是否有活跃的数据库 命令db2 list active databases 如果没有,需要对目标数据库进行激活设置 命令db2 activate database db_name 然后再次使用上一条命令,就可查看到当前已有活跃的数据库了,此时可进行连接并执行数据库操作。 在停止数据库实例失败时,也有一种直接迅速的方法可以停止实例,不过不建议使用,最好还是按照上述的步骤进行。 快速方法 执行命令db2stop force Linux系统怎么用命令重启db2数据库全文共4页,当前为第2页。Linux系统怎么用命令重启db2数据库全文共4页,当前为第2页。Linux系统db2数据库常用命令 Linux系统怎么用命令重启db2数据库全文共4页,当前为第2页。 Linux系统怎么用命令重启db2数据库全文共4页,当前为第2页。 启动数据库: 启动db2服务:db2start 激活数据库实例:db2 activate database 查看激活状态的数据库db2 list active databases 关闭数据库: 失效数据库实例:db2 deactivate database 关闭数据库服务:db2stop 查看数据库db2 list db directory 查看数据库应用:db2 list applications 查看数据库应用和进程号:db2 list applications show detail 查看数据库表空间:db2pd -db -tablespace 查看数据库配置:db2 get db cfg for 连接数据库db2 connect to db2 connect to user[user_name] using [password] 断开数据库连接:db2 connect reset/db2 terminate 创建数据库db2 create db 删除数据库db2 drop database (如果不能删除,尝试断开激活的连接或者重启db2) 列出系统表:db2 list tables for system 列出所有用户表:db2 list tables 列出所有表:db2 list tables for all 列出特定用户表:db2 list tables for schema [user] 复制一张表:db2 create table t1 like t2 显示表结构:db2 describe table tablename 查询表:db2 "select * from table tablename where ..." 执行SQL脚本:db2 -tvf scripts.sql 查看错误代码信息:db2 ? 10054 停止激活的连接:db2 force application all;\db2 force application all;\db2 force application all;\db2stop Linux系统怎么用命令重启db2数据库全文共4页,当前为第3页。Linux系统怎么用命令重启db2数据库全文共4页,当前为第3页。查看死锁: db2 get snapshot for locks on Linux系统怎么用命令重启db2数据库全文共4页,当前为第3页。 Linux系统怎么用命令重启db2数据库全文共4页,当前为第3页。 db2 "select agent_id,tabna

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值