db2資料庫狀態
『壹』 db2資料庫怎麼查看實例
1、 打開命令行窗口
#db2cmd
2、 打開控制中心
#db2cmd db2cc
3、 打開命令編輯器
#db2cmd db2ce
=====操作資料庫命令=====
4、 啟動資料庫實例
#db2start
5、 停止資料庫實例
#db2stop
如果你不能停止資料庫由於激活的連接,在運行db2stop前執行db2 force application all就可以了 /db2stop force
6、 創建資料庫
#db2 create db [dbname]
7、 連接到資料庫
#db2 connect to [dbname] user [username] using [password]
8、 斷開資料庫連接
#db2 connect reset
9、 列出所有資料庫
#db2 list db directory
10、 列出所有激活的資料庫
#db2 list active databases
11、 列出所有資料庫配置
#db2 get db cfg
12、 刪除資料庫
#db2 drop database [dbname]
(執行此操作要小心)
如果不能刪除,斷開所有資料庫連接或者重啟db2
『貳』 DB2資料庫發生死鎖了怎麼辦
先定位一下是哪個程序句柄導致的死鎖。
方法一、查看db2diag.log文件
找到DeadLock or Lock timeout 死鎖或鎖超時信息
db2 force application(句柄ID)
直接結束進程即可。
方法二、DB2快照信息
1、看一下DB2快照信息
db2 get snapshot for locks on sample
可以得到類似信息:
資料庫鎖定快照
資料庫名稱 = SAMPLE
資料庫路徑 = D:\IBM\DB2\NODE0000\SQL00001\
輸入資料庫別名 = SAMPLE
掛起的鎖定 = 8
當前已連接的應用程序 = 2
當前正等待鎖定的代理程序數 = 1
應用程序句柄 = 54
應用程序標識 = *LOCAL.DB2.140304192925
序號 = 00001
應用程序名 = db2bp.exe CONNECT
授權標識 = DB2ADMIN
應用程序狀態 = 鎖定等待
應用程序代碼頁 = 1208
掛起的鎖定 = 4
總計等待時間(毫秒) = 247867
鎖定列表
鎖定名稱 = 0x5359534C564C3031DDECEF2841
鎖定屬性 = 0x00000000
發行版標志 = 0x40000000
鎖定計數 = 1
掛起計數 = 0
鎖定對象名 = 2312
對象類型 = 行
表空間名 = IBMDB2SAMPLEREL
表模式 = DB2ADMIN
表名 = TEST
方式 = IX
查看鎖定的詳細信息:db2 get snapshot for locks for application agentid 1728
----(1728是句柄ID)
3、觀察命令db2 list applications的輸出
查看應用程序的狀態是否有鎖定等待(Lock-wait)狀態出現。
執行命令 list applications for db sample show detail;
4、db2 force application(句柄ID)
直接結束進程即可。
『叄』 如何查詢db2資料庫表是否被鎖
1、首先點擊桌面上的SQL server資料庫。
『肆』 關於DB2資料庫的參數調優技巧
在開始前 請關閉IBM目錄伺服器 將上下文切換到IBM目錄伺服器DB 實例擁有者 一般是ldapdb 用戶 比如
在Unix系統里 輸入
su ldapdb
在Windows系統里 輸入
db cmdset DB INSTANCE=ldapdb
為了調節DB 參數 運行db tunings sh腳本 你可以在這里下載:// sofare ibm /ibmdl/pub/sofare/tivoli_support/misc/Security/AMeB/_am /tuning_guide_scripts tar
或者通過ftp地址
ftp://ftp sofare ibm /sofare/tivoli_support/misc/Security/AMeB/am /tuning_guide_scripts tar
Web頁面需要注冊用戶名和密碼
這個腳本的文件系統擁有者必須是DB 實例擁有者 一般就是ldapdb 用戶 文件系統組應該和實例擁有者相同(一般是dbsysadm) 腳本必須在DB 實例擁有者的上下文中使用
腳本中的ibmdefaultbp和ldapbp參數控制著DB 的緩沖池 db _turnings sh腳本 設置了DB 緩沖池的建議大小 其他一些可選的設置在腳本的注釋里寫明了 IBM目錄伺服器的性能隨著DB 緩沖池的增長而提高 然而在大多數情況下 通過這樣的參數調節方式 你可以預見不超過 %的性能提高
DB 緩沖池是DB 緩存數據表和索引的地方 DB 用戶使用索引來在查詢時迅速找到該獲取哪個錶行項 需要更多信息 請參考IBM Directory Server Tuning Guide
顯示和驗證當前設置
輸入如下命令來顯示當前的DB 參數調節設置的結果
db get database configuration for ldapdb |
egrep DBHEAP|SORTHEAP|MAXLOCKS|MINMIT|UTIL_HEAP_SZ|APPLHEAPSZ
db connect to ldapdb
db select bpname npages pagesize from syscat bufferpools
db terminate
如果某個堆配置參數過低 就將出現一些功能性的問題 輸入如下命令來顯示當前的堆參數設置
db get db cfg for ldapdb | grep HEAP
下面是一個使用了推薦值的多種堆參數的輸出例子顯示
Database heap ( KB) (DBHEAP) =
Utilities heap size ( KB) (UTIL_HEAP_SZ) =
Max appl control heap size ( KB) (APP_CTL_HEAP_SZ) =
Sort list heap ( KB) (SORTHEAP) =
SQL statement heap ( KB) (STMTHEAP) =
Default application heap ( KB) (APPLHEAPSZ) =
Statistics heap size ( KB ) (STAT_HEAP_SZ) =
如果一個堆參數小於最小值 輸入如下命令將其增大到最小值
db update db cfg for ldapdb using parm_name parm_value
這里parm_name是上文輸出中的第三欄的字樣(無括弧) parm_value是最後一欄的值
如果堆參數設置的過高或者過低 IBM的目錄伺服器都會以失效來提示出現了問題 在這種情況下 需要查看諸如IBM Directory Server V (IDS )的cli error文件或者IBM Tivoli Directory Server V (IDS v )的db cli log或者其他一些文件 在IDS v 系統中 該文件預設目錄在Solaris的/var/ldap/和AIX的/tmp中 在IDS v 和後來系統中 Solaris和AIX的預設目錄都是/var/ldap
注意db look能夠在一條命令下提供關於資料庫及其配置的足夠多的信息 例子如下
db look d ldapdb u ldapdb p o output_file
output_file是存儲結果的文件位置
關於IBM目錄伺服器運行的警告
DB 參數調節使用了db terminate 如果當該命令發出 IBM目錄伺服器slapd或ibmslapd進程在運行 它將阻止伺服器的部分功能 所有緩存的搜索看起來反應正常 其他的搜索將會簡單的變為無結果或者出現錯誤信息 恢復功能將會重啟IBM目錄伺服器 因此最好是在調節DB 參數時關閉IBM目錄伺服器
關於緩沖池內存使用的警告
如果任何的緩沖池被設置過高 DB 將會因為缺少足夠內存而無法啟動 如果出現該問題將會有一個核心轉儲的文件 但是通常沒有錯誤信息
在AIX系統里 系統錯誤日誌將會報告一個內存分配失敗 查看這個日誌請輸入
errpt a | more
使用太大的緩沖池大小來恢復一個被分在系統里的資料庫將會導致恢復失敗 查看//publib boulder ibm /infocenter/tivihelp/v r /topic/ ibm itame doc_ /am _perftune #idtrouble來解決這個問題
如果DB 因為緩沖池過大而無法啟動 請重新調節DB 參數
關於MINMIT的警告
lishixin/Article/program/DB2/201311/11229
『伍』 DB2中怎麼查看23502異常錯誤信息
由於資料庫管理器發生了錯誤或者被強制中斷,從而無法接受新的請求,已終止正在處理的所有請求或者已終止所指定的請求。
重新連接至資料庫。
如果此連接仍失敗,請在資料庫管理員的幫助下執行下列故障診斷步驟:
僅限於聯合環境:確定是聯合數據源返回了錯誤還是聯合資料庫伺服器返回了錯誤。
確保客戶機/伺服器配置正確:
確認通信子系統(包括網路電纜、網卡以及 TCP/IP 之類的通信協議)是否已啟動並處於運行狀態。
在使用 TCP/IP 協議的客戶機/伺服器環境中:請對客戶機上的 TCP/IP 服務名稱指定與伺服器上的埠號相同的埠號。
確保資料庫管理器已啟動並處於運行狀態:
確認 DB2 資料庫管理器是否已啟動並處於運行狀態。
在 db2diag 日誌文件中查找有關資料庫管理器進程已中斷或異常終止的證據。
如果資料庫管理器已停止,或者診斷日誌中存在有關任何資料庫管理器代理程序已中斷或異常終止的證據,請重新啟動資料庫管理器。
2
『陸』 DB2表空間已滿,無法訪問,狀態為暫掛,備份資料庫報錯
表空間可能處於離線狀態。嘗試確定底層問題並進行更正。一些問題的
示例包括:未安裝文件系統(可通過安裝文件系統,然後將表空間開關
改變為聯機來修正);已經刪除了表空間文件(可以通過執行復原操作
來修正)。
表空間可能已停頓。使用 LIST TABLESPACES 來檢查表空間的狀態。使
用 QUIESCE RESET OR QUIESCE TERMINATE 來使表空間可用。注意,保
持停頓的用戶標識可能需要執行 QUIESCE REST OR TERMINATE 操作。
應該是有其他進程再跑吧,看下錶空間狀態,如果表空間沒有異常,那就terminate下應該就可以了
『柒』 重裝系統後,如何恢復DB2資料庫
你只需要重新安裝一下db2的安裝程序,保留以前的資料庫的數據文件目錄。然後在命令行下db2=> 執行
catalog db 資料庫名稱 on 原資料庫文件所在磁碟, 這樣就可以把以前的資料庫編目上了。