使用命令删除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_1C:\> DB2 CREATE DB SAMPLE_1SQL1005N 数据库别名 "SAMPLE_1" 已存在于本地数据库目录或系统数据库目录中。解决这个问题的办法,就是把原来存在的数据库重新 CATALOG 上,然后再“删除”掉,而不是“除去”,这样处理过后,就可以使用这个数据库名创建新的数据库成功了。下面我们继续在当前 DB2CLP 窗口中,发出“ LIST DB DIRECTORY ON C: ”命令,可以看到数据库 SAMPLE_1 还在本地目录中存在,参照本小节开头的解决方法第二步,需要先 CATALOG 该数据库,再 DROP 掉该数据库,才能重新创建,具体如清单 25 所示:清单 25. 创建数据库 SAMPLE_1C:\> 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数据库目录 = SQL000上一个:DB2物化查询表(MQT)刷新机制
下一个:DB2完全卸载(AIX)
- 更多DB2疑问解答:
- sql语句 从DB2移动到其他数据库
- DB2 character类型更新报错
- db2 怎么查看执行的sql语句需要多少系统临时表空间?
- db2数据库的table表里,一money字段中的数据显示为:56000,00 本人想要用sql语句将它修改为56,000,000
- DB2导出表结构,能不能只导出指定的表结构。求大神指教,给出命令哈
- DB2数据库,增加数据表空间容量需要重启数据库吗?
- cognos连接db2,为什么启动不了服务啊, 连接Oracle可以启动服务。。
- PostgreSQL对比DB2
- db2如何查看编写好的存储过程?
- db2数值截取
- 谁知道关于DB2怎么看系统日志,归档日志的位置。并且怎么修改日志呢?
- db2怎样重组表结构?
- 求一本【牛新庄的DB2运维教程】?
- db2 的 SECADM权限 是干什么的
- DB2怎么删除表空间所以数据