DB2日常維護手冊_第1頁
DB2日常維護手冊_第2頁
DB2日常維護手冊_第3頁
DB2日常維護手冊_第4頁
DB2日常維護手冊_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、DB2日 常 維 護 手 冊目錄DB2日常維護手冊 -1 -1、 DB2日常維護操作 -1 -1. 檢查管理服務器是否啟動 -1 -2. 檢查DB2實例是否已經啟動 -1 -3. 查看表空間狀態(tài)是否正常 -1 -4. 查看表的狀態(tài)-2 -5. 查看磁盤空間-2 -6. 檢查存儲管理軟件是否正常 -2 -7. 檢查數(shù)據(jù)庫備份是否正常 -2 -8. 檢查歸檔日志是否正確歸檔了 - 3 -9. 查看緩沖池的命中率 -3 -10. 查看當前運行最頻繁的 SQL,其命中率是否正常 -3 -11. 查看當前連接的應用程序,有沒有非法連接 -3 -12. 檢查有沒有死鎖 -3 -13. 對表和索引進行 ru

2、nstats- 3 -14. 檢查表是否需要重組 -4 -15. 對需要重組的表進行重組 -4 -2、 DB2日常維護月操作-4 -1 . 查看DB2日志-4 -2 .檢查備份和日志是否都保存好了 - 4 -3、 DB2日常維護季度操作 -5 -1 .通過快照監(jiān)控器,查看系統(tǒng)性能如何 -5 -2 .數(shù)據(jù)庫補丁級別 -5 -4、 注意事項-5 -1 .不要刪除活動日志文件 -5 -2 . 注意交易日志存儲空間 -5 -3 .按照系統(tǒng)的實際工作量配置日志空間 -5 -4 . 設置正確數(shù)據(jù)庫代碼頁 -6 -5 . 檢查許可證(License) 安裝情況 -6 -6 .創(chuàng)建數(shù)據(jù)庫前調整好系統(tǒng)時間 -6

3、 -7 . 不要隨便執(zhí)行 chown (chmod) -R (UNIX/Linux ) - 6 -8 .歸檔模式設置-6 -5、 附:以脫機方式重組表 -6 -6、 附:使用 CLP捕獲數(shù)據(jù)庫運行狀況快照 -7 -7、 附:IBM DB2常用命令-8 -Word資料DB2日常維護手冊DB2日常維護操作1.檢查管理服務器是否啟動用ps命令查看是否有dasusrl后臺進程# ps -ef | dasusrl請確保管理服務器已經啟動,如果沒有啟動,則按以下步驟啟動管理服務器:以管理服務器用戶(UNIX默認是DASUSR1)登錄發(fā)出 db2admin start 命令如果是HA環(huán)境,則要保證在腳本中正

4、確配置了啟動命令2 .檢查DB2實例是否已經啟動用ps命令查看是否有db2sysc后臺進程# ps -ef | db2sysc也可以以DB2實例所有者登錄,通過發(fā)出db2start命令來確保啟動了實例(如果實例已經啟動,則會告知 SQL1026N 數(shù)據(jù)庫管理器已激活;否則,將把實例啟動起來)3 .查看表空間狀態(tài)是否正常以db2實例所有者登錄#db2 list tablespaces show detail/在單分區(qū)上查看表空間的狀態(tài),正常返回0x0000# db2_all list tablespaces show detail /在所有分區(qū)上查看表空間的狀態(tài)可以使用LIST TABLESPA

5、CES命令確定連接數(shù)據(jù)庫中表空間的當前狀態(tài),可以使用SHOW DETAIL選項查看表空間的詳細信息比如,我們連上SAMPLE數(shù)據(jù)庫,執(zhí)行l(wèi)isttablespaces show detail ,可以看到狀態(tài)返回值是 0x0000,此時,使用 db2tbst可以查看狀 態(tài)編號對于的狀態(tài)含義,具體語法如下:db2tbsttablespace state> 可以查看編號所代表的狀態(tài)db2tbst命令接收十六進制的狀態(tài)值,并返回相應的表空間狀態(tài)。例如,命令db2tbst 0x0008 返回State = Load Pending。而該十六進制的狀態(tài)值反過來又是LIST TABLESPACES命令

6、輸出的組成部分。表空間的外部可見狀態(tài)是由單個狀態(tài)值的十六進制總和構成的。例如,如果表空間的狀態(tài)是Backup Pending和Load in Progress ,那么所返回的十六進制值就是0x20020 ( 0x00020 + 0x20000 )4 .查看表的狀態(tài)查詢系統(tǒng)目錄視圖以獲得關于數(shù)據(jù)庫的有用信息。例如,下面的語句使用NOT LIKE斷言,返回在SYSCAT.TABLES中有項的所有用戶定義的表的名稱,以及每個表的列數(shù)和表的狀態(tài)(N = 正常;C =待審核(check pending )#db2 select tabname, colcount, status FROM syscat.

7、tables WHERE tabschema NOT LIKE 'SYS%' ORDER BY tabname也可以使用load query命令查看單個表的斗危態(tài),比如對表TEST1,我們可以發(fā)出如下命令:#db2 load query table test15 .查看磁盤空間查看數(shù)據(jù)庫活動日志目錄是否已滿,活動日志目錄可以使用get db cfg查看,注意一定不要手工刪除活動日志#df -k查看SMS表空間對應的容器目錄空間是否滿了#df -k查看DMS表空間中是否還有可用頁#db2 list tablespaces show detail/在單分區(qū)上查看表空間的是否還有可用

8、頁# db2_all list tablespaces show detail/在所有分區(qū)上查看表空間是否還有可用頁6 .檢查存儲管理軟件是否正常請檢查TSM或其他存儲管理軟件是否正常,以及磁帶機是否運行正常。7 .檢查數(shù)據(jù)庫備份是否正常請查看TSM或第三方存儲管理軟件,看備份映像文件是否完整的保存到了磁帶機上了,想在DB2上查看備份情況,可以使用LIST命令# db2 list history backup all for數(shù)據(jù)庫名8 .檢查歸檔日志是否正確歸檔了請確?;顒尤罩灸夸浵聸]有的日志文件都已經正確歸檔到了帶機上僮看TSM或第三方存儲管理軟件)。查看活動目錄里的日志文件:#ls -l9

9、 .查看緩沖池的命中率# db2 get snapshot for bufferpools on dbname查看緩沖池的命中率,看其是否低于95% (命中率越高越好)10 .查看當前運行最頻繁的SQL,其命中率是否正常# db2 get snapshot for bufferpools on dbname > log.txt用grep命令查看"Number of executions"執(zhí)行次數(shù)最頻繁的語句,看其命中率是否正常。比如:grep -n " Number of executions" snap.out | grep -v "=

10、 0" | sort -k 5,5rn | more11 .查看當前連接的應用程序,有沒有非法連接#db2 list applications show detail看這些連接的情況,看有沒有不合適的IP連上來,或者不被允許的第三方工具連上來,比如一些第三方工具連上來會對表進行鎖定,影響業(yè)務系統(tǒng)正常運行,這個時候可以用 FORCEAPPLICATIONS (應用程序句柄)停下來。12. 檢查有沒有死鎖# db2 get snapshot for all on 數(shù)據(jù)庫名 > log.txt用grep命令查看輸出的文件中是否有死鎖的記錄,比如grep -n "Deadlo

11、cks detected" log.txt | grep -v "= 0" | more13. 對表和索引進行runstats#db2 runstats on table tablename and index allshell腳本自動運行。對系統(tǒng)表以及變化比較頻繁的表運行統(tǒng)計信息,建議寫成14. 檢查表是否需要重組使用REORGCHK命令,通過統(tǒng)計數(shù)據(jù)檢查表是否需要重組,語法如下:REORGCHK UPDATE | CURRENT STATISTICS ON TABLE SYSTEM| TABLE USER | TABLE ALL | TABLE table_n

12、ame | SCHEMA schema_nameUPDATE STATISTICS更新表的統(tǒng)計數(shù)據(jù),根據(jù)該統(tǒng)計數(shù)據(jù)判斷是否需要重組表CURRENT STATISTICS根據(jù)當前表統(tǒng)計數(shù)據(jù)判斷是否需要重組表TABLE table_name :對單個表進行分析TABLE ALL.:對數(shù)據(jù)庫所有的表進行分析TABLE SYSTEM對系統(tǒng)表進行分析TABLE USER :對當前用戶模式下的所有表進行分析#db2 reorgchk update statistics on table all15. 對需要重組的表進行重組#db2 reorg table 表名/通過重構行來消除"碎片"

13、數(shù)據(jù)#db2 reorg indexes all for table 表名 / 只重組索引比如:reorg table index by_id將根據(jù)索引by_id,如果不加INDEX選項將重組表和所有的索引:reorg table index by_id use tempspacel使用指定的臨時表空間重組表表重組完成后需要進行RUNSTATSo另外,記住在分區(qū)數(shù)據(jù)庫環(huán)境中,如果想在所有節(jié)點運行命令,需要使用 db2_all命令。二、DB2日常維護月操作1 .查看DB2日志請至少每月查看一次 db2diag.log (在DB2安裝目錄下可搜索

14、該日志文件),看其中是 否有異常。2 .檢查備份和日志是否都保存好了通過TSM或第三方存儲管理軟件,查看備份和歸檔日志是否都保存好了,在數(shù)據(jù)庫級別查 看備份,可以使用:# db2 list history backup all for dbname三、DB2日常維護季度操作1 .通過快照監(jiān)控器,查看系統(tǒng)性能如何通過快照監(jiān)控器,抓取數(shù)據(jù)庫的信息,分析數(shù)據(jù)庫性能是否合理:# db2 get snapshot for all on dbname > log.txt2 .數(shù)據(jù)庫補丁級別# db2level四、注意事項1 .不要刪除活動日志文件DB2的活動日志文件不能被刪除。一旦DB2的活動日志文

15、件被刪除, 或者所在的存儲設備出現(xiàn)問題,則不可避免地造成DB2數(shù)據(jù)庫系統(tǒng)宕機。2 .注意交易日志存儲空間在歸檔日志模式下,如果沒有使用自動歸檔方式,則存儲的日志文件會不斷增多,有可能造成日志所在的文件系統(tǒng)空間滿。當這種情況發(fā)生時,會根據(jù)參數(shù)BLK_LOG_DSK_FUL的配置而有不同的現(xiàn)象: 1)如果該參數(shù)啟用,則 DB2數(shù)據(jù)庫可繼續(xù)讀操作,但是寫操作會掛起 2)如果該參數(shù)沒有啟用,則 DB2數(shù)據(jù)庫會停止工作 兩種情況下,都需要到日志所在的文件系統(tǒng)添加了空間才恢復正常。3 .按照系統(tǒng)的實際工作量配置日志空間DB2數(shù)據(jù)庫通過日志文件維護數(shù)據(jù)的完整性和一致性。DB2數(shù)據(jù)庫的日志空間可通過如下公式計

16、算: 日志空間=(主日志文件 +二級日志文件)*日志文件尺寸其中:1)主日志文件由參數(shù)2)二級日志文件由參數(shù)3)日志文件尺寸由參數(shù)LOGPRIMARY 控制,LOGSECOND 控制LOGFILSIZ 控制4) LOGPRIMARY + LOGSECOND < 256 (不同的 DB2版本略有不同,請參看相同版本的 DB2手冊確認)。4 .設置正確數(shù)據(jù)庫代碼頁由于數(shù)據(jù)庫的代碼頁在數(shù)據(jù)庫創(chuàng)建之后是無法修改的,所以在創(chuàng)建數(shù)據(jù)庫時一定要選擇正確的代碼頁。錯誤的數(shù)據(jù)庫代碼頁會造成JDBC/ODBC訪問時中文字段被截斷(包括控制中心),這種情況需要重建數(shù)據(jù)庫以修改數(shù)據(jù)庫代碼頁。從全局規(guī)劃來說,如果

17、應用需要訪問多個數(shù)據(jù)庫,那么這多個數(shù)據(jù)庫的代碼頁應該是一 致的。5 .檢查許可證(License )安裝情況許可證過期會造成不必要的服務中斷,所以在DB2安裝完畢后,建議檢察許可的安裝情況。6 .創(chuàng)建數(shù)據(jù)庫前調整好系統(tǒng)時間在數(shù)據(jù)庫創(chuàng)建好之后,調整系統(tǒng)時間會造成數(shù)據(jù)庫部時間戳的異常。數(shù)據(jù)庫中一些對象和時間相關,一旦時間不準確要調整需要很小心。錯誤的時間調整可能會造成很多問題,如:1)某些對象失效,例如:SQL0440N,找不到具有兼容自變量的類型為“<例程類型 >”的名為<例程名 >”的已授權 例程 2)數(shù)據(jù)庫日志邏輯錯誤 -> 宕機 3) 常見錯誤勺調整時間,未調

18、整時區(qū)7 .不要隨便執(zhí)行 chown (chmod)-R (UNIX/Linux )在實例目錄下 chown (chmod) -R 會造成 1)在數(shù)據(jù)庫服務器上 db2 connect to < dbname >能連接上數(shù)據(jù)庫 2) db2 connect to < dbname > user . using 連接不上8 .歸檔模式設置在歸檔日志模式下使用 LOAD記得力口 NONRECOVERABLE參數(shù)。五、附:以脫機方式重組表以脫機方式重組表是整理表碎片的最快方法。重組可減少表所需的空間量并提高數(shù)據(jù)訪問和查詢性能。必須具有 SYSADM、 SYSCTRL SYSM

19、AINT或 DBADM權限,或者必須具有對表的 CONTROL權限才能重組表。必須具有數(shù)據(jù)庫連接才能重組表。標識需要重組的表之后,可以對這些表運行REORG實用程序,并且可以選擇對在這些表上定義的任何索引運行該實用程序。1. 要使用 CLP重組表,請發(fā)出REORG TABLE命令:db2 reorg table test.employee要使用臨時表空間 mytemp重組表,請輸入:db2 reorg table test.employee use mytemp要重組表并卞據(jù)索引 myindex對行進行重新排序,請輸入:db2 reorg table test.employee index m

20、yindex2. 要使用SQL調用語句重組表,請使用 ADMIN_CMD過程發(fā)出 REORG TABLE命令:call sysproc.admin_cmd ('reorg table employee index myindex')3. 要使用 DB2管理 API重組表,請使用 db2REORG API。在重組表之后,應收集有關表的統(tǒng)計信息,以便優(yōu)化器具有最準確的數(shù)據(jù)來評估查詢訪問方案。六、附:使用CLP捕獲數(shù)據(jù)庫運行狀況快照可從CLP使用GET HEALTH SNAPSHOT命令來捕獲運行狀況快照。該命令語法支持 檢索運行狀況監(jiān)視器監(jiān)視的不同對象類型的運行狀況快照信息。先決條

21、件必須具有實例連接才能捕獲運行狀況快照。如果沒有實例連接,則創(chuàng)建缺省實例連接。要獲取遠程實例的快照,必須先連接至該實例。過程要使用CLP捕獲數(shù)據(jù)庫運行狀況快照1 .從 CLP發(fā)出帶有期望參數(shù)的GET HEALTH SNAPSHOT命令。在以下示例中,將在啟動數(shù)據(jù)庫管理器之后立即捕獲數(shù)據(jù)庫管理器級別運行狀況快照。db2 get health snapshot for dbm2 .對于分區(qū)數(shù)據(jù)庫系統(tǒng),可為特定分區(qū)捕獲專門的數(shù)據(jù)庫快照,或者為所有分區(qū)捕獲全局的數(shù)據(jù)庫快照。要對特定分區(qū)(如分區(qū)號2)上的數(shù)據(jù)庫捕獲運行狀況快照,請發(fā)出以下命令:db2 get health snapshot for db

22、 on dbname at dbpartitionnum 2要對所有分區(qū)上的所有應用程序捕獲數(shù)據(jù)庫快照,請發(fā)出以下命令:db2 get health snapshot for db on dbname global以下命令捕獲的運行狀況快照帶有附加詳細信息,包括公式、附加信息和運行狀況指示器歷史記錄:db2 get health snapshot for db on dbname show detail3 .對于基于集合狀態(tài)的運行狀況指示器,可對所有集合對象捕獲數(shù)據(jù)庫快照,而不考慮這些對象的狀態(tài)。常規(guī) GET HEALTH SNAPSHOT FOR DB命令返回所有集合對象,這些對象 需要針對

23、所有基于集合狀態(tài)的運行狀況指示器的警報。要對列示了所有集合對象的數(shù)據(jù)庫捕獲運行狀況快照,請發(fā)出以下命令:db2 get health snapshot for db on dbname with full collection七、附:IBM DB2常用命令命令行窗口1. #打開命令行窗口2. db2cmd3. #打開控制中心4. db2cmddb2cc5. #打開命令編輯器6. db2cmddb2ce操作數(shù)據(jù)庫命令1. #啟動數(shù)據(jù)庫實例2. db2start3. #停止數(shù)據(jù)庫實例4. db2stop5. 如果你不能停止數(shù)據(jù)庫由于激活的連接,在運行 db2stop前執(zhí)行 db2 force ap

24、plication all 就可以了6. #創(chuàng)建數(shù)據(jù)庫7. db2 create db dbname8. #連接到數(shù)據(jù)庫9. db2 connect to dbname user username using password10. #斷開數(shù)據(jù)庫連接11. db2connect reset12. #列出所有數(shù)據(jù)庫13. db2list db directory14. #列出所有激活的數(shù)據(jù)庫15. db2list active databases16. #列出所有數(shù)據(jù)庫配置17. db2get db cfg18. #刪除數(shù)據(jù)庫19. db2 drop database dbname操作數(shù)據(jù)表命令

25、1. #列出所有用戶表2. db2listtables3. #列出所有系統(tǒng)表4. db2listtablesfor system5. #列出所有表6. db2list tables7. #列出系統(tǒng)表8. db2list tables9. #列出用戶表10. db2list tables11. #列出特定用戶表12. db2list tablesfor allfor systemfor userfor schema userdb2 bind c:dfplus.bndWord資料13.14. #創(chuàng)建一個與數(shù)據(jù)庫中某個表(t2)結構相同的新表(t1)15. db2 create table t1 l

26、ike t216.17. #查詢表18. db2 "select * from table name where ."19. #顯示表結構20. db2 describe table tablename21. #修改列set datatype22. db2 alter table tablename alter column columname varchar( 24)腳本文件操作命令1. #執(zhí)行腳本文件2. db2 -tvf scripts.sql幫助命令1. #查看命令幫助2. db2 ? db2start3. #查看錯誤碼信息4. db2 ? 22001DB2 常用命

27、令 II1 .啟動數(shù)據(jù)庫 db2start2 . 停止數(shù)據(jù)庫 db2stop3 .連接數(shù)據(jù)庫db2 connect to o_yd userdb2 using pwd4 .讀數(shù)據(jù)庫管理程序配置db2 getdbm cfg5 .寫數(shù)據(jù)庫管理程序配置db2updatedbmcfgusing參數(shù)名參數(shù)值6 .讀數(shù)據(jù)庫的配置db2connecttoo_yduser db2usingpwddb2get dbcfgforo_yd7 .寫數(shù)據(jù)庫的配置db2connecttoo_yduserdb2usingpwddb2 update db cfg for o_yd using 參數(shù)名參數(shù)值8 .關閉所有應用連

28、接db2force applicationalldb2force applicationID1,ID2,IdnMODE ASYNC(db2 list application for db o_yd show detail)9 .備份數(shù)據(jù)庫db2 force application alldb2backupdb o_yd to d:(db2 initialize tape on .tape0)(db2rewindtape on.tape0)db2 backupdbo_ydto.tape010 .恢復數(shù)據(jù)庫db2 restoredbo_ydfromd: to d:db2 restore11.綁定存

29、儲過程dbo_ydfrom.tape0 to ddb2 connect to o_yd user db2 using pwd拷貝存儲過程到服務器上的C:sqllibfunction目錄中12 .整理表db2connectto o_yduserdb2 usingpwddb2reorgtable ydddb2runstatson tableyddwithdistributionandindexes all13 .導出表數(shù)據(jù)db2export toc:sw.txtofdelselect*fromdftzdb2 export to c:sw.ixf of ixf select * from dftz1

30、4 .導入表數(shù)據(jù)db2importfrom c:sw.txt of del insert intoylbx.czyxxdb2nsertimport to into dftzc:sw.txtofdelcommitcount5000 messages c:dftz.msgdb2 import c:dftz.msgtoc:dftz.ixfinsert intoof ixf dftzcommitcount5000 messagesdb2insertimport to into dftzc:dftz.ixfofixfcommitcount5000db2 intoimport dftztoc:dftz.ixfofixfcommitcount5000 insert_updatedb2 intoimport dftztoc:dftz.ixfofixfcommitcount5000 replacedb2IXF)importtoc:dftz.ixfofixf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論