數據庫培訓課件_第1頁
數據庫培訓課件_第2頁
數據庫培訓課件_第3頁
數據庫培訓課件_第4頁
數據庫培訓課件_第5頁
已閱讀5頁,還剩103頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

開始億陽信通股份有限公司數據庫培訓DB組萬瑾開始億陽信通股份有限公司數據庫培訓DB組1主要內容主要內容數據庫系統(tǒng)維護WNMSDB系統(tǒng)運行現(xiàn)場維護原則與流程主要內容主要內容主要內容數據庫系統(tǒng)維護主要內容2數據庫系統(tǒng)維護數據庫系統(tǒng)維護簡要系統(tǒng)維護系統(tǒng)檢查參數設置SQL語句及優(yōu)化經驗介紹數據庫系統(tǒng)維護數據庫系統(tǒng)維護簡要系統(tǒng)維護3環(huán)境變量和配置文件簡單系統(tǒng)維護主要環(huán)境變量和配置文件環(huán)境變量:

INFORMIXDIR /opt/informix INFORMIXSERVER nmserver2 LD_LIBRARY_PATH $INFORMIXDIR/lib ONCONFIG onconfig服務器表文件$INFORMIXDIR/etc/sqlhostsnmserver onipcshm 8001nmserver2 ontlitcp 8002參數文件etc/onconfig環(huán)境變量和配置文件簡單系統(tǒng)維護主要環(huán)境變量和配置文4數據庫啟停(1)簡單系統(tǒng)維護數據庫啟停(1)1.onmode-k2.oninit(-v)3.onmode–m4.onmode–s(u)5.oninit-s6.onmode–k(y)OnlineOfflineQuiescent123456數據庫啟停(1)簡單系統(tǒng)維護數據庫啟停(1)1.5數據庫啟停(2)簡單系統(tǒng)維護數據庫啟停(2)oninitoninit–vlog文件:$INFORMIXDIR/online.log失敗常見原因:Shm分配錯誤數據庫設備錯誤環(huán)境變量或配置文件錯誤處理臨時表空間錯誤數據庫啟停(2)簡單系統(tǒng)維護數據庫啟停(2)oni6狀態(tài)檢查簡單系統(tǒng)維護狀態(tài)檢查onstat一般: –空間: –d鎖: -k日志: -l用戶: -u事務: -xIO: -giov -giofSQL: -gsql……狀態(tài)檢查簡單系統(tǒng)維護狀態(tài)檢查onstat7物理檢查簡單系統(tǒng)維護物理檢查oncheck數據庫: –cc索引: –cI數據: -cD……物理檢查簡單系統(tǒng)維護物理檢查oncheck8結構腳本簡單系統(tǒng)維護結構腳本dbschema

從數據庫中導出數據庫對象的腳本,如: dbschema–d<dbname>-t<tablename><filename> dbschema–d<dbname>-f<procname><filename>

dbaccess

運行腳本: dbaccess<dbname><sqlfile.sql> dbaccess<dbname>-<<! SQLStatement !結構腳本簡單系統(tǒng)維護結構腳本dbschema9數據操縱簡單系統(tǒng)維護數據操縱表級數據出數據庫: UNLOADTO‘sqlfile.sql’SELECT*FROMTABLENAME;入數據庫: LOADFROM‘sqlfile.sql’INSERTINTOTABLENAME;數據庫級數據拷貝出數據的結構和數據: dbexport拷貝入數據庫的結構和數據: dbimport數據操縱簡單系統(tǒng)維護數據操縱表級數據10空間管理(1)簡單系統(tǒng)維護空間管理(1)dbspace操作系統(tǒng)文件原始設備盤區(qū)chunk數據庫對象(表、索引、存儲過程等)dbspacen:nn:ndbobjects空間管理(1)簡單系統(tǒng)維護空間管理(1)dbspa11空間管理(2)簡單系統(tǒng)維護空間管理(2)創(chuàng)建數據庫或表在某個DBspace上createdatabase<dbname>in<dbspacename>createtable<tabname>(…)…in<dbspacename>創(chuàng)建DBspaceonspaces–a–cdbspace–p…給DBspace增加空間onspaces–adbspace–p…查看空間利用狀態(tài)onstat-d空間管理(2)簡單系統(tǒng)維護空間管理(2)創(chuàng)建數據庫12常用命令列表簡單系統(tǒng)維護常用命令列表數據庫服務器:oninit數據操縱:dbaccess結構導出:dbschema狀態(tài)檢查:onstat數據庫狀態(tài)改變:onmode數據庫參數:onmonitorinformix查錯:finderr數據庫空間操作:onspaces常用命令列表簡單系統(tǒng)維護常用命令列表數據庫服務器:13數據庫狀態(tài)查看(1)系統(tǒng)檢查數據庫狀態(tài)查看(1)onstat– InformixDynamicServerVersion7.31.UC2A--On-Line--Up5days02:19:30--480320Kbytesonstat–gsql Sess SQL Current Iso Lock SQLErr ISAMErr F.E.Vers Id Stmttype Database Lv lMode 15891 SELECT cookdb2 DR NotWait 0 0 9.23 15888 SELECT cookdb2 DR NotWait 0 0 9.23onstat–gsql(ses)<sessid>

進一步查看某一進程的詳細信息onstat–u 查看進程占用鎖的個數以及此進程對數據的讀寫量數據庫狀態(tài)查看(1)系統(tǒng)檢查數據庫狀態(tài)查看(1)onstat14數據庫狀態(tài)查看(2)系統(tǒng)檢查數據庫狀態(tài)查看(2)onstat–k 查看鎖的信息onstat–l 查看物理和邏輯日志狀態(tài)onstat–p 重點查看:Reads%cached應盡量保證在95%以上,Writes%cached保證在85%以上。onstat–gseg

查看數據庫系統(tǒng)占用共享內存的情況,應該保證少于3塊的共享內存區(qū)域占用。onstat–giof 查看各chunk文件的讀寫量和讀寫率數據庫狀態(tài)查看(2)系統(tǒng)檢查數據庫狀態(tài)查看(2)onstat15數據庫狀態(tài)查看(3)系統(tǒng)檢查數據庫狀態(tài)查看(3)onstat–d

Dbspacesaddressnumberflagsnchunksfchunkflagsownername253c61501111Ninformixrootdbs253c71002200121NTinformixtpmdbs1253c7700101105NinformixtmndbsChunksaddresschk/dbsoffsetsizefreebpagesflagspathname253c62101/10500000498659PO-/inf_disk/rootchk253c63e02/20250001505PO-/inf_disk/tmpchk1.chk253c6d8013/10010000007PO-/inf_disk/tmnchk2.chk253c6e6014/10010000002PO-/inf_disk/tmnchk3.chk數據庫狀態(tài)查看(3)系統(tǒng)檢查數據庫狀態(tài)查看(3)onstat16數據庫物理檢查系統(tǒng)檢查數據庫物理檢查oncheck-cc 數據庫目錄結構檢查:oncheck–cc<database>oncheck–cI 數據庫索引結構檢查:oncheck–cI<database>:<tablename><#indexname>oncheck–cD 數據庫數據結構檢查:oncheck–cD<dbname>:<tablename>oncheck–ce extent空間檢查:oncheck-ceoncheck–p 生成檢查的報告而不進行修復數據庫物理檢查系統(tǒng)檢查數據庫物理檢查oncheck-cc17操作系統(tǒng)檢查系統(tǒng)檢查操作系統(tǒng)檢查df-k

查看各文件系統(tǒng)的使用情況ps-ef

查看操作系統(tǒng)正在運行的進程情況vmstat

查看操作系統(tǒng)的內存使用情況iostat

查看操作系統(tǒng)的磁盤使用情況操作系統(tǒng)檢查系統(tǒng)檢查操作系統(tǒng)檢查df-k18參數設置參數設置BUFFERS

此參數指定Informix占用共享內存的大小。通常,Informix推薦此參數設置為物理內存的20%~25%

NUMCPUVPS

此參數指定CPU虛處理器個數(virtualprocessors),在多CPU系統(tǒng)上,指定NUMCPUVPS不能超過CPU的個數(CPU-1)LRUS

表示總BUFFERS可分成多少個隊列,LRU隊列將緩沖區(qū)分成修改和未用兩個部分,LRUS越多,就能更好地支持大量用戶,減少bufwaits。 Informix推薦LRUS的計算公式為: LRUS=max(4,(no.ofcpuVPs))CLEANERS

定義清理修改緩沖區(qū)地Informix線程數,建議CLEANERS值等于LRU數,如果指定較小值,校驗時間可能大大增加參數設置參數設置BUFFERS19參數設置參數設置LOGSIZE

Informix提供的LOGSIZE的范圍為: 200~(ROOTSIZE-PHYSFILE-512-(63*pagesize/1024))/LOGFILES單位為K。LOGBUFFER

此參數指定共享內存區(qū)中三個邏輯日志緩存的大小,Informix建議設置為pagesize的倍數(SunSolaris系統(tǒng)的pagesize為2K)如16K、32K,對于高負荷的系統(tǒng)可設置為64K

PDQPRIORITY

控制使用并行查詢資源的參數,可有效地提高大數據量插入的效率……參數設置參數設置LOGSIZE20基本SQL語句SQL語句及優(yōu)化基本SQL語句CREATESELECTUPDATEDELETE……基本SQL語句SQL語句及優(yōu)化基本SQL語句21優(yōu)化原則SQL語句及優(yōu)化優(yōu)化原則提高where子句的選擇性updatestatistics統(tǒng)計更新提高索引的性能減小連接和排序的影響問題速度快的大表查詢一定是使用了索引的查詢表上建立的索引不一定會被使用到小表上沒有必要建立索引最好是看查詢計劃確定優(yōu)化結果優(yōu)化原則SQL語句及優(yōu)化優(yōu)化原則22提高WHERE子句的選擇性SQL語句及優(yōu)化提高WHERE子句的選擇性避免復雜的正則表達式

wherenamenotlike“z%”避免子串匹配

wherename[4,6]>“60”避免列計算

wherelevel+30=3400 whereweekday(some_date)=0縮小選擇范圍

whereobject_class=101提高WHERE子句的選擇性SQL語句及優(yōu)化提高WHERE子句23UPDATESTATISTICSSQL語句及優(yōu)化UPDATESTATISTICS對全庫對象

updatestatistics對某個數據庫對象 updatestatisticsfortabletablename; updatestatisticsforprocedureprocname;指定統(tǒng)計更新的級別 LOWmode,MEDIUMmode,HIGHmode定期運行 /opt/WNMS31DB/task/ updstat_cm updstat_fm updstat_olog updstat_pmUPDATESTATISTICSSQL語句及優(yōu)化UPDAT24提高索引的性能SQL語句及優(yōu)化提高索引的性能使用組合索引如索引在table(a,b,c)可以使用索引:wherea<0wherea<=90anda>=2wherea=0andb>80wherea=0andb=20andc>=40不可以使用索引:whereb=10wherec=330wherea>0andb=10使用聚簇索引定時檢查和重建索引提高索引的性能SQL語句及優(yōu)化提高索引的性能使用組合索引25減小連接和排序的影響SQL語句及優(yōu)化減小連接和排序的影響避免或簡化排序操作

表關聯(lián)個數最好不要超過四個使用并行排序

設置PDQPRIORITY參數使用臨時表減小排序范圍減小連接和排序的影響SQL語句及優(yōu)化減小連接和排序的影響避免26查看數據庫鎖方法經驗介紹查看數據庫鎖方法

查找系統(tǒng)表被鎖首先通過以下語句找到systables表的partnum(取十六進制); selecttabname,hex(partnum)

fromsystables wheretabname='systables';使用onstat-k查找tblsnum=hex(partnum)且rowid=0的Lock顯示(如果存在的話),取得其owner值(十六進制);使用上面取到的owner值用onstat-u獲取sessid使用onstat-gsessessid查看實際鎖表的語句其他表方法相同分片表的partnum需要從sysfragments系統(tǒng)表中的partn中取出查看數據庫鎖方法經驗介紹查看數據庫鎖方法查找系統(tǒng)表被鎖27系統(tǒng)長事務經驗介紹查找造成長事務的SQL

查找當前長事務的報告日志得到Transactionid,這里是:d69452 grep'AbortingLongTransaction:'online.log|tail-1 13:03:46AbortingLongTransaction:tx0xd69452dcusername:informixuid:1001根據第一步的Transactionid察看具體的事務,得到threadsid,這里是:d91de2d8 onstat-x|grepd69452 d69452dcAd91de2d820COMMIT0根據第二步得threadsid察看具體的線程信息,得到sessionid,這里是:36988 onstat-u|grep91de2d8 d91de2d8Y--P36988informix2a06051800155720根據第三步得到的sessionid來查看具體的SQL語句 onstat-gses36988或用onstat-gsql查看所有SQL進程,SQLErr為213的那個進程,實際就是引起長事務的進程系統(tǒng)長事務經驗介紹查找造成長事務的SQL查找當前長事務的報28檢查大表和對大表的維護經驗介紹檢查大表和對大表的維護

先做updatestatistics(重要);執(zhí)行語句: selecttabname,nrows,rowsize,fextsize,nextsize fromsystablesorderbynrowsdesc找到較大的表的表名,并檢查其fextsize,nextsize的值如果記錄數很多(百萬級以上),但是fextsize為16,則表示此表需要重建;對這樣的表先進行數據備份和表結構備份;修改導出的表結構備份腳本,設置fextsize和nextsize,并對表進行分片; SQL語法如下: createtablexxx(aint,……)extentsizeAnextsizeB initfragmentbyroundrobinin pdbsx1,pdbsx2,pdbsx3,pdbsx4,pdbsx5,pdbsx6,pdbsx7,pdbsx8; 其中A為上面語句中查出的nrows*rowsize,單位為K,B的大小通常定義為A的一半,x為1或2(分別表示第一組分片表空間和第二組分片表空間);按照新的腳本重建表并導入數據。檢查大表和對大表的維護經驗介紹檢查大表和對大表的維護先做u29將常用對象放入內存經驗介紹將常用對象放入內存

settableobjects memory_resident;settablea_objects memory_resident;setindexix101_3 memory_resident;settablecooked_alarm(pdbs11,pbds12)memory_resident;……相應腳本為/opt/WNMS31DB/task/housekeeper將常用對象放入內存經驗介紹將常用對象放入內存settab30索引維護經驗介紹索引維護

重建索引 運行語句,找到指定表的所有索引: selectidxname fromsysindexesa,systablesb wherea.tabid=b.tabid andb.tabname=‘tablename’ 將必要的索引刪除后重建索引分片 將索引與表分開: createindexidxnameontablename(col)indbspace; 將索引分片: createindexidxnameontablename(col)fragmentby……索引維護經驗介紹索引維護重建索引31WNMSDB系統(tǒng)運行WNMSDB系統(tǒng)運行數據庫結構簡單描述環(huán)境設置DB工具案例介紹WNMSDB系統(tǒng)運行WNMSDB系統(tǒng)運行數據庫結構簡單描述32表的類型數據庫結構描述表的類型按TMN概念 配置相關表 性能相關表 告警相關表按數據時間段 長期表 短期表輔助表 地理關系表 靜態(tài)數據表 字典定義表應用表 網管系統(tǒng)中的應用所定義的各類表表的類型數據庫結構描述表的類型按TMN概念33CM信息模型數據庫結構描述CM信息模型plmnNetworkmeomcmehlrmeaucmeeirmebssmemsclinksettrunkgroupbscbtsSiteManagerbtsradioCarrierplmnNetwork(0)me(10)-ManagementObjectomc(100)msc(101)hlr(102)vlr(103)auc(104)eir(106)bss(107)bsc(200)btsSiteManager(201)

習慣上稱為BTS或基站transcoder(203)bts(300)

習慣上稱為Cell或小區(qū)tg(301)-TranceiverGrouptrx(400)channel(402)linkSet(600)trunkGroup(601)trxchanneltranscoderdestcoderouteroutesethostconnectionCDMAIPCM信息模型數據庫結構描述CM信息模型plmnNetwork34CM表關系圖數據庫結構描述CM表關系圖mscwbbhlrwbbbsswbbbtssitemanagerobjects...級聯(lián)關系int_idobjects中的根節(jié)點為int_id=1,表示PLMN_NETWORKobjects_hmscwbb_hbscwbb_hCM表關系圖數據庫結構描述CM表關系圖mscwbbhlrwb35CM結構劃分數據庫結構描述CM結構劃分regioncity地理關系業(yè)務關系DBCMSynchronizerobjectsobjects_hCM輔表CookDBAppDB業(yè)務匯接關系表objects表CM輔表sCM輔表歷史表s歷史對照關系CM結構劃分數據庫結構描述CM結構劃分regioncity地36PM表數據庫結構描述PM表交換相關表 tpm_msc中繼相關表 tpm_tkgp無線相關表 tpm_radio_bts性能匯總支持表 sample_hours廠家原始表 dalxxxxxxxx……PM表數據庫結構描述PM表交換相關表37FM表數據庫結構描述FM表核心告警表 cooked_alarm活動告警表 cooked_alarm_act告警統(tǒng)計表 f_alarm_on……FM表數據庫結構描述FM表核心告警表38重要環(huán)境變量環(huán)境設置INFORMIXDIRINFORMIXSERVERPATHLD_LIBRARY_PATHPERL5LIBDB_PATH重要的環(huán)境變量重要環(huán)境變量環(huán)境設置INFORMIXDIR重要的環(huán)境變量39環(huán)境變量設置環(huán)境設置必須正確指定Informix的主目錄和服務器的名字(SERVERNAME)應用程序的目錄正確設置到PATH環(huán)境中應用程序所用到的系統(tǒng)庫和動態(tài)庫的路徑正確設置到LD_LIBRARY_PATH環(huán)境中PERL程序的庫路徑正確設置到PERL5LIB環(huán)境中DB模塊的主目錄設置環(huán)境變量設置環(huán)境變量設置環(huán)境設置必須正確指定Informix的主目錄和服40DB工具DB工具AutoDeleterDBCleanerDalCleanerHouseKeeperSQLViewerConnectionKillerCMManagerDBSchema……DB工具的使用DB工具DB工具AutoDeleterDB工具的使用41CM同步常遇到的錯誤

案例分析CM同步常遇到的錯誤

CM同步時經常會遇到這樣的問題: log文件顯示向a_objects表插入一條記錄,語句報錯并顯示此記錄在a_objects中已經存在的信息。此問題經檢查,產生的原因主要是這樣的:出錯的這條記錄在a_objects表中其confirmed字段實際上已經被手工更新為2了,confirmed=2的含義是:此記錄在底層已經刪除,在上層需要確認刪除。如果confirmed置為2,就表示在objects表中應該已經不存在這條記錄,但是由于是手動更新的,底層記錄往往仍然保留,這樣就造成了上下層數據不一致;confirmed字段的信息是由CM同步程序和網元確認模塊(UNIX)來維護的,其他應用均只是讀此字段的信息,所以不應該手工更新此字段的內容;confirmed字段更新的原則:CM同步時將在底層有但在上層沒有的記錄插入到a_objects,設置confirmed=0網元確認模塊確認新網元后設置confirmed=1CM同步時發(fā)現(xiàn)在底層沒有但上層有的記錄,根據上層記錄的confirmed值,如果為0,直接刪除,如果為1,置confirmed=2,同時保留相應輔表的記錄CM同步常遇到的錯誤案例分析CM同步常遇到的錯誤CM同步42CM同步常遇到的錯誤(續(xù))案例分析CM同步常遇到的錯誤(續(xù))檢查這種被手工更新confirmed狀態(tài)的記錄的方法為: selectint_id froma_objects whereexists ( select1 fromobjects whereint_id=a__id ) andconfirmed=2; 此語句查出的int_id即為在a_objects中被手工更新了confirmed狀態(tài)的記錄修改此錯誤的方法: 將這些被手工更新過confirmed狀態(tài)的記錄更新回來,如果確實要刪除此網元,請從底層表中刪除。CM同步常遇到的錯誤(續(xù))案例分析CM同步常遇到的錯誤(續(xù)43objects表中int_id突變的解決方案案例分析objects表中int_id突變的解決方案

在一些現(xiàn)場發(fā)現(xiàn)在objects表中,網元的int_id從幾萬一下突變到1000000000以上,這種情況的出現(xiàn),必然導致在AppDB中生成的網元與CookDB中生成的網元id相重復,導致各種應用錯誤。解決此問題的一個方案為:導出a_objects中object_class=2001的網元的記錄(注意不要導它的int_id的信息),導出相應輔表connection中的記錄,這些記錄已經做過手工配置的信息可以參考;導出a_objects中object_class=2000的網元的記錄(注意不要導它的int_id的信息),導出相應輔表host中的記錄;刪除a_objects中object_class=2000and2001的網元的記錄;運行CM同步程序;使用以下sql語句修改a_objects的int_id的類型: altertablea_objectsmodifyint_idserial(2000000000);重新load從a_objects中導出的object_class=2000的網元;重新load從host中導出的記錄,比較麻煩的是:這些記錄的int_id需要從a_objects中將新生成的int_id取過來;運行存儲過程insert_connection,生成新的connection的信息;objects表中int_id突變的解決方案案例分析obje44現(xiàn)場維護原則與方法現(xiàn)場維護原則與方法原則方法現(xiàn)場維護原則與方法現(xiàn)場維護原則與方法原則45維護原則原則不要手工修改上層表的內部系統(tǒng)運行信息,如:confirmed、foreign_object_ind等字段;不能手工修改objects的int_id的數據類型,不能手工向objects中插入一條指定了int_id值的記錄特別是當這個int_id值超過了1000000000;在分片表上創(chuàng)建索引時采用detached模式,即:指定createindex語句的fragment子句或指定indbspacespecific語句出現(xiàn)長事務后,首先找到引起長事務的語句,暫停此應用的運行,等數據庫自己結束長事務,此時不能手工停庫……維護原則維護原則原則不要手工修改上層表的內部系統(tǒng)運行信息,如:con46數據庫慢的問題方法區(qū)別是哪一種慢:1、普遍慢2、采集慢3、報表查詢慢4、匯總慢數據庫慢的問題數據庫慢的問題方法區(qū)別是哪一種慢:數據庫慢的問題47普遍慢方法確認onconfig文件配置正確,參數設置合理檢查/opt/informix/online.log文件checkpoint的時間和間隔最近任何不明原因的錯誤檢查機器運行狀態(tài)vmstat,iostat檢查數據庫運行狀態(tài)onstat,oncheck確認updatestatistics正確運行用systables表列出nrows降序排列,檢查是否有異常大表Dal…tmp…stg…中間處理表的刪除機制是否正確普遍慢普遍慢方法確認onconfig文件配置正確,參數設置合理普遍48采集慢方法檢查Dal_instance,dal_table_mapping表的內容不能太多,幾千左右,索引是否正常檢查采集運行l(wèi)og文件,逐條檢查處理時間,找到運行顯著慢的語句,檢查對應SQL語句:注意入目標表的判重邏輯是否使用了IN或NOTIN的語法方式聯(lián)合查詢的表索引是否有,是否合理是否給定了不合理的過濾條件導致選取大量數據檢查MD上的采集程序是否有很多孤兒進程采集慢采集慢方法檢查Dal_instance,dal_table_49匯總慢、報表慢方法檢查匯總log文件中運行慢的語句,是否出現(xiàn)如同采集程序的情況檢查系統(tǒng)中是否有匯總perl程序的死進程或者檢查是否有l(wèi)og信息不完整的log文件(log文件結尾總是有正常提交結束和失敗回滾退出的信息)匯總慢檢查性能表的過期數據是否正常刪除,確認索引設置正常檢查web查詢語句條件是否合理及是否可以優(yōu)化報表查詢慢匯總慢、報表慢方法檢查匯總log文件中運行慢的語句,是否出現(xiàn)50SA&DBA的維護工作方法檢查系統(tǒng)用戶的環(huán)境設置檢查并保證crontab中配置的內容正常執(zhí)行定期清除/tmp目錄下的內容經常查看online.log文件中是否有異常的信息,備份online.log文件定期對數據經常插入、刪除的表進行索引重建定期運行oncheck對全庫進行檢查,及時發(fā)現(xiàn)問題定期進行數據庫全庫備份(一周)制定更詳細的備份計劃SA&DBA的維護工作

SA&DBA的維護工作方法檢查系統(tǒng)用戶的環(huán)境設置SA&DBA51參考資源參考資源Informix手冊Administrator’sGuideGuidetoSQLReferenceGuidetoSQLSyntaxGuidetoSQLTutorialPerformanceGuide參考資源參考資源Informix手冊52結束謝謝大家Sunday,January1,2023結束謝謝大家Friday,December23,20253演講完畢,謝謝觀看!演講完畢,謝謝觀看!54開始億陽信通股份有限公司數據庫培訓DB組萬瑾開始億陽信通股份有限公司數據庫培訓DB組55主要內容主要內容數據庫系統(tǒng)維護WNMSDB系統(tǒng)運行現(xiàn)場維護原則與流程主要內容主要內容主要內容數據庫系統(tǒng)維護主要內容56數據庫系統(tǒng)維護數據庫系統(tǒng)維護簡要系統(tǒng)維護系統(tǒng)檢查參數設置SQL語句及優(yōu)化經驗介紹數據庫系統(tǒng)維護數據庫系統(tǒng)維護簡要系統(tǒng)維護57環(huán)境變量和配置文件簡單系統(tǒng)維護主要環(huán)境變量和配置文件環(huán)境變量:

INFORMIXDIR /opt/informix INFORMIXSERVER nmserver2 LD_LIBRARY_PATH $INFORMIXDIR/lib ONCONFIG onconfig服務器表文件$INFORMIXDIR/etc/sqlhostsnmserver onipcshm 8001nmserver2 ontlitcp 8002參數文件etc/onconfig環(huán)境變量和配置文件簡單系統(tǒng)維護主要環(huán)境變量和配置文58數據庫啟停(1)簡單系統(tǒng)維護數據庫啟停(1)1.onmode-k2.oninit(-v)3.onmode–m4.onmode–s(u)5.oninit-s6.onmode–k(y)OnlineOfflineQuiescent123456數據庫啟停(1)簡單系統(tǒng)維護數據庫啟停(1)1.59數據庫啟停(2)簡單系統(tǒng)維護數據庫啟停(2)oninitoninit–vlog文件:$INFORMIXDIR/online.log失敗常見原因:Shm分配錯誤數據庫設備錯誤環(huán)境變量或配置文件錯誤處理臨時表空間錯誤數據庫啟停(2)簡單系統(tǒng)維護數據庫啟停(2)oni60狀態(tài)檢查簡單系統(tǒng)維護狀態(tài)檢查onstat一般: –空間: –d鎖: -k日志: -l用戶: -u事務: -xIO: -giov -giofSQL: -gsql……狀態(tài)檢查簡單系統(tǒng)維護狀態(tài)檢查onstat61物理檢查簡單系統(tǒng)維護物理檢查oncheck數據庫: –cc索引: –cI數據: -cD……物理檢查簡單系統(tǒng)維護物理檢查oncheck62結構腳本簡單系統(tǒng)維護結構腳本dbschema

從數據庫中導出數據庫對象的腳本,如: dbschema–d<dbname>-t<tablename><filename> dbschema–d<dbname>-f<procname><filename>

dbaccess

運行腳本: dbaccess<dbname><sqlfile.sql> dbaccess<dbname>-<<! SQLStatement !結構腳本簡單系統(tǒng)維護結構腳本dbschema63數據操縱簡單系統(tǒng)維護數據操縱表級數據出數據庫: UNLOADTO‘sqlfile.sql’SELECT*FROMTABLENAME;入數據庫: LOADFROM‘sqlfile.sql’INSERTINTOTABLENAME;數據庫級數據拷貝出數據的結構和數據: dbexport拷貝入數據庫的結構和數據: dbimport數據操縱簡單系統(tǒng)維護數據操縱表級數據64空間管理(1)簡單系統(tǒng)維護空間管理(1)dbspace操作系統(tǒng)文件原始設備盤區(qū)chunk數據庫對象(表、索引、存儲過程等)dbspacen:nn:ndbobjects空間管理(1)簡單系統(tǒng)維護空間管理(1)dbspa65空間管理(2)簡單系統(tǒng)維護空間管理(2)創(chuàng)建數據庫或表在某個DBspace上createdatabase<dbname>in<dbspacename>createtable<tabname>(…)…in<dbspacename>創(chuàng)建DBspaceonspaces–a–cdbspace–p…給DBspace增加空間onspaces–adbspace–p…查看空間利用狀態(tài)onstat-d空間管理(2)簡單系統(tǒng)維護空間管理(2)創(chuàng)建數據庫66常用命令列表簡單系統(tǒng)維護常用命令列表數據庫服務器:oninit數據操縱:dbaccess結構導出:dbschema狀態(tài)檢查:onstat數據庫狀態(tài)改變:onmode數據庫參數:onmonitorinformix查錯:finderr數據庫空間操作:onspaces常用命令列表簡單系統(tǒng)維護常用命令列表數據庫服務器:67數據庫狀態(tài)查看(1)系統(tǒng)檢查數據庫狀態(tài)查看(1)onstat– InformixDynamicServerVersion7.31.UC2A--On-Line--Up5days02:19:30--480320Kbytesonstat–gsql Sess SQL Current Iso Lock SQLErr ISAMErr F.E.Vers Id Stmttype Database Lv lMode 15891 SELECT cookdb2 DR NotWait 0 0 9.23 15888 SELECT cookdb2 DR NotWait 0 0 9.23onstat–gsql(ses)<sessid>

進一步查看某一進程的詳細信息onstat–u 查看進程占用鎖的個數以及此進程對數據的讀寫量數據庫狀態(tài)查看(1)系統(tǒng)檢查數據庫狀態(tài)查看(1)onstat68數據庫狀態(tài)查看(2)系統(tǒng)檢查數據庫狀態(tài)查看(2)onstat–k 查看鎖的信息onstat–l 查看物理和邏輯日志狀態(tài)onstat–p 重點查看:Reads%cached應盡量保證在95%以上,Writes%cached保證在85%以上。onstat–gseg

查看數據庫系統(tǒng)占用共享內存的情況,應該保證少于3塊的共享內存區(qū)域占用。onstat–giof 查看各chunk文件的讀寫量和讀寫率數據庫狀態(tài)查看(2)系統(tǒng)檢查數據庫狀態(tài)查看(2)onstat69數據庫狀態(tài)查看(3)系統(tǒng)檢查數據庫狀態(tài)查看(3)onstat–d

Dbspacesaddressnumberflagsnchunksfchunkflagsownername253c61501111Ninformixrootdbs253c71002200121NTinformixtpmdbs1253c7700101105NinformixtmndbsChunksaddresschk/dbsoffsetsizefreebpagesflagspathname253c62101/10500000498659PO-/inf_disk/rootchk253c63e02/20250001505PO-/inf_disk/tmpchk1.chk253c6d8013/10010000007PO-/inf_disk/tmnchk2.chk253c6e6014/10010000002PO-/inf_disk/tmnchk3.chk數據庫狀態(tài)查看(3)系統(tǒng)檢查數據庫狀態(tài)查看(3)onstat70數據庫物理檢查系統(tǒng)檢查數據庫物理檢查oncheck-cc 數據庫目錄結構檢查:oncheck–cc<database>oncheck–cI 數據庫索引結構檢查:oncheck–cI<database>:<tablename><#indexname>oncheck–cD 數據庫數據結構檢查:oncheck–cD<dbname>:<tablename>oncheck–ce extent空間檢查:oncheck-ceoncheck–p 生成檢查的報告而不進行修復數據庫物理檢查系統(tǒng)檢查數據庫物理檢查oncheck-cc71操作系統(tǒng)檢查系統(tǒng)檢查操作系統(tǒng)檢查df-k

查看各文件系統(tǒng)的使用情況ps-ef

查看操作系統(tǒng)正在運行的進程情況vmstat

查看操作系統(tǒng)的內存使用情況iostat

查看操作系統(tǒng)的磁盤使用情況操作系統(tǒng)檢查系統(tǒng)檢查操作系統(tǒng)檢查df-k72參數設置參數設置BUFFERS

此參數指定Informix占用共享內存的大小。通常,Informix推薦此參數設置為物理內存的20%~25%

NUMCPUVPS

此參數指定CPU虛處理器個數(virtualprocessors),在多CPU系統(tǒng)上,指定NUMCPUVPS不能超過CPU的個數(CPU-1)LRUS

表示總BUFFERS可分成多少個隊列,LRU隊列將緩沖區(qū)分成修改和未用兩個部分,LRUS越多,就能更好地支持大量用戶,減少bufwaits。 Informix推薦LRUS的計算公式為: LRUS=max(4,(no.ofcpuVPs))CLEANERS

定義清理修改緩沖區(qū)地Informix線程數,建議CLEANERS值等于LRU數,如果指定較小值,校驗時間可能大大增加參數設置參數設置BUFFERS73參數設置參數設置LOGSIZE

Informix提供的LOGSIZE的范圍為: 200~(ROOTSIZE-PHYSFILE-512-(63*pagesize/1024))/LOGFILES單位為K。LOGBUFFER

此參數指定共享內存區(qū)中三個邏輯日志緩存的大小,Informix建議設置為pagesize的倍數(SunSolaris系統(tǒng)的pagesize為2K)如16K、32K,對于高負荷的系統(tǒng)可設置為64K

PDQPRIORITY

控制使用并行查詢資源的參數,可有效地提高大數據量插入的效率……參數設置參數設置LOGSIZE74基本SQL語句SQL語句及優(yōu)化基本SQL語句CREATESELECTUPDATEDELETE……基本SQL語句SQL語句及優(yōu)化基本SQL語句75優(yōu)化原則SQL語句及優(yōu)化優(yōu)化原則提高where子句的選擇性updatestatistics統(tǒng)計更新提高索引的性能減小連接和排序的影響問題速度快的大表查詢一定是使用了索引的查詢表上建立的索引不一定會被使用到小表上沒有必要建立索引最好是看查詢計劃確定優(yōu)化結果優(yōu)化原則SQL語句及優(yōu)化優(yōu)化原則76提高WHERE子句的選擇性SQL語句及優(yōu)化提高WHERE子句的選擇性避免復雜的正則表達式

wherenamenotlike“z%”避免子串匹配

wherename[4,6]>“60”避免列計算

wherelevel+30=3400 whereweekday(some_date)=0縮小選擇范圍

whereobject_class=101提高WHERE子句的選擇性SQL語句及優(yōu)化提高WHERE子句77UPDATESTATISTICSSQL語句及優(yōu)化UPDATESTATISTICS對全庫對象

updatestatistics對某個數據庫對象 updatestatisticsfortabletablename; updatestatisticsforprocedureprocname;指定統(tǒng)計更新的級別 LOWmode,MEDIUMmode,HIGHmode定期運行 /opt/WNMS31DB/task/ updstat_cm updstat_fm updstat_olog updstat_pmUPDATESTATISTICSSQL語句及優(yōu)化UPDAT78提高索引的性能SQL語句及優(yōu)化提高索引的性能使用組合索引如索引在table(a,b,c)可以使用索引:wherea<0wherea<=90anda>=2wherea=0andb>80wherea=0andb=20andc>=40不可以使用索引:whereb=10wherec=330wherea>0andb=10使用聚簇索引定時檢查和重建索引提高索引的性能SQL語句及優(yōu)化提高索引的性能使用組合索引79減小連接和排序的影響SQL語句及優(yōu)化減小連接和排序的影響避免或簡化排序操作

表關聯(lián)個數最好不要超過四個使用并行排序

設置PDQPRIORITY參數使用臨時表減小排序范圍減小連接和排序的影響SQL語句及優(yōu)化減小連接和排序的影響避免80查看數據庫鎖方法經驗介紹查看數據庫鎖方法

查找系統(tǒng)表被鎖首先通過以下語句找到systables表的partnum(取十六進制); selecttabname,hex(partnum)

fromsystables wheretabname='systables';使用onstat-k查找tblsnum=hex(partnum)且rowid=0的Lock顯示(如果存在的話),取得其owner值(十六進制);使用上面取到的owner值用onstat-u獲取sessid使用onstat-gsessessid查看實際鎖表的語句其他表方法相同分片表的partnum需要從sysfragments系統(tǒng)表中的partn中取出查看數據庫鎖方法經驗介紹查看數據庫鎖方法查找系統(tǒng)表被鎖81系統(tǒng)長事務經驗介紹查找造成長事務的SQL

查找當前長事務的報告日志得到Transactionid,這里是:d69452 grep'AbortingLongTransaction:'online.log|tail-1 13:03:46AbortingLongTransaction:tx0xd69452dcusername:informixuid:1001根據第一步的Transactionid察看具體的事務,得到threadsid,這里是:d91de2d8 onstat-x|grepd69452 d69452dcAd91de2d820COMMIT0根據第二步得threadsid察看具體的線程信息,得到sessionid,這里是:36988 onstat-u|grep91de2d8 d91de2d8Y--P36988informix2a06051800155720根據第三步得到的sessionid來查看具體的SQL語句 onstat-gses36988或用onstat-gsql查看所有SQL進程,SQLErr為213的那個進程,實際就是引起長事務的進程系統(tǒng)長事務經驗介紹查找造成長事務的SQL查找當前長事務的報82檢查大表和對大表的維護經驗介紹檢查大表和對大表的維護

先做updatestatistics(重要);執(zhí)行語句: selecttabname,nrows,rowsize,fextsize,nextsize fromsystablesorderbynrowsdesc找到較大的表的表名,并檢查其fextsize,nextsize的值如果記錄數很多(百萬級以上),但是fextsize為16,則表示此表需要重建;對這樣的表先進行數據備份和表結構備份;修改導出的表結構備份腳本,設置fextsize和nextsize,并對表進行分片; SQL語法如下: createtablexxx(aint,……)extentsizeAnextsizeB initfragmentbyroundrobinin pdbsx1,pdbsx2,pdbsx3,pdbsx4,pdbsx5,pdbsx6,pdbsx7,pdbsx8; 其中A為上面語句中查出的nrows*rowsize,單位為K,B的大小通常定義為A的一半,x為1或2(分別表示第一組分片表空間和第二組分片表空間);按照新的腳本重建表并導入數據。檢查大表和對大表的維護經驗介紹檢查大表和對大表的維護先做u83將常用對象放入內存經驗介紹將常用對象放入內存

settableobjects memory_resident;settablea_objects memory_resident;setindexix101_3 memory_resident;settablecooked_alarm(pdbs11,pbds12)memory_resident;……相應腳本為/opt/WNMS31DB/task/housekeeper將常用對象放入內存經驗介紹將常用對象放入內存settab84索引維護經驗介紹索引維護

重建索引 運行語句,找到指定表的所有索引: selectidxname fromsysindexesa,systablesb wherea.tabid=b.tabid andb.tabname=‘tablename’ 將必要的索引刪除后重建索引分片 將索引與表分開: createindexidxnameontablename(col)indbspace; 將索引分片: createindexidxnameontablename(col)fragmentby……索引維護經驗介紹索引維護重建索引85WNMSDB系統(tǒng)運行WNMSDB系統(tǒng)運行數據庫結構簡單描述環(huán)境設置DB工具案例介紹WNMSDB系統(tǒng)運行WNMSDB系統(tǒng)運行數據庫結構簡單描述86表的類型數據庫結構描述表的類型按TMN概念 配置相關表 性能相關表 告警相關表按數據時間段 長期表 短期表輔助表 地理關系表 靜態(tài)數據表 字典定義表應用表 網管系統(tǒng)中的應用所定義的各類表表的類型數據庫結構描述表的類型按TMN概念87CM信息模型數據庫結構描述CM信息模型plmnNetworkmeomcmehlrmeaucmeeirmebssmemsclinksettrunkgroupbscbtsSiteManagerbtsradioCarrierplmnNetwork(0)me(10)-ManagementObjectomc(100)msc(101)hlr(102)vlr(103)auc(104)eir(106)bss(107)bsc(200)btsSiteManager(201)

習慣上稱為BTS或基站transcoder(203)bts(300)

習慣上稱為Cell或小區(qū)tg(301)-TranceiverGrouptrx(400)channel(402)linkSet(600)trunkGroup(601)trxchanneltranscoderdestcoderouteroutesethostconnectionCDMAIPCM信息模型數據庫結構描述CM信息模型plmnNetwork88CM表關系圖數據庫結構描述CM表關系圖mscwbbhlrwbbbsswbbbtssitemanagerobjects...級聯(lián)關系int_idobjects中的根節(jié)點為int_id=1,表示PLMN_NETWORKobjects_hmscwbb_hbscwbb_hCM表關系圖數據庫結構描述CM表關系圖mscwbbhlrwb89CM結構劃分數據庫結構描述CM結構劃分regioncity地理關系業(yè)務關系DBCMSynchronizerobjectsobjects_hCM輔表CookDBAppDB業(yè)務匯接關系表objects表CM輔表sCM輔表歷史表s歷史對照關系CM結構劃分數據庫結構描述CM結構劃分regioncity地90PM表數據庫結構描述PM表交換相關表 tpm_msc中繼相關表 tpm_tkgp無線相關表 tpm_radio_bts性能匯總支持表 sample_hours廠家原始表 dalxxxxxxxx……PM表數據庫結構描述PM表交換相關表91FM表數據庫結構描述FM表核心告警表 cooked_alarm活動告警表 cooked_alarm_act告警統(tǒng)計表 f_alarm_on……FM表數據庫結構描述FM表核心告警表92重要環(huán)境變量環(huán)境設置INFORMIXDIRINFORMIXSERVERPATHLD_LIBRARY_PATHPERL5LIBDB_PATH重要的環(huán)境變量重要環(huán)境變量環(huán)境設置INFORMIXDIR重要的環(huán)境變量93環(huán)境變量設置環(huán)境設置必須正確指定Informix的主目錄和服務器的名字(SERVERNAME)應用程序的目錄正確設置到PATH環(huán)境中應用程序所用到的系統(tǒng)庫和動態(tài)庫的路徑正確設置到LD_LIBRARY_PATH環(huán)境中PERL程序的庫路徑正確設置到PERL5LIB環(huán)境中DB模塊的主目錄設置環(huán)境變量設置環(huán)境變量設置環(huán)境設置必須正確指定Informix的主目錄和服94DB工具DB工具AutoDeleterDBCleanerDalCleanerHouseKeeperSQLViewerConnectionKillerCMManagerDBSchema……DB工具的使用DB工具DB工具AutoDeleterDB工具的使用95CM同步常遇到的錯誤

案例分析CM同步常遇到的錯誤

CM同步時經常會遇到這樣的問題: log文件顯示向a_objects表插入一條記錄,語句報錯并顯示此記錄在a_objects中已經存在的信息。此問題經檢查,產生的原因主要是這樣的:出錯的這條記錄在a_objects表中其confirmed字段實際上已經被手工更新為2了,confirmed=2的含義是:此記錄在底層已經刪除,在上層需要確認刪除。如果confirmed置為2,就表示在objects表中應該已經不存在這條記錄,但是由于是手動更新的,底層記錄往往仍然保留,這樣就造成了上下層數據不一致;confirmed字段的信息是由CM同步程序和網元確認模塊(UNIX)來維護的,其他應用均只是讀此字段的信息,所以不應該手工更新此字段的內容;confirmed字段更新的原則:CM同步時將在底層有但在上層沒有的記錄插入到a_objects,設置confirmed=0網元確認模塊確認新網元后設置confirmed=1CM同步時發(fā)現(xiàn)在底層沒有但上層有的記錄,根據上層記錄的confirmed值,如果為0,直接刪除,如果為1,置confirmed=2,同時保留相應輔表的記錄CM同步常遇到的錯誤案例分析CM同步常遇到的錯誤CM同步96CM同步常遇到的錯誤(續(xù))案例分析CM同步常遇到的錯誤(續(xù))檢查這種被手工更新confirmed狀態(tài)的記錄的方

溫馨提示

  • 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

提交評論