程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 使用命令刪除DB2數據庫,然後新建

使用命令刪除DB2數據庫,然後新建

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved