




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
DB2管理培訓(xùn)2019年6月DB2管理培訓(xùn)2019年6月了解db2結(jié)構(gòu),特點學(xué)會db2常規(guī)管理維護技能目的了解db2結(jié)構(gòu),特點目的開關(guān)機順序安全性管理存儲管理軟件管理網(wǎng)絡(luò)管理主要內(nèi)容開關(guān)機順序主要內(nèi)容進(jìn)程管理任務(wù)調(diào)度性能監(jiān)控ha簡介主要內(nèi)容進(jìn)程管理主要內(nèi)容DatabaseglobalmemoryBufferpoolExtendedMemoryDBHEAP(LOGBUF,CATALOGCACHE_SZ)UTILITYHEAP(BACKUP,RESTOREBUFFER)PackageCacheLockListSortHeapDatabaseglobalmemoryBufferpo實例實例實例相關(guān)的命令創(chuàng)建實例db2icrtdb2icrt-ufenced_user_IDinstance_nameinUNIX刪除實例
db2idrop–finstance_name列出實例db2ilist移植實例db2imigrinstance_name
升級實例db2iupdtinstance_name實例相關(guān)的命令創(chuàng)建實例設(shè)置db2環(huán)境參數(shù)db2profileregistries操作系統(tǒng)的環(huán)境變量db2dbm配置參數(shù)db2db配置參數(shù)Db2環(huán)境參數(shù)控制著db2的操作和功能設(shè)置db2環(huán)境參數(shù)db2profileregistriDb2profileregistries可以設(shè)置不同的級別Instance/global/user/ instancenode/instanceprofile使用db2set命令,可以顯示,修改,刪除db2set–all顯示所有設(shè)置的db2set–lr顯示所有可以設(shè)置的db2db配置參數(shù)Db2profileregistries可以設(shè)置不同的操作系統(tǒng)環(huán)境變量windowsSetparam=valueunixksh和bshExportparam=valueunixcshSetenvparam=value操作系統(tǒng)環(huán)境變量windows實例和數(shù)據(jù)庫參數(shù)讀取Db2getdatabasemanagerconfigurationDb2getdatabaseconfigurationfordatabase_name設(shè)置Db2updatedbmcfgusingparamvalueDb2updatedbcfgfordb_nameusingparamvalue實例和數(shù)據(jù)庫參數(shù)讀取連接到數(shù)據(jù)庫服務(wù)器端配置設(shè)置db2profileregistry的參數(shù)DB2COMM,如:Db2setdb2comm=tcpip設(shè)置實例級參數(shù)Db2updatedbmcfgusingsvcename50000修改該參數(shù),需要重起實例連接到數(shù)據(jù)庫服務(wù)器端配置連接到數(shù)據(jù)庫客戶端可供選擇方式之一自動搜索有兩種方法:known和search需要server端的管理服務(wù)器啟動db2adminstart配置管理服務(wù)器updateadmincfgusingdiscoversearch配置實例updatedbmcfgusingdiscover_instenable配置數(shù)據(jù)庫updatedbcfgfordb_nameusingdiscover_dbenable連接到數(shù)據(jù)庫客戶端可供選擇方式之一連接到數(shù)據(jù)庫客戶端可供選擇方式之二概要文件連接到數(shù)據(jù)庫客戶端可供選擇方式之二連接到數(shù)據(jù)庫客戶端可供選擇方式之三手工配置編目節(jié)點Catalogtcpipnodenode_nameremoteip地址Server50000編目數(shù)據(jù)庫Catalogdbdb_nameasatnodenode_name連接到數(shù)據(jù)庫客戶端可供選擇方式之三db2命令交互db2cmd命令行交互模式,可以直接輸入Db2命令,操作系統(tǒng)命令前加!命令行模式,可以直接識別操作系統(tǒng)命令,db2命令前加db2執(zhí)行腳本Db2–fmyfile.clp腳本中用--做注釋db2命令交互db2cmd命令行可執(zhí)行的命令命令行可執(zhí)行的命令命令行選項和獲得幫助命令行選項Db2listcommandoptions獲得幫助Db2?Db2?CommandDb2?SqlnnnnDb2?db2nnnn命令行選項和獲得幫助命令行選項命令中心可以在控制中心調(diào)用圖形化的命令行處理器,功能類似特殊的功能可以得到sql的執(zhí)行計劃可以將sql加到腳本中命令中心可以在控制中心調(diào)用控制中心配置功能,可以顯示和修改實例和數(shù)據(jù)庫參數(shù)備份、恢復(fù)、前滾數(shù)據(jù)庫和表空間管理本地和遠(yuǎn)程數(shù)據(jù)庫,可以創(chuàng)建/刪除、顯示、編目遠(yuǎn)程數(shù)據(jù)庫和去掉編目管理存儲。創(chuàng)建、修改、刪除表空間。控制中心配置功能,可以顯示和修改實例和數(shù)據(jù)庫參數(shù)字符集Createdatabasedb_nameusingcodesetGBKterritoryzh_CN字符集Createdatabasedb_nameusi模式(schema)模式是一組數(shù)據(jù)庫對象的集合,他提供了數(shù)據(jù)庫對象的邏輯分類如果不指定模式名,則用當(dāng)前用戶名切換當(dāng)前模式可以用setcurrentschemaxxx或setcurrentsqlidxxx模式(schema)模式是一組數(shù)據(jù)庫對象的集合,他提供了數(shù)系統(tǒng)模式系統(tǒng)模式:SYSIBM基本的編目信息,不建議直接訪問SYSCAT編目信息的只讀視圖,所有人具有查詢權(quán)限,推薦的獲取編目信息的途徑SYSSTAT編目信息可更新視圖,可以影響優(yōu)化器SYSFUN用戶定義函數(shù)系統(tǒng)模式系統(tǒng)模式:建表創(chuàng)建新表:createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)
根據(jù)已有的表創(chuàng)建新表:A:createtabletab_newliketab_oldB:createtabletab_newasselectcol1,col2…fromtab_olddefinitiononly建表創(chuàng)建新表:表空間三種表空間常規(guī)表空間長表空間臨時表空間兩類表空間DMSSMS默認(rèn)產(chǎn)生三個表空間:SYSCATSPACE,USERSPACE1,TEMPSPACE1表空間三種表空間數(shù)據(jù)庫對象-視圖創(chuàng)建視圖:createviewviewnameasselectstatement刪除視圖:dropviewviewname
注:視圖唯一能修改的是引用類型列,改變列的范圍。其他定義好了都不能修改。當(dāng)視圖基于的基表drop后,視圖變?yōu)闊o效。數(shù)據(jù)庫對象-視圖創(chuàng)建視圖:createviewviewn數(shù)據(jù)庫對象-索引使用索引的主要原因有兩條:確保數(shù)據(jù)值的惟一性提高SQL查詢的性能使用索引時,能夠按一種排列好的順序更迅速地訪問數(shù)據(jù),從而避免了使用臨時存儲排序數(shù)據(jù)這一耗時的任務(wù)。創(chuàng)建索引:create[unique]indexidxnameontabname(col….)刪除索引:dropindexidxname注:索引是不可更改的,想更改必須刪除重新建。索引的使用都是從WHERE中的條件得出的,從謂詞是否使用索引可以將謂詞分為可索引謂詞和不可索引謂詞,如下圖,我們列出了索引謂詞和不可索引謂詞。數(shù)據(jù)庫對象-索引使用索引的主要原因有兩條:謂詞類型可索引注釋Col∝conY∝代表>,>=,=,<=,<,但是<>不是可索引的。Colbetweencon1andcon2Y在匹配系列中必須是最后的。ColinlistY僅對一個匹配列ColisnullYCollike‘xyz%’Y模糊匹配%在后面。Collike‘%xyz’N模糊匹配%在前面。Col1∝Col2NCol1和col2來自同一個表Col∝ExpressionN例如:c1(c1+1)/2Pred1andPred2YPred1和Pred2都是可索引的,指相同索引的列Pred1orPred2N除了(c1=aorc1=b)外,他可以被認(rèn)為是c1in(a,b)NotPred1N或者任何的等價形式:Notbetween,Notin,Notlike等等??伤饕^詞謂詞類型可索引注釋Col∝conY∝代表>,數(shù)據(jù)約束數(shù)據(jù)庫中數(shù)據(jù)的完整性或有效性極其重要。確保插入數(shù)據(jù)庫的數(shù)據(jù)的有效性非常困難,DB2提供了定義某些可并入數(shù)據(jù)庫的基于規(guī)則的約束或檢查的能力。在DB2中,可使用以下檢查來最小化將錯誤數(shù)據(jù)插入表中的風(fēng)險:可檢查一行中的一段,看它們是否符合所關(guān)聯(lián)列的數(shù)據(jù)類型和長度。例如,“Geoff”值不匹配數(shù)據(jù)類型為INTEGER的列,因而帶有該值的行會被拒絕,以這種方式來確保數(shù)據(jù)庫中數(shù)據(jù)的有效性。若表上定義了主鍵約束,表中的各行必須在一列或共同構(gòu)成主鍵的多個列中具有惟一值。若插入的行中存在與現(xiàn)有鍵相同的鍵,則新行將被拒絕。若表上已定義了惟一約束,表中的各行必須遵循此約束,即具有惟一值或構(gòu)成惟一鍵的值組合。若已定義了外鍵約束,表中各行的外鍵列或多個列必須具有與父表中一行的主鍵相匹配的值。在某些情況下,若一列或多個列定義為外鍵的一部分,而這個外鍵可為空,則空值也是可接受的。若列上已定義了檢查約束,各行必須遵循此約束。例如,EMPLOYEE表的SALARY列上的檢查約束可能會阻止應(yīng)用程序或用戶插入工資低于0的新員工記錄或行。插入表的任何salary值小于0的行都會被拒絕,從而最小化將錯誤數(shù)據(jù)插入表中的風(fēng)險。
數(shù)據(jù)約束數(shù)據(jù)庫中數(shù)據(jù)的完整性或有效性極其重要。確保插入數(shù)據(jù)庫檢查約束檢查約束數(shù)據(jù)庫鎖
數(shù)據(jù)庫鎖數(shù)據(jù)庫事務(wù)
數(shù)據(jù)庫事務(wù)數(shù)據(jù)類型數(shù)據(jù)類型NULL值盡可能設(shè)置為notnull,可以通過default的方式來解決insertnull的情況查詢isnullNULL值盡可能設(shè)置為notnull,可以通過defaulIdentity列是一個數(shù)字型的字段,當(dāng)新行插入時,db2自動產(chǎn)生一個唯一的數(shù)字一個表中只能有一個列被定義有該屬性可以定義成always或default的方式Always方式,只能有db2產(chǎn)生,不允許應(yīng)用提供值Default方式,可以由應(yīng)用提供值,不能保證唯一性Identity列是一個數(shù)字型的字段,當(dāng)新行插入時,db2自簡單查詢select[distinct]column-listfromtable-listwheregroupby[having]orderby[ase/ease]簡單查詢select[distinct]column-內(nèi)連接內(nèi)連接外連接表的分類保留行表左外連接中左邊的表。右外連接中右邊的表。全外連接中全部的表。替換NULL的表左外連接中右邊的表右外連接中左邊的表全外連接中全部的表外連接表的分類保留行表一個簡單的左外連接
一個簡單的左外連接一個簡單的右外連接一個簡單的右外連接全外連接全外連接子查詢子查詢可以由內(nèi)連接和外連接代替,推薦做法in、exist可以由內(nèi)連接代替selectprojno,projname,d.deptno,deptnamefromdepartmentdleftouterjoinprojectponp.deptno=d.deptno;selectprojno,projnamefromdepartmentwheredeptnoin(selectdeptnofromproject);notin、notexist可以由外連接代替selectprojno,projname,d.deptno,deptnamefromdepartmentdleftouterjoinprojectponp.deptno=jnameisnull;selectprojno,projnamefromdepartmentwheredeptnonotin(selectdeptnofromproject);子查詢子查詢可以由內(nèi)連接和外連接代替,推薦做法Db2中的函數(shù)內(nèi)建函數(shù)列函數(shù):avg,sum,count,操作函數(shù):+類型轉(zhuǎn)換函數(shù)decimal其他用戶自定義函數(shù)UDFDb2中的函數(shù)內(nèi)建函數(shù)1、類型轉(zhuǎn)化函數(shù):轉(zhuǎn)化為數(shù)字類型的:decimal,double,Integer,smallint,realHex(arg):轉(zhuǎn)化為參數(shù)的16進(jìn)制表示。轉(zhuǎn)化為字符串類型的:char,varcharDigits(arg):返回arg的字符串表示法,arg必須為decimal。轉(zhuǎn)化為日期時間的:date,time,timestamp2、時間日期:year,quarter,month,week,day,hour,minute,seconddayofyear(arg):返回arg在年內(nèi)的天值Dayofweek(arg):返回arg在周內(nèi)的天值days(arg):返回日期的整數(shù)表示法,從0001-01-01來的天數(shù)。midnight_seconds(arg):午夜和arg之間的秒數(shù)。Monthname(arg):返回arg的月份名。Dayname(arg):返回arg的星期。常用函數(shù)介紹1、類型轉(zhuǎn)化函數(shù):常用函數(shù)介紹煙草產(chǎn)品事業(yè)部培訓(xùn)中心3、字符串函數(shù):length,lcase,ucase,ltrim,rtrimCoalesce(arg1,arg2….):返回參數(shù)集中第一個非null參數(shù)。Concat(arg1,arg2):連接兩個字符串a(chǎn)rg1和arg2。insert(arg1,pos,size,arg2):返回一個,將arg1從pos處刪除size個字符,將arg2插入該位置。left(arg,length):返回arg最左邊的length個字符串。locate(arg1,arg2,<pos>):在arg2中查找arg1第一次出現(xiàn)的位置,指定pos,則從arg2的pos處開始找arg1第一次出現(xiàn)的位置。posstr(arg1,arg2):返回arg2第一次在arg1中出現(xiàn)的位置。repeat(arg1,num_times):返回arg1被重復(fù)num_times次的字符串。replace(arg1,arg2,arg3):將在arg1中的所有arg2替換成arg3。right(arg,length):返回一個有arg左邊length個字節(jié)組成的字符串。space(arg):返回一個包含arg個空格的字符串。substr(arg1,pos,<length>):返回arg1中pos位置開始的length個字符,如果沒指定length,則返回剩余的字符。常用函數(shù)介紹煙草產(chǎn)品事業(yè)部培訓(xùn)中心3、字符串函數(shù):常用函數(shù)介紹4、數(shù)學(xué)函數(shù):Abs,count,max,min,sumCeil(arg):返回大于或等于arg的最小整數(shù)。Floor(arg):返回小于或等于參數(shù)的最小整數(shù)。Mod(arg1,arg2):返回arg1除以arg2的余數(shù),符號與arg1相同。Rand():返回1到1之間的隨機數(shù)。Power(arg1,arg2):返回arg1的arg2次方。Round(arg1,arg2):四舍五入截斷處理,arg2是位數(shù),如果arg2為負(fù),則對小數(shù)點前的數(shù)做四舍五入處理。Sigh(arg):返回arg的符號指示符。-1,0,1表示。truncate(arg1,arg2):截斷arg1,arg2是位數(shù),如果arg2是負(fù)數(shù),則保留arg1小數(shù)點前的arg2位。5、其他:nullif(arg1,arg2):如果2個參數(shù)相等,則返回null,否則,返回參數(shù)1煙草產(chǎn)品事業(yè)部培訓(xùn)中心常用函數(shù)介紹4、數(shù)學(xué)函數(shù):煙草產(chǎn)品事業(yè)部培訓(xùn)中心常用函數(shù)介紹數(shù)據(jù)庫的備份數(shù)據(jù)庫備份
是數(shù)據(jù)庫的一個完整的副本。除了數(shù)據(jù)外,備份副本還包含關(guān)于表空間、容器、數(shù)據(jù)庫配置、日志控制文件和恢復(fù)歷史文件的信息。注意,備份不會存儲數(shù)據(jù)庫管理器配置文件或注冊表變量。只有數(shù)據(jù)庫配置文件才會得到備份。要執(zhí)行備份,需要SYSADM、SYSCTRL或SYSMAINT權(quán)限
數(shù)據(jù)庫的備份數(shù)據(jù)庫備份離線備份要為數(shù)據(jù)庫sample執(zhí)行完整的離線備份,并將備份副本存儲在d:\mybackups目錄中,可以使用以下命令: BACKUPDATABASEsampleTOd:\mybackups要使用其他選項為數(shù)據(jù)庫sample執(zhí)行完整離線備份,可以使用以下命令: (1)BACKUPDATABASEsample (2)TO/db2backup/dir1,/db2backup/dir2 (3)WITH4BUFFERS (4)BUFFER4096 (5)PARALLELISM2我們來更仔細(xì)觀察前面的命令: 1.表明要備份的數(shù)據(jù)庫的名稱(或別名)。 2.指定用于存儲備份的位置。 3.表明在備份操作期間可以使用多少個內(nèi)存緩沖區(qū)。使用多個緩沖區(qū)可以提高性能。 4.表明每個緩沖區(qū)的大小。 5.決定使用多少媒介讀/寫進(jìn)程/線程來進(jìn)行備份。離線備份要為數(shù)據(jù)庫sample執(zhí)行完整的離線備份,并將備數(shù)據(jù)庫日志DB2事務(wù)日志對于恢復(fù)來說是至關(guān)重要的。它們跟蹤數(shù)據(jù)庫對象和數(shù)據(jù)上發(fā)生的變化。主日志文件和輔助日志文件 主日志文件是在建立第一個數(shù)據(jù)庫連接或者數(shù)據(jù)庫活動時立即分配的。輔助日志文件是在需要時動態(tài)分配的?;顒尤罩?/p>
如果以下兩個條件之一得到滿足,則一個日志被認(rèn)為是活動的(active):它包含關(guān)于尚未被提交或回滾的事務(wù)的信息。它包含關(guān)于已經(jīng)被提交但是其更改還沒有被寫(具體化)到數(shù)據(jù)庫磁盤的事務(wù)的信息。在線歸檔日志
離線歸檔日志
數(shù)據(jù)庫日志DB2事務(wù)日志對于恢復(fù)來說是至關(guān)重要的。它們跟蹤數(shù)據(jù)庫日志1.配置日志空間
DB2數(shù)據(jù)庫通過日志文件維護數(shù)據(jù)的完整性和一致性。DB2數(shù)據(jù)庫的日志空間可通過如下公式計算: 日志空間=(主日志文件+輔助日志文件)*日志文件尺寸 其中: 主日志文件由參數(shù)LOGPRIMARY控制, 二級日志文件由參數(shù)LOGSECOND控制 日志文件尺寸由參數(shù)LOGFILSIZ控制2.正確的處理日志滿 根據(jù)實際的情況配置以上相關(guān)參數(shù)。 如果出現(xiàn)日志空間滿的情況,DB2會將系統(tǒng)掛起。這時,應(yīng)該增加LOGSECOND參數(shù),而不要嘗試db2stopforce或者kill。數(shù)據(jù)庫日志1.配置日志空間啟用歸檔日志一個數(shù)據(jù)庫的日志記錄的類型是由數(shù)據(jù)庫參數(shù)LOGARCHMETH1決定的。當(dāng)LOGARCHMETH1為OFF(默認(rèn)值)時,歸檔日志記錄被禁用,循環(huán)日志記錄被啟用。為了啟用歸檔日志記錄,可以將LOGARCHMETH1設(shè)置為以下值中的任何一個值: LOGRETAIN:日志文件將被保留在活動日志目錄中 USEREXIT:日志的歸檔和檢索是由用戶提供的用戶出口程序自動執(zhí)行的,這個出口程序必須由db2uext2調(diào)用。這個程序用于將在線歸檔日志移動到與活動日志目錄不同的一個目錄中,或者移動到另一個媒介上。當(dāng)在ROLLFORWARD操作期間需要某些離線歸檔日志時,這個程序還可以用于將離線歸檔日志取出到活動日志目錄中。在Windows下,db2uext2必須存儲在sqllib\bin目錄中,在UNIX下,db2uext2必須存儲在sqllib/adm目錄中 DISK:directory_name:與USEREXIT使用相同的算法。DB2不調(diào)用用戶出口程序,而是自動將日志文件從活動日志目錄歸檔到指定的目錄 TSM:[managementclassname]:與USEREXIT使用相同的算法。日志被歸檔到本地TivoliStorageManger(TSM)服務(wù)器上。managementclassname參數(shù)是可選的。如果沒有指定該參數(shù),則使用默認(rèn)的管理類 VENDOR:library_name:與USEREXIT使用相同的算法。日志是使用指定供應(yīng)商的庫來歸檔的
由于向后兼容的原因,數(shù)據(jù)庫配置文件仍然包含參數(shù)LOGRETAIN和USEREXIT。從8.2版開始,這兩個參數(shù)已經(jīng)被LOGARCHMETH1取代。如果更新USEREXIT或LOGRETAIN參數(shù),那么LOGARCHMETH1將自動被更新,反之亦然。啟用歸檔日志一個數(shù)據(jù)庫的日志記錄的類型是由數(shù)據(jù)庫參數(shù)LOG在線備份在線備份 BACKUPDATABASEsampleONLINETO/dev/rdir1,/dev/rdir2由于在線備份允許用戶在執(zhí)行備份的同時訪問數(shù)據(jù)庫,因此這些用戶作出的更改很可能不會存儲在備份副本中。因此,僅僅憑借在線備份還不足以進(jìn)行恢復(fù),另外還需要備份操作期間收集到的相應(yīng)的日志。當(dāng)在線備份完成時,DB2強制關(guān)閉當(dāng)前活動日志(并將其歸檔),因此很容易在備份完成時收集當(dāng)前活動日志。為了將日志也備份到備份副本中,可以使用BACKUPDATABASE命令的INCLUDELOG選項。這樣可以確保即使丟失了日志,也仍然可以使用備份鏡像中包含的日志來恢復(fù)到最小的時間點上。例如,要對sample數(shù)據(jù)庫和日志進(jìn)行在線備份,并以/dev/rdir1作為目標(biāo)目錄,可以發(fā)出: BACKUPDATABASEsampleONLINETO/dev/rdir1INCLUDELOGS
在線備份在線備份數(shù)據(jù)庫的恢復(fù)使用一個備份文件作為輸入,輸出是一個新的或已有的數(shù)據(jù)庫。要恢復(fù)到已有的數(shù)據(jù)庫,需要SYSADM、SYSCTRL或SYSMAINT權(quán)限。要恢復(fù)到新的數(shù)據(jù)庫,則需要SYSADM或SYSCTRL權(quán)限。數(shù)據(jù)庫的恢復(fù)使用一個備份文件作為輸入,輸出是一個新的或已有的數(shù)據(jù)庫恢復(fù)例子要執(zhí)行sample數(shù)據(jù)庫的恢復(fù),可以使用以下命令: (1)RESTOREDATABASEsample (2)FROMC:\DBBACKUP (3)TAKENAT20190314131259(4)WITHOUTROLLINGFORWARD(5)WITHOUTPROMPTING上面的例子中: 1.表明要恢復(fù)的數(shù)據(jù)庫鏡像的名稱。 2.指定要從中讀取輸入備份文件的位置。 3.如果該目錄中有多個備份鏡像,該選項將基于時間戳(備份名稱的一部分)標(biāo)識特定的備份。 4.如果一個數(shù)據(jù)庫啟用了歸檔日志記錄,那么當(dāng)該數(shù)據(jù)庫被恢復(fù)時,它將自動被置于rollforwardpending狀態(tài)。這一行告訴DB2不要將該數(shù)據(jù)庫置于rollforwardpending狀態(tài)。 5.當(dāng)執(zhí)行RESTORE時,您將看不到任何提示。數(shù)據(jù)庫恢復(fù)例子要執(zhí)行sample數(shù)據(jù)庫的恢復(fù),可以使用以包括日志文件的恢復(fù)例子備份鏡像中包括日志文件,那么可以使用RESTOREDATABASE命令的LOGTARGET選項恢復(fù)日志文件。為了使用C:\DBBACKUP目錄中的備份鏡像恢復(fù)SAMPLE數(shù)據(jù)庫,并將日志文件恢復(fù)到C:\DB2\NODE0000\SQL00001\SQLOGDIR目錄,可以發(fā)出: RESTOREDATABASEsampleFROMC:\DBBACKUPLOGTARGETC:\DB2\NODE0000\SQL00001\SQLOGDIR也可以通過使用LOGS關(guān)鍵字只恢復(fù)日志文件,而不恢復(fù)數(shù)據(jù)庫: RESTOREDATABASEsampleLOGSFROMC:\DBBACKUPLOGTARGETC:\DB2\NODE0000\SQL00001\SQLOGDIR包括日志文件的恢復(fù)例子備份鏡像中包括日志文件,那么可以使用Db2move例子Db2movedbnameexport–sndb2inst1-uusername–ppasswordDb2movedbnameimport–sndb2inst1-uusername–ppasswordDb2move例子Db2movedbnameexportDb2exportEXPORT實用程序使用一條SQLSELECT語句或XQUERY語句將數(shù)據(jù)從數(shù)據(jù)庫表提取到一個文件中。數(shù)據(jù)可以被導(dǎo)出到DEL、IXF或WSF文件中。建議在export中包括MESSAGES子句,以捕獲導(dǎo)出過程中遇到的錯誤、警告和包含有用信息的消息。要想成功地調(diào)用EXPORT實用程序,必須擁有SYSADM或DBADM權(quán)限,或者擁有EXPORT命令中所訪問的表或視圖上的CONTROL或SELECT特權(quán)。
一個簡單的導(dǎo)出的例子。下面的命令將SELECT語句的結(jié)果導(dǎo)出到一個DEL格式的文件中。消息文件msg.out用于記錄有用的信息和遇到的錯誤或警告: EXPORTTOmyfile.delOFDELMESSAGESmsg.outSELECT,staff.dept,org.locationFROMorg,staffWHEREorg.deptnumb=staff.dept;Db2exportEXPORT實用程序使用一條SQLDb2import語法IMPORT實用程序用一個輸入文件將數(shù)據(jù)填充到一個表中,輸入文件的文件類型可以是ASC、DEL、IXF或WSF。目標(biāo)是一個表、一個類型化表(typedtable)或者一個視圖。但是,不能導(dǎo)入到系統(tǒng)表、臨時表和物化查詢表。例子: IMPORTFROMemp.ixfOFIXFMESSAGESmsg.outCREATEINTOemployeeINdatatbspINDEXINindtbspDb2import語法IMPORT實用程序用一個輸入Db2import選項下面顯示的IMPORT命令具有五個不同的選項:IMPORTFROMfile_nameOFfile_typeMESSAGESmessage_file[INSERT|INSERT_UPDATE|REPLACE|REPLACE_CREATE|CREATE]INTOtarget_table_nameINSERT選項將導(dǎo)入的數(shù)據(jù)插入表中。目標(biāo)表必須已經(jīng)存在。 INSERT_UPDATE將數(shù)據(jù)插入表中,或者更新表中具有匹配主鍵的行。目標(biāo)表必須已經(jīng)存在,并且定義了一個主鍵。REPLACE選項刪除所有已有的數(shù)據(jù),并將導(dǎo)入的數(shù)據(jù)插入到一個已有的目標(biāo)表中。使用REPLACE_CREATE選項時,如果目標(biāo)表已經(jīng)存在,則導(dǎo)入實用程序刪除已有的數(shù)據(jù),并插入新的數(shù)據(jù),就像REPLACE選項那樣。如果目標(biāo)表還沒有定義,那么首先創(chuàng)建這個表以及它的相關(guān)索引,然后再導(dǎo)入數(shù)據(jù)。正如您可能想像的那樣,輸入文件必須是PC/IXF格式的文件,因為那種格式包含對導(dǎo)出表的結(jié)構(gòu)化描述。如果目標(biāo)表是被一個外鍵引用的一個父表,那么就不能使用REPLACE_CREATE。CREATE選項首先創(chuàng)建目標(biāo)表和它的索引,然后將數(shù)據(jù)導(dǎo)入到新表中。該選項惟一支持的文件格式是PC/IXF。還可以指定新表所在表空間的名稱。Db2import選項下面顯示的IMPORT命令具有五Db2LoadLOAD實用程序是用于為表填充數(shù)據(jù)的另一種方法。該實用程序?qū)⒏袷交捻撁嬷苯訉懭氲綌?shù)據(jù)庫中。這種機制允許比IMPORT實用程序更有效地移動數(shù)據(jù)。LOADFROMinput_sourceOFinput_typeMESSAGESmessage_file[INSERT|REPLACE|TERMINATE|RESTART]INTOtarget_tablename
Db2LoadLOAD實用程序是用于為表填充數(shù)據(jù)的另一Db2LoadLOAD可以以四種不同的模式執(zhí)行:INSERT模式將輸入數(shù)據(jù)添加到一個表中,而不更改已有的表數(shù)據(jù)。REPLACE模式刪除表中所有已有的數(shù)據(jù),然后用輸入數(shù)據(jù)填充這個表。TERMINATE模式終止裝載操作,并回滾到它開始時所在的時間點。一個例外是,如果指定了REPLACE模式,那么表將被刪節(jié)。RESTART模式用于重新開始之前被中斷的裝載命令。它將自動從最近的一致點繼續(xù)。要使用這個模式,可以指定與前一個LOAD命令相同的選項,但是這一次加上RESTART。它使實用程序可以發(fā)現(xiàn)在裝載處理中生成的所有需要的臨時表。因此,千萬不要手動刪除裝載命令所生成的任何臨時文件,除非您確信不再需要這些臨時文件。一旦裝載成功完成,這些臨時文件將自動被刪除。默認(rèn)情況下,這些臨時文件是在當(dāng)前的工作目錄中創(chuàng)建的。也可以使用TEMPFILESPATH選項指定存放臨時文件的目錄。Db2LoadLOAD可以以四種不同的模式執(zhí)行:Db2movedb2move是用于在DB2數(shù)據(jù)庫之間移動大量表的一個數(shù)據(jù)移動工具。這個命令中支持的動作有EXPORT、IMPORT、LOAD和COPY。EXPORT、IMPORT和LOAD這幾個動作的行為與前一屏中描述的完全相同。db2move將一組用戶表從系統(tǒng)編目表中提取出來,并將每個表以PC/IXF格式導(dǎo)出。然后,PC/IXF文件可以被導(dǎo)入或裝載到另一個DB2數(shù)據(jù)庫中。下面是一些例子。這個命令用指定的用戶ID和密碼以REPLACE模式導(dǎo)入sample數(shù)據(jù)庫中的所有表: db2movesampleIMPORT-ioREPLACE-uuserid-ppassword
下面的命令以REPLACE模式裝載db2admin和db2user這兩個模式下的所有表: db2movesampleLOAD-sndb2admin,db2user-loREPLACEDb2movedb2move是用于在DB2數(shù)據(jù)庫之間移runstatsDB2利用先進(jìn)的基于成本的優(yōu)化器來決定如何訪問數(shù)據(jù)。它的決定很大程度上要受到關(guān)于數(shù)據(jù)庫表和索引的大小的統(tǒng)計信息的影響。因此,應(yīng)該使數(shù)據(jù)庫統(tǒng)計信息不斷更新,以便于選擇有效的數(shù)據(jù)訪問計劃。
#db2runstatsontable表名andindexall對系統(tǒng)表以及變化比較頻繁的表運行統(tǒng)計信息,建議寫成shell腳本自動運行。runstatsDB2利用先進(jìn)的基于成本的優(yōu)化器來決定如何reorg和reorgchk數(shù)據(jù)庫中添加和刪除的數(shù)據(jù)在物理上可能不是按連續(xù)的順序放置的。在這種情況下,DB2必須執(zhí)行附加的讀操作來訪問數(shù)據(jù)。這通常意味著需要更多的磁盤I/O操作,我們都知道那些操作是開銷很大的。在這種情況下,應(yīng)該考慮在物理上將表重組,使相關(guān)的數(shù)據(jù)存放在相近的位置,以減少I/O操作。REORG是用于重組表和/或索引中的數(shù)據(jù)的一個實用程序。REORGCHK是另一種數(shù)據(jù)維護實用程序,它可以選擇檢索當(dāng)前數(shù)據(jù)庫統(tǒng)計信息或更新數(shù)據(jù)庫統(tǒng)計信息。reorg和reorgchk數(shù)據(jù)庫中添加和刪除的數(shù)據(jù)在物理上檢查表是否需要重組使用REORGCHK命令,通過統(tǒng)計數(shù)據(jù)檢查表是否需要重組,語法如下:REORGCHK[UPDATE|CURRENT]STATISTICSON[TABLESYSTEM|TABLEUSER|TABLEALL|TABLEtable_name|SCHEMAschema_name]UPDATESTATISTICS:更新表的統(tǒng)計數(shù)據(jù),根據(jù)該統(tǒng)計數(shù)據(jù)判斷是否需要重組表CURRENTSTATISTICS:根據(jù)當(dāng)前表統(tǒng)計數(shù)據(jù)判斷是否需要重組表TABLEtable_name:對單個表進(jìn)行分析TABLEALL: 對數(shù)據(jù)庫所有的表進(jìn)行分析TABLESYSTEM: 對系統(tǒng)表進(jìn)行分析TABLEUSER: 對當(dāng)前用戶模式下的所有表進(jìn)行分析#db2reorgchkupdatestatisticsontableall檢查表是否需要重組使用REORGCHK命令,通過統(tǒng)計數(shù)據(jù)檢查對需要重組的表進(jìn)行重組#db2reorgtable表名//通過重構(gòu)行來消除“碎片”數(shù)據(jù)#db2reorgindexesallfortable表名//只重組索引比如:indexby_id將根據(jù)索引by_id,如果不加INDEX選項將重組表和所有的索引使用指定的臨時表空間重組表indexby_idusetempspace1
表重組完成后需要進(jìn)行RUNSTATS。對需要重組的表進(jìn)行重組謝謝!
謝謝!
DB2管理培訓(xùn)2019年6月DB2管理培訓(xùn)2019年6月了解db2結(jié)構(gòu),特點學(xué)會db2常規(guī)管理維護技能目的了解db2結(jié)構(gòu),特點目的開關(guān)機順序安全性管理存儲管理軟件管理網(wǎng)絡(luò)管理主要內(nèi)容開關(guān)機順序主要內(nèi)容進(jìn)程管理任務(wù)調(diào)度性能監(jiān)控ha簡介主要內(nèi)容進(jìn)程管理主要內(nèi)容DatabaseglobalmemoryBufferpoolExtendedMemoryDBHEAP(LOGBUF,CATALOGCACHE_SZ)UTILITYHEAP(BACKUP,RESTOREBUFFER)PackageCacheLockListSortHeapDatabaseglobalmemoryBufferpo實例實例實例相關(guān)的命令創(chuàng)建實例db2icrtdb2icrt-ufenced_user_IDinstance_nameinUNIX刪除實例
db2idrop–finstance_name列出實例db2ilist移植實例db2imigrinstance_name
升級實例db2iupdtinstance_name實例相關(guān)的命令創(chuàng)建實例設(shè)置db2環(huán)境參數(shù)db2profileregistries操作系統(tǒng)的環(huán)境變量db2dbm配置參數(shù)db2db配置參數(shù)Db2環(huán)境參數(shù)控制著db2的操作和功能設(shè)置db2環(huán)境參數(shù)db2profileregistriDb2profileregistries可以設(shè)置不同的級別Instance/global/user/ instancenode/instanceprofile使用db2set命令,可以顯示,修改,刪除db2set–all顯示所有設(shè)置的db2set–lr顯示所有可以設(shè)置的db2db配置參數(shù)Db2profileregistries可以設(shè)置不同的操作系統(tǒng)環(huán)境變量windowsSetparam=valueunixksh和bshExportparam=valueunixcshSetenvparam=value操作系統(tǒng)環(huán)境變量windows實例和數(shù)據(jù)庫參數(shù)讀取Db2getdatabasemanagerconfigurationDb2getdatabaseconfigurationfordatabase_name設(shè)置Db2updatedbmcfgusingparamvalueDb2updatedbcfgfordb_nameusingparamvalue實例和數(shù)據(jù)庫參數(shù)讀取連接到數(shù)據(jù)庫服務(wù)器端配置設(shè)置db2profileregistry的參數(shù)DB2COMM,如:Db2setdb2comm=tcpip設(shè)置實例級參數(shù)Db2updatedbmcfgusingsvcename50000修改該參數(shù),需要重起實例連接到數(shù)據(jù)庫服務(wù)器端配置連接到數(shù)據(jù)庫客戶端可供選擇方式之一自動搜索有兩種方法:known和search需要server端的管理服務(wù)器啟動db2adminstart配置管理服務(wù)器updateadmincfgusingdiscoversearch配置實例updatedbmcfgusingdiscover_instenable配置數(shù)據(jù)庫updatedbcfgfordb_nameusingdiscover_dbenable連接到數(shù)據(jù)庫客戶端可供選擇方式之一連接到數(shù)據(jù)庫客戶端可供選擇方式之二概要文件連接到數(shù)據(jù)庫客戶端可供選擇方式之二連接到數(shù)據(jù)庫客戶端可供選擇方式之三手工配置編目節(jié)點Catalogtcpipnodenode_nameremoteip地址Server50000編目數(shù)據(jù)庫Catalogdbdb_nameasatnodenode_name連接到數(shù)據(jù)庫客戶端可供選擇方式之三db2命令交互db2cmd命令行交互模式,可以直接輸入Db2命令,操作系統(tǒng)命令前加!命令行模式,可以直接識別操作系統(tǒng)命令,db2命令前加db2執(zhí)行腳本Db2–fmyfile.clp腳本中用--做注釋db2命令交互db2cmd命令行可執(zhí)行的命令命令行可執(zhí)行的命令命令行選項和獲得幫助命令行選項Db2listcommandoptions獲得幫助Db2?Db2?CommandDb2?SqlnnnnDb2?db2nnnn命令行選項和獲得幫助命令行選項命令中心可以在控制中心調(diào)用圖形化的命令行處理器,功能類似特殊的功能可以得到sql的執(zhí)行計劃可以將sql加到腳本中命令中心可以在控制中心調(diào)用控制中心配置功能,可以顯示和修改實例和數(shù)據(jù)庫參數(shù)備份、恢復(fù)、前滾數(shù)據(jù)庫和表空間管理本地和遠(yuǎn)程數(shù)據(jù)庫,可以創(chuàng)建/刪除、顯示、編目遠(yuǎn)程數(shù)據(jù)庫和去掉編目管理存儲。創(chuàng)建、修改、刪除表空間。控制中心配置功能,可以顯示和修改實例和數(shù)據(jù)庫參數(shù)字符集Createdatabasedb_nameusingcodesetGBKterritoryzh_CN字符集Createdatabasedb_nameusi模式(schema)模式是一組數(shù)據(jù)庫對象的集合,他提供了數(shù)據(jù)庫對象的邏輯分類如果不指定模式名,則用當(dāng)前用戶名切換當(dāng)前模式可以用setcurrentschemaxxx或setcurrentsqlidxxx模式(schema)模式是一組數(shù)據(jù)庫對象的集合,他提供了數(shù)系統(tǒng)模式系統(tǒng)模式:SYSIBM基本的編目信息,不建議直接訪問SYSCAT編目信息的只讀視圖,所有人具有查詢權(quán)限,推薦的獲取編目信息的途徑SYSSTAT編目信息可更新視圖,可以影響優(yōu)化器SYSFUN用戶定義函數(shù)系統(tǒng)模式系統(tǒng)模式:建表創(chuàng)建新表:createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)
根據(jù)已有的表創(chuàng)建新表:A:createtabletab_newliketab_oldB:createtabletab_newasselectcol1,col2…fromtab_olddefinitiononly建表創(chuàng)建新表:表空間三種表空間常規(guī)表空間長表空間臨時表空間兩類表空間DMSSMS默認(rèn)產(chǎn)生三個表空間:SYSCATSPACE,USERSPACE1,TEMPSPACE1表空間三種表空間數(shù)據(jù)庫對象-視圖創(chuàng)建視圖:createviewviewnameasselectstatement刪除視圖:dropviewviewname
注:視圖唯一能修改的是引用類型列,改變列的范圍。其他定義好了都不能修改。當(dāng)視圖基于的基表drop后,視圖變?yōu)闊o效。數(shù)據(jù)庫對象-視圖創(chuàng)建視圖:createviewviewn數(shù)據(jù)庫對象-索引使用索引的主要原因有兩條:確保數(shù)據(jù)值的惟一性提高SQL查詢的性能使用索引時,能夠按一種排列好的順序更迅速地訪問數(shù)據(jù),從而避免了使用臨時存儲排序數(shù)據(jù)這一耗時的任務(wù)。創(chuàng)建索引:create[unique]indexidxnameontabname(col….)刪除索引:dropindexidxname注:索引是不可更改的,想更改必須刪除重新建。索引的使用都是從WHERE中的條件得出的,從謂詞是否使用索引可以將謂詞分為可索引謂詞和不可索引謂詞,如下圖,我們列出了索引謂詞和不可索引謂詞。數(shù)據(jù)庫對象-索引使用索引的主要原因有兩條:謂詞類型可索引注釋Col∝conY∝代表>,>=,=,<=,<,但是<>不是可索引的。Colbetweencon1andcon2Y在匹配系列中必須是最后的。ColinlistY僅對一個匹配列ColisnullYCollike‘xyz%’Y模糊匹配%在后面。Collike‘%xyz’N模糊匹配%在前面。Col1∝Col2NCol1和col2來自同一個表Col∝ExpressionN例如:c1(c1+1)/2Pred1andPred2YPred1和Pred2都是可索引的,指相同索引的列Pred1orPred2N除了(c1=aorc1=b)外,他可以被認(rèn)為是c1in(a,b)NotPred1N或者任何的等價形式:Notbetween,Notin,Notlike等等。可索引謂詞謂詞類型可索引注釋Col∝conY∝代表>,數(shù)據(jù)約束數(shù)據(jù)庫中數(shù)據(jù)的完整性或有效性極其重要。確保插入數(shù)據(jù)庫的數(shù)據(jù)的有效性非常困難,DB2提供了定義某些可并入數(shù)據(jù)庫的基于規(guī)則的約束或檢查的能力。在DB2中,可使用以下檢查來最小化將錯誤數(shù)據(jù)插入表中的風(fēng)險:可檢查一行中的一段,看它們是否符合所關(guān)聯(lián)列的數(shù)據(jù)類型和長度。例如,“Geoff”值不匹配數(shù)據(jù)類型為INTEGER的列,因而帶有該值的行會被拒絕,以這種方式來確保數(shù)據(jù)庫中數(shù)據(jù)的有效性。若表上定義了主鍵約束,表中的各行必須在一列或共同構(gòu)成主鍵的多個列中具有惟一值。若插入的行中存在與現(xiàn)有鍵相同的鍵,則新行將被拒絕。若表上已定義了惟一約束,表中的各行必須遵循此約束,即具有惟一值或構(gòu)成惟一鍵的值組合。若已定義了外鍵約束,表中各行的外鍵列或多個列必須具有與父表中一行的主鍵相匹配的值。在某些情況下,若一列或多個列定義為外鍵的一部分,而這個外鍵可為空,則空值也是可接受的。若列上已定義了檢查約束,各行必須遵循此約束。例如,EMPLOYEE表的SALARY列上的檢查約束可能會阻止應(yīng)用程序或用戶插入工資低于0的新員工記錄或行。插入表的任何salary值小于0的行都會被拒絕,從而最小化將錯誤數(shù)據(jù)插入表中的風(fēng)險。
數(shù)據(jù)約束數(shù)據(jù)庫中數(shù)據(jù)的完整性或有效性極其重要。確保插入數(shù)據(jù)庫檢查約束檢查約束數(shù)據(jù)庫鎖
數(shù)據(jù)庫鎖數(shù)據(jù)庫事務(wù)
數(shù)據(jù)庫事務(wù)數(shù)據(jù)類型數(shù)據(jù)類型NULL值盡可能設(shè)置為notnull,可以通過default的方式來解決insertnull的情況查詢isnullNULL值盡可能設(shè)置為notnull,可以通過defaulIdentity列是一個數(shù)字型的字段,當(dāng)新行插入時,db2自動產(chǎn)生一個唯一的數(shù)字一個表中只能有一個列被定義有該屬性可以定義成always或default的方式Always方式,只能有db2產(chǎn)生,不允許應(yīng)用提供值Default方式,可以由應(yīng)用提供值,不能保證唯一性Identity列是一個數(shù)字型的字段,當(dāng)新行插入時,db2自簡單查詢select[distinct]column-listfromtable-listwheregroupby[having]orderby[ase/ease]簡單查詢select[distinct]column-內(nèi)連接內(nèi)連接外連接表的分類保留行表左外連接中左邊的表。右外連接中右邊的表。全外連接中全部的表。替換NULL的表左外連接中右邊的表右外連接中左邊的表全外連接中全部的表外連接表的分類保留行表一個簡單的左外連接
一個簡單的左外連接一個簡單的右外連接一個簡單的右外連接全外連接全外連接子查詢子查詢可以由內(nèi)連接和外連接代替,推薦做法in、exist可以由內(nèi)連接代替selectprojno,projname,d.deptno,deptnamefromdepartmentdleftouterjoinprojectponp.deptno=d.deptno;selectprojno,projnamefromdepartmentwheredeptnoin(selectdeptnofromproject);notin、notexist可以由外連接代替selectprojno,projname,d.deptno,deptnamefromdepartmentdleftouterjoinprojectponp.deptno=jnameisnull;selectprojno,projnamefromdepartmentwheredeptnonotin(selectdeptnofromproject);子查詢子查詢可以由內(nèi)連接和外連接代替,推薦做法Db2中的函數(shù)內(nèi)建函數(shù)列函數(shù):avg,sum,count,操作函數(shù):+類型轉(zhuǎn)換函數(shù)decimal其他用戶自定義函數(shù)UDFDb2中的函數(shù)內(nèi)建函數(shù)1、類型轉(zhuǎn)化函數(shù):轉(zhuǎn)化為數(shù)字類型的:decimal,double,Integer,smallint,realHex(arg):轉(zhuǎn)化為參數(shù)的16進(jìn)制表示。轉(zhuǎn)化為字符串類型的:char,varcharDigits(arg):返回arg的字符串表示法,arg必須為decimal。轉(zhuǎn)化為日期時間的:date,time,timestamp2、時間日期:year,quarter,month,week,day,hour,minute,seconddayofyear(arg):返回arg在年內(nèi)的天值Dayofweek(arg):返回arg在周內(nèi)的天值days(arg):返回日期的整數(shù)表示法,從0001-01-01來的天數(shù)。midnight_seconds(arg):午夜和arg之間的秒數(shù)。Monthname(arg):返回arg的月份名。Dayname(arg):返回arg的星期。常用函數(shù)介紹1、類型轉(zhuǎn)化函數(shù):常用函數(shù)介紹煙草產(chǎn)品事業(yè)部培訓(xùn)中心3、字符串函數(shù):length,lcase,ucase,ltrim,rtrimCoalesce(arg1,arg2….):返回參數(shù)集中第一個非null參數(shù)。Concat(arg1,arg2):連接兩個字符串a(chǎn)rg1和arg2。insert(arg1,pos,size,arg2):返回一個,將arg1從pos處刪除size個字符,將arg2插入該位置。left(arg,length):返回arg最左邊的length個字符串。locate(arg1,arg2,<pos>):在arg2中查找arg1第一次出現(xiàn)的位置,指定pos,則從arg2的pos處開始找arg1第一次出現(xiàn)的位置。posstr(arg1,arg2):返回arg2第一次在arg1中出現(xiàn)的位置。repeat(arg1,num_times):返回arg1被重復(fù)num_times次的字符串。replace(arg1,arg2,arg3):將在arg1中的所有arg2替換成arg3。right(arg,length):返回一個有arg左邊length個字節(jié)組成的字符串。space(arg):返回一個包含arg個空格的字符串。substr(arg1,pos,<length>):返回arg1中pos位置開始的length個字符,如果沒指定length,則返回剩余的字符。常用函數(shù)介紹煙草產(chǎn)品事業(yè)部培訓(xùn)中心3、字符串函數(shù):常用函數(shù)介紹4、數(shù)學(xué)函數(shù):Abs,count,max,min,sumCeil(arg):返回大于或等于arg的最小整數(shù)。Floor(arg):返回小于或等于參數(shù)的最小整數(shù)。Mod(arg1,arg2):返回arg1除以arg2的余數(shù),符號與arg1相同。Rand():返回1到1之間的隨機數(shù)。Power(arg1,arg2):返回arg1的arg2次方。Round(arg1,arg2):四舍五入截斷處理,arg2是位數(shù),如果arg2為負(fù),則對小數(shù)點前的數(shù)做四舍五入處理。Sigh(arg):返回arg的符號指示符。-1,0,1表示。truncate(arg1,arg2):截斷arg1,arg2是位數(shù),如果arg2是負(fù)數(shù),則保留arg1小數(shù)點前的arg2位。5、其他:nullif(arg1,arg2):如果2個參數(shù)相等,則返回null,否則,返回參數(shù)1煙草產(chǎn)品事業(yè)部培訓(xùn)中心常用函數(shù)介紹4、數(shù)學(xué)函數(shù):煙草產(chǎn)品事業(yè)部培訓(xùn)中心常用函數(shù)介紹數(shù)據(jù)庫的備份數(shù)據(jù)庫備份
是數(shù)據(jù)庫的一個完整的副本。除了數(shù)據(jù)外,備份副本還包含關(guān)于表空間、容器、數(shù)據(jù)庫配置、日志控制文件和恢復(fù)歷史文件的信息。注意,備份不會存儲數(shù)據(jù)庫管理器配置文件或注冊表變量。只有數(shù)據(jù)庫配置文件才會得到備份。要執(zhí)行備份,需要SYSADM、SYSCTRL或SYSMAINT權(quán)限
數(shù)據(jù)庫的備份數(shù)據(jù)庫備份離線備份要為數(shù)據(jù)庫sample執(zhí)行完整的離線備份,并將備份副本存儲在d:\mybackups目錄中,可以使用以下命令: BACKUPDATABASEsampleTOd:\mybackups要使用其他選項為數(shù)據(jù)庫sample執(zhí)行完整離線備份,可以使用以下命令: (1)BACKUPDATABASEsample (2)TO/db2backup/dir1,/db2backup/dir2 (3)WITH4BUFFERS (4)BUFFER4096 (5)PARALLELISM2我們來更仔細(xì)觀察前面的命令: 1.表明要備份的數(shù)據(jù)庫的名稱(或別名)。 2.指定用于存儲備份的位置。 3.表明在備份操作期間可以使用多少個內(nèi)存緩沖區(qū)。使用多個緩沖區(qū)可以提高性能。 4.表明每個緩沖區(qū)的大小。 5.決定使用多少媒介讀/寫進(jìn)程/線程來進(jìn)行備份。離線備份要為數(shù)據(jù)庫sample執(zhí)行完整的離線備份,并將備數(shù)據(jù)庫日志DB2事務(wù)日志對于恢復(fù)來說是至關(guān)重要的。它們跟蹤數(shù)據(jù)庫對象和數(shù)據(jù)上發(fā)生的變化。主日志文件和輔助日志文件 主日志文件是在建立第一個數(shù)據(jù)庫連接或者數(shù)據(jù)庫活動時立即分配的。輔助日志文件是在需要時動態(tài)分配的?;顒尤罩?/p>
如果以下兩個條件之一得到滿足,則一個日志被認(rèn)為是活動的(active):它包含關(guān)于尚未被提交或回滾的事務(wù)的信息。它包含關(guān)于已經(jīng)被提交但是其更改還沒有被寫(具體化)到數(shù)據(jù)庫磁盤的事務(wù)的信息。在線歸檔日志
離線歸檔日志
數(shù)據(jù)庫日志DB2事務(wù)日志對于恢復(fù)來說是至關(guān)重要的。它們跟蹤數(shù)據(jù)庫日志1.配置日志空間
DB2數(shù)據(jù)庫通過日志文件維護數(shù)據(jù)的完整性和一致性。DB2數(shù)據(jù)庫的日志空間可通過如下公式計算: 日志空間=(主日志文件+輔助日志文件)*日志文件尺寸 其中: 主日志文件由參數(shù)LOGPRIMARY控制, 二級日志文件由參數(shù)LOGSECOND控制 日志文件尺寸由參數(shù)LOGFILSIZ控制2.正確的處理日志滿 根據(jù)實際的情況配置以上相關(guān)參數(shù)。 如果出現(xiàn)日志空間滿的情況,DB2會將系統(tǒng)掛起。這時,應(yīng)該增加LOGSECOND參數(shù),而不要嘗試db2stopforce或者kill。數(shù)據(jù)庫日志1.配置日志空間啟用歸檔日志一個數(shù)據(jù)庫的日志記錄的類型是由數(shù)據(jù)庫參數(shù)LOGARCHMETH1決定的。當(dāng)LOGARCHMETH1為OFF(默認(rèn)值)時,歸檔日志記錄被禁用,循環(huán)日志記錄被啟用。為了啟用歸檔日志記錄,可以將LOGARCHMETH1設(shè)置為以下值中的任何一個值: LOGRETAIN:日志文件將被保留在活動日志目錄中 USEREXIT:日志的歸檔和檢索是由用戶提供的用戶出口程序自動執(zhí)行的,這個出口程序必須由db2uext2調(diào)用。這個程序用于將在線歸檔日志移動到與活動日志目錄不同的一個目錄中,或者移動到另一個媒介上。當(dāng)在ROLLFORWARD操作期間需要某些離線歸檔日志時,這個程序還可以用于將離線歸檔日志取出到活動日志目錄中。在Windows下,db2uext2必須存儲在sqllib\bin目錄中,在UNIX下,db2uext2必須存儲在sqllib/adm目錄中 DISK:directory_name:與USEREXIT使用相同的算法。DB2不調(diào)用用戶出口程序,而是自動將日志文件從活動日志目錄歸檔到指定的目錄 TSM:[managementclassname]:與USEREXIT使用相同的算法。日志被歸檔到本地TivoliStorageManger(TSM)服務(wù)器上。managementclassname參數(shù)是可選的。如果沒有指定該參數(shù),則使用默認(rèn)的管理類 VENDOR:library_name:與USEREXIT使用相同的算法。日志是使用指定供應(yīng)商的庫來歸檔的
由于向后兼容的原因,數(shù)據(jù)庫配置文件仍然包含參數(shù)LOGRETAIN和USEREXIT。從8.2版開始,這兩個參數(shù)已經(jīng)被LOGARCHMETH1取代。如果更新USEREXIT或LOGRETAIN參數(shù),那么LOGARCHMETH1將自動被更新,反之亦然。啟用歸檔日志一個數(shù)據(jù)庫的日志記錄的類型是由數(shù)據(jù)庫參數(shù)LOG在線備份在線備份 BACKUPDATABASEsampleONLINETO/dev/rdir1,/dev/rdir2由于在線備份允許用戶在執(zhí)行備份的同時訪問數(shù)據(jù)庫,因此這些用戶作出的更改很可能不會存儲在備份副本中。因此,僅僅憑借在線備份還不足以進(jìn)行恢復(fù),另外還需要備份操作期間收集到的相應(yīng)的日志。當(dāng)在線備份完成時,DB2強制關(guān)閉當(dāng)前活動日志(并將其歸檔),因此很容易在備份完成時收集當(dāng)前活動日志。為了將日志也備份到備份副本中,可以使用BACKUPDATABASE命令的INCLUDELOG選項。這樣可以確保即使丟失了日志,也仍然可以使用備份鏡像中包含的日志來恢復(fù)到最小的時間點上。例如,要對sample數(shù)據(jù)庫和日志進(jìn)行在線備份,并以/dev/rdir1作為目標(biāo)目錄,可以發(fā)出: BACKUPDATABASEsampleONLINETO/dev/rdir1INCLUDELOGS
在線備份在線備份數(shù)據(jù)庫的恢復(fù)使用一個備份文件作為輸入,輸出是一個新的或已有的數(shù)據(jù)庫。要恢復(fù)到已有的數(shù)據(jù)庫,需要SYSADM、SYSCTRL或SYSMAINT權(quán)限。要恢復(fù)到新的數(shù)據(jù)庫,則需要SYSADM或SYSCTRL權(quán)限。數(shù)據(jù)庫的恢復(fù)使用一個備份文件作為輸入,輸出是一個新的或已有的數(shù)據(jù)庫恢復(fù)例子要執(zhí)行sample數(shù)據(jù)庫的恢復(fù),可以使用以下命令: (1)RESTOREDATABASEsample (2)FROMC:\DBBACKUP (3)TAKENAT20190314131259(4)WITHOUTROLLINGFORWARD(5)WITHOUTPROMPTING上面的例子中: 1.表明要恢復(fù)的數(shù)據(jù)庫鏡像的名稱。 2.指定要從中讀取輸入備份文件的位置。 3.如果該目錄中有多個備份鏡像,該選項將基于時間戳(備份名稱的一部分)標(biāo)識特定的備份。 4.如果一個數(shù)據(jù)庫啟用了歸檔日志記錄,那么當(dāng)該數(shù)據(jù)庫被恢復(fù)時,它將自動被置于rollforwardpending狀態(tài)。這一行告訴DB2不要將該數(shù)據(jù)庫置于rollforwardpending狀態(tài)。 5.當(dāng)執(zhí)行RESTORE時,您將看不到任何提示。數(shù)據(jù)庫恢復(fù)例子要執(zhí)行sample數(shù)據(jù)庫的恢復(fù),可以使用以包括日志文件的恢復(fù)例子備份鏡像中包括日志文件,那么可以使用RESTOREDATABASE命令的LOGTARGET選項恢復(fù)日志文件。為了使用C:\DBBACKUP目錄中的備份鏡像恢復(fù)SAMPLE數(shù)據(jù)庫,并將日志文件恢復(fù)到C:\DB2\NODE0000\SQL00001\SQLOGDIR目錄,可以發(fā)出: RESTOREDATABASEsampleFROMC:\DBBACKUPLOGTARGETC:\DB2\NODE0000\SQL00001\SQLOGDIR也可以通過使用LOGS關(guān)鍵字只恢復(fù)日志文件,而不恢復(fù)數(shù)據(jù)庫: RESTOREDATABASEsampleLOGSFROMC:\DBBACKUPLOGTARGETC:\DB2\NODE0000\SQL00001\SQLOGDIR包括日志文件的恢復(fù)例子備份鏡像中包括日志文件,那么可以使用Db2move例子Db2movedbnameexport–sndb2inst1-uusername–ppasswordDb2movedbnameimport–sndb2inst1-uusername–ppasswordDb2move例子Db2movedbnameexportDb2exportEXPORT實用程序使用一條SQLSELECT語句或XQUERY語句將數(shù)據(jù)從數(shù)據(jù)庫表提取到一個文件中。數(shù)據(jù)可以被導(dǎo)出到DEL、IXF或WSF文件中。建議在export中包括MESSAGES子句,以捕獲導(dǎo)出過程中遇到的錯誤、警告和包含有用信息的消息。要想成功地調(diào)用EXPORT實用程序,必須擁有SYSADM或DBADM權(quán)限,或者擁有EXPORT命令中所訪問的表或視圖上的CONTROL或SELECT特權(quán)。
一個簡單的導(dǎo)出的例子。下面的命令將SELECT語句的結(jié)果導(dǎo)出到一個DEL格式的文件中。消息文件msg.out用于記錄有用的信息和遇到的錯誤或警告: EXPORTTOmyfile.delOFDELMESSAGESmsg.outSELECT,staff.dept,org.locationFROMorg,staffWHEREorg.deptnumb=staff.dept;Db2exportEXPORT實用程序使用一條SQLDb2import語法IMPORT實用程序用一個輸入文件將數(shù)據(jù)填充到一個表中,輸入文件的文件類型可以是ASC、DEL、IXF或WSF。目標(biāo)是一個表、一個類型化表(typedtable)或者一個視圖。但是,不能導(dǎo)入到系統(tǒng)表、臨時表和物化查詢表。例子: IMPORTFROMemp.ixfOFIXFMESSAGESmsg.outCREATEINTOemployeeINdatatbspINDEXINindtbspDb2import語法IMPORT實用程序用一個輸入Db2import選項下面顯示的IMPORT命令具有五個不同的選項:IMPORTFROMfile_nameOFfile_typeMESSAGESmessage_file[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基坑清淤除草施工方案
- TSJNX 001-2024 低碳近零碳園區(qū)評價規(guī)范
- 二零二五年度交通行業(yè)勞動合同簽訂與交通安全責(zé)任協(xié)議
- 二零二五年度土地整治與開發(fā)項目承包租賃合同
- 2025年度水利科學(xué)研究院事業(yè)編聘用合同
- 二零二五年度知名演員經(jīng)紀(jì)代理合同
- 二零二五年度企業(yè)防雷安全技術(shù)服務(wù)合同
- 二零二五年度高端雞蛋養(yǎng)殖基地合作協(xié)議模板帶
- 沈陽正規(guī)聘用總經(jīng)理2025年度職責(zé)與待遇合同
- 二零二五年金融創(chuàng)新項目合作協(xié)議書
- 樂沛LOTSPLAY德國HABA邏輯思維課程介紹手冊
- 瘧原蟲鏡檢技術(shù)-血片制作、染色及瘧原蟲形態(tài)鑒別課件
- 2例不良事件根因分析
- GB 1523-2013綿羊毛
- 2004年考研英語一真題及答案
- 劉半農(nóng)《教我如何不想她》課件
- 前行第07節(jié)課(僅供參考)課件
- 博弈論與信息經(jīng)濟學(xué)課件
- 界面砂漿檢測報告
- 浙江鞋業(yè)出口貿(mào)易研究
- 模塊二項目二觀察力課件
評論
0/150
提交評論