Sybase數(shù)據(jù)庫(kù)維護(hù)篇-高級(jí)_第1頁(yè)
Sybase數(shù)據(jù)庫(kù)維護(hù)篇-高級(jí)_第2頁(yè)
Sybase數(shù)據(jù)庫(kù)維護(hù)篇-高級(jí)_第3頁(yè)
Sybase數(shù)據(jù)庫(kù)維護(hù)篇-高級(jí)_第4頁(yè)
Sybase數(shù)據(jù)庫(kù)維護(hù)篇-高級(jí)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

培訓(xùn)計(jì)劃

培訓(xùn)內(nèi)容培訓(xùn)目標(biāo)培訓(xùn)對(duì)象培訓(xùn)內(nèi)容Sybase數(shù)據(jù)庫(kù)簡(jiǎn)介Sybase產(chǎn)品(ASA,ASE,IQ)ASE它是基于客戶(hù)/服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)OLTP1:OracleServer是一個(gè)真正的多進(jìn)程數(shù)據(jù)庫(kù)引擎,Sybase數(shù)據(jù)庫(kù)管理系統(tǒng)采用的是單進(jìn)程多線(xiàn)程的引擎結(jié)構(gòu)。2:Sybase的數(shù)據(jù)庫(kù)引擎還代替操作系統(tǒng)來(lái)管理一部分硬件資源,如端口、內(nèi)存、硬盤(pán),繞過(guò)了操作系統(tǒng)這一環(huán)節(jié),提高了性能。數(shù)據(jù)庫(kù)(raid0,1,5)數(shù)據(jù)庫(kù)設(shè)備分配結(jié)構(gòu)數(shù)據(jù)庫(kù)page分配結(jié)構(gòu)Sybase的多庫(kù)結(jié)構(gòu)

安裝Sybase數(shù)據(jù)庫(kù)時(shí)自動(dòng)生成的下列系統(tǒng)數(shù)據(jù)庫(kù):●主數(shù)據(jù)庫(kù)master:數(shù)據(jù)庫(kù)全面控制和管理用戶(hù)數(shù)據(jù)庫(kù)以及SQLSERVER上的一切操作?!衲P蛿?shù)據(jù)庫(kù)model:為新建的用戶(hù)數(shù)據(jù)庫(kù)提供一個(gè)原形●系統(tǒng)過(guò)程數(shù)據(jù)庫(kù)sybsystemprocs:SYBASE的系統(tǒng)存儲(chǔ)過(guò)程被儲(chǔ)存在這個(gè)數(shù)據(jù)庫(kù)中●臨時(shí)數(shù)據(jù)庫(kù)tempdb:作為臨時(shí)表和其他的臨時(shí)工作空間提供一個(gè)存儲(chǔ)區(qū)域。TEMPDB的空間為全體數(shù)據(jù)庫(kù)用戶(hù)共享也可選擇下列數(shù)據(jù)庫(kù):●安全審核數(shù)據(jù)庫(kù)sybsecurity:包含SQLSERVER的審計(jì)系統(tǒng)●示例數(shù)據(jù)庫(kù)pubs2:這是一個(gè)樣本庫(kù)

●命令語(yǔ)法數(shù)據(jù)庫(kù)sybsyntax:為用戶(hù)提供聯(lián)機(jī)幫助用戶(hù)數(shù)據(jù)庫(kù)用戶(hù)數(shù)據(jù)庫(kù)是指用Createdatabase命令創(chuàng)建的數(shù)據(jù)庫(kù)。使用”use數(shù)據(jù)庫(kù)名”來(lái)切換不同的數(shù)據(jù)庫(kù)執(zhí)行sp_changedbowner改變數(shù)據(jù)庫(kù)的屬主關(guān)系建議事務(wù)日志放在單獨(dú)的設(shè)備上(log)master庫(kù)

它是管理和控制用戶(hù)數(shù)據(jù)庫(kù)以及維護(hù)服務(wù)器正常運(yùn)行的核心數(shù)據(jù)庫(kù),它包含許多系統(tǒng)表和系統(tǒng)過(guò)程,從總體上控制用戶(hù)數(shù)據(jù)庫(kù)和SQLServer的操作,構(gòu)成了SYBASE系統(tǒng)的數(shù)據(jù)字典,它保存了大量的系統(tǒng)信息,如服務(wù)器配置、用戶(hù)、設(shè)備等。在master數(shù)據(jù)庫(kù)中不允許普通用戶(hù)在其中創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,否則會(huì)使得master數(shù)據(jù)庫(kù)的事務(wù)日志很快變滿(mǎn)。如果事務(wù)日志用盡,就無(wú)法使用dumptransaction命令釋放master數(shù)據(jù)庫(kù)中的空間。master數(shù)據(jù)庫(kù)主要記錄信息為:

登錄帳號(hào)(SQL服務(wù)器用戶(hù)名);syslogins,sysremolelogins正在執(zhí)行的過(guò)程;sysprocesses可修改的環(huán)境變量;sysconfigures系統(tǒng)錯(cuò)誤信息;sysmessagesSQL服務(wù)器上每個(gè)數(shù)據(jù)庫(kù)的信息;sysdatabases每個(gè)數(shù)據(jù)庫(kù)占用的存儲(chǔ)空間;sysusages系統(tǒng)上安裝的設(shè)備及磁帶信息;sysdevices活動(dòng)鎖信息;syslocksTEMPDB庫(kù)

它是個(gè)臨時(shí)數(shù)據(jù)庫(kù),為服務(wù)器運(yùn)行與處理提供一個(gè)共享的存儲(chǔ)區(qū)域,如groupby和orderby的中間結(jié)果就存放在這里。Tempdb的空間為服務(wù)器中所有數(shù)據(jù)庫(kù)的所有用戶(hù)所共享。每次重啟SQLServer,服務(wù)器的一個(gè)自動(dòng)進(jìn)程都拷貝model數(shù)據(jù)庫(kù)到tempdb數(shù)據(jù)庫(kù),并清除tempdb中原來(lái)的內(nèi)容。因此tempdb中的用戶(hù)表都是臨時(shí)的。臨時(shí)表分為兩類(lèi):可共享的和不可共享的。不可共享的臨時(shí)表在由createtable中將符號(hào)#置于表名之前創(chuàng)立;可共享的臨時(shí)表通過(guò)createtable中指定表名前綴tempdb..而創(chuàng)立。不可共享的臨時(shí)表SQLServer自動(dòng)為其添加數(shù)字后綴名,且它只存在于當(dāng)前會(huì)話(huà)中數(shù)據(jù)庫(kù)有關(guān)概念(segment/device)數(shù)據(jù)庫(kù)設(shè)備從邏輯上被劃分為數(shù)據(jù)庫(kù)段以允許將某一特定的對(duì)象放置在指定的段上(創(chuàng)建對(duì)象時(shí)指定),一數(shù)據(jù)庫(kù)設(shè)備可擁有多達(dá)192個(gè)段,一段可使用255個(gè)邏輯設(shè)備上的存儲(chǔ)空間。當(dāng)用戶(hù)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)時(shí),SQLSERVER會(huì)自動(dòng)在該數(shù)據(jù)庫(kù)中創(chuàng)建三個(gè)段:SYSTEM、LOGSEGMENT、DEFAULT,這三個(gè)段分別用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)的系統(tǒng)表、事務(wù)日志和其他數(shù)據(jù)庫(kù)對(duì)象提高性能:處于不同磁盤(pán)設(shè)備上的段可以并行地讀寫(xiě);處理大表:利用段,可以將一個(gè)大表分段放在獨(dú)立的物理設(shè)備上。所謂數(shù)據(jù)庫(kù)設(shè)備,不是指一個(gè)可識(shí)別的物理設(shè)備,而是指用于存儲(chǔ)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象的磁盤(pán)原始分區(qū)或操作系統(tǒng)文件。初始化數(shù)據(jù)庫(kù)設(shè)備使用DISKINIT命令:DISKINITNAME=設(shè)備名,PHYSNAME=物理設(shè)備名,VDEVNO=虛擬設(shè)備號(hào),SIZE=塊數(shù)數(shù)據(jù)庫(kù)有關(guān)概念(segment/device)SybasesegmentsTable創(chuàng)建于segment上每個(gè)db最多可有32個(gè)segments創(chuàng)建段:sp_addsegment‘seg',‘db_name',‘device_name‘注:創(chuàng)建表需要指定索引和數(shù)據(jù)的存放段名稱(chēng)Device和segment關(guān)系:?jiǎn)蝹€(gè)device上可以創(chuàng)建多個(gè)segment,單個(gè)segment可以跨越多個(gè)deviceTable和segment關(guān)系: 單個(gè)segment上創(chuàng)建多個(gè)table,單個(gè)table可以跨越多個(gè)segment(分區(qū)表)。數(shù)據(jù)庫(kù)對(duì)象(1)表(Tables)(2)視圖(Views):視圖是一個(gè)虛擬表,其內(nèi)容由查詢(xún)定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱(chēng)的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫(kù)中以存儲(chǔ)的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來(lái)自由定義視圖的查詢(xún)所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成。對(duì)其中所引用的基礎(chǔ)表來(lái)說(shuō),視圖的作用類(lèi)似于篩選。作用:安全;可使復(fù)雜的查詢(xún)易于理解和使用

Index與性能索引(index):索引就是加快檢索表中數(shù)據(jù)的方法。在數(shù)據(jù)庫(kù)中,索引也允許數(shù)據(jù)庫(kù)程序迅速地找到表中的數(shù)據(jù),而不必Tablescan。

1.索引可以加快數(shù)據(jù)庫(kù)的檢索速度2.索引降低了數(shù)據(jù)庫(kù)插入、修改、刪除等維護(hù)任務(wù)的速度3.索引創(chuàng)建在表上,不能創(chuàng)建在視圖上

4.索引既可以直接創(chuàng)建(createindex),也可以間接創(chuàng)建(主鍵約束或者唯一性鍵約束時(shí))Sybase支持三種不同類(lèi)型的索引,一是復(fù)合索引,即包含幾個(gè)列的索引;二是唯一性索引,即任意兩行中的索引列不能有相同的取值;三是簇類(lèi)索引(Clusteredindexes)和非簇類(lèi)索引(Nonclusteredindexs),Index與性能-2a)普通索引(createindex)和唯一性索引(createUNIQUEindex)b)單個(gè)索引和組合索引(最多16個(gè)字段組成)c)聚簇索引CLUSTERED和非聚簇索引UNCLUSTERED:聚簇索引:即物理索引,與基表的物理順序相同(不斷重排表行的物理順序以使其與邏輯索引順序相一致),數(shù)據(jù)值的順序總是按照順序排列.即索引樹(shù)的葉級(jí)頁(yè)包含實(shí)際的數(shù)據(jù).非聚簇索引:索引順序與數(shù)據(jù)物理排列順序無(wú)關(guān),即葉級(jí)頁(yè)指向表中的記錄.,一個(gè)表最多可建249個(gè)非聚簇索引.可以這么理解聚簇索引:索引的葉節(jié)點(diǎn)就是數(shù)據(jù)節(jié)點(diǎn)。而非聚簇索引的葉節(jié)點(diǎn)仍然是索引節(jié)點(diǎn),只不過(guò)有一個(gè)指針指向?qū)?yīng)的數(shù)據(jù)塊.每個(gè)表最多只能建立一個(gè)簇類(lèi)索引,非簇類(lèi)索引則可建立多個(gè)。與非簇類(lèi)索引相比,簇類(lèi)索引的檢索速度要快。應(yīng)當(dāng)在建立任何非簇類(lèi)索引以前建立簇類(lèi)索引。Index與性能-31:選擇Clustered索引的建議:主鍵時(shí)常作為where子句的條件

某一列經(jīng)常以這樣的格式出現(xiàn)在where表達(dá)式中(x<=column<="y)"

某一列非常頻繁地被訪(fǎng)問(wèn)

某列被用作orderby或groupby某列很少被改寫(xiě)

某列常出現(xiàn)在join中。

2:選擇Non-Clustered索引的建議:某列常用于Aggregate函數(shù)(如Sum,)

某列常用于join,orderby,groupby。

查尋檢索出的數(shù)據(jù)不超過(guò)表中數(shù)據(jù)量的20%Index與性能-4維護(hù)索引統(tǒng)計(jì)表:

數(shù)據(jù)庫(kù)擁有者必須用命令維護(hù)統(tǒng)計(jì)表。updatestatisticstable_name[index_name]

索引優(yōu)化調(diào)整

用這條命令可以改善創(chuàng)建索引的性能,減少建索引所用的時(shí)間。在SQLSERVER11.x版本中可以調(diào)整如下參數(shù):sp_configure"extenti/obuffers",nnnn帶來(lái)的影響是增加了extenti/obuffers大小,在SQLServer使用內(nèi)存不變情況下,減少了procedure和datacathe,而且同一時(shí)刻僅有一個(gè)用戶(hù)能用到extentbuffer。性能

sp_configure'maxmemory'先調(diào)整內(nèi)存值重新啟動(dòng)serversp_cacheconfig‘defaultdatacache’,‘500000’調(diào)整‘defaultdatacache‘為500Msybase目錄結(jié)構(gòu)它是個(gè)臨時(shí)數(shù)據(jù)庫(kù),為服務(wù)器運(yùn)行與處理提供一個(gè)共享的存儲(chǔ)區(qū)域,如groupby和orderby的中間結(jié)果就存放在這里。Tempdb的空間為服務(wù)器中所有數(shù)據(jù)庫(kù)的所有用戶(hù)所共享。每次重啟SQLServer,服務(wù)器的一個(gè)自動(dòng)進(jìn)程都拷貝model數(shù)據(jù)庫(kù)到tempdb數(shù)據(jù)庫(kù),并清除tempdb中原來(lái)的內(nèi)容。因此tempdb中的用戶(hù)表都是臨時(shí)的。臨時(shí)表分為兩類(lèi):可共享的和不可共享的。不可共享的臨時(shí)表在由createtable中將符號(hào)#置于表名之前創(chuàng)立;可共享的臨時(shí)表通過(guò)createtable中指定表名前綴tempdb..而創(chuàng)立。不可共享的臨時(shí)表SQLServer自動(dòng)為其添加數(shù)字后綴名,且它只存在于當(dāng)前會(huì)話(huà)中由于這些表都是臨時(shí)的,所以每當(dāng)用戶(hù)退出或系統(tǒng)失敗,這些表都將消失。數(shù)據(jù)庫(kù)屬性數(shù)據(jù)庫(kù)屬性:語(yǔ)法:sp_dboption[dbname,optin_name,{true|false}]aborttranonlogfull日志滿(mǎn)時(shí)事物中斷

allownullsbydefault允許缺省值為空

dbouseonly只有庫(kù)的屬主才可以使用此庫(kù)

ddlintran是否允許在事物中使用DDL語(yǔ)句

nochkptonrecovery庫(kù)恢復(fù)時(shí)是否做checkpoint

nofreespaceacctg是否計(jì)算段的空閑空間(可以加快庫(kù)的恢復(fù)時(shí)間)

readonly只讀

selectinto/bulkcopy/pllsort是否允許BCP批量copy

singleuser是否只允許單用戶(hù)訪(fǎng)問(wèn)

trunclogonchkpt

數(shù)據(jù)庫(kù)全局變量sybase的全局變量格式為@@變量名Select@@error:檢查最近執(zhí)行的語(yǔ)句錯(cuò)誤狀態(tài)=0:成功,否則為錯(cuò)誤號(hào)Select@@rownum:上一個(gè)語(yǔ)句影響的行數(shù)Select@@sqlstatus:上次的語(yǔ)句狀態(tài)信息Select@@servername:服務(wù)器名Select@@version:版本

Select@@language:使用的語(yǔ)言

Select@@spid:當(dāng)前DBServer服務(wù)進(jìn)程ID

Select@@max_connections:可連接的最大連接數(shù)

Select@@identity:上次用insert時(shí)插入表的identiy值Select@@client_csname:客戶(hù)端的字符集名稱(chēng)Select@@total_read/write:自啟動(dòng)以來(lái)sqlserver從磁盤(pán)讀/寫(xiě)的頁(yè)數(shù)Sybase事務(wù)日志-1每一個(gè)數(shù)據(jù)庫(kù),無(wú)論是系統(tǒng)數(shù)據(jù)庫(kù),還是用戶(hù)數(shù)據(jù)庫(kù),都有自己的transactionlog,每個(gè)庫(kù)都有syslogs表。Log記錄用戶(hù)對(duì)數(shù)據(jù)庫(kù)修改的操作,所以如果不用命令清除,log會(huì)一直增長(zhǎng)直至占滿(mǎn)空間。清除log可用dumptransaction命令;或者開(kāi)放數(shù)據(jù)庫(kù)選項(xiàng)trunclogonchkpt,數(shù)據(jù)庫(kù)會(huì)每隔一段間隔自動(dòng)清除log。管理好數(shù)據(jù)庫(kù)log是用戶(hù)操作數(shù)據(jù)庫(kù)必須考慮的一面。

事務(wù)在運(yùn)行過(guò)程中,SQLServer把事務(wù)開(kāi)始、事務(wù)結(jié)束以及對(duì)數(shù)據(jù)庫(kù)的插入、刪除和更新等每一個(gè)操作作為一個(gè)日志記錄存放到事務(wù)日志中。事務(wù)中的更新操作首先在數(shù)據(jù)庫(kù)緩沖區(qū)(內(nèi)存)中進(jìn)行,緩沖區(qū)分別有用來(lái)記錄操作活動(dòng)的數(shù)據(jù)頁(yè)(datapage)和日志頁(yè)(logpage)。當(dāng)運(yùn)行到committran時(shí),日志頁(yè)首先從緩沖區(qū)寫(xiě)到磁盤(pán)上,而后數(shù)據(jù)頁(yè)從緩沖區(qū)寫(xiě)到磁盤(pán)上,即遵循“先與日志(write_aheadlog)”的原則,這樣保證出現(xiàn)故障的情況下,通過(guò)日志能夠得到最大限度的恢復(fù)?;謴?fù)必須撤消發(fā)生故障時(shí)還未提交的事務(wù)。Sybase事務(wù)日志-2Transactionlogs和checkpoint進(jìn)程

heckpoint命令的功能是強(qiáng)制所有“臟”頁(yè)(自上次寫(xiě)入數(shù)據(jù)庫(kù)設(shè)備后被更新過(guò)的頁(yè))寫(xiě)入數(shù)據(jù)庫(kù)設(shè)備。自動(dòng)的checkpoint間隔是由SQLServer根據(jù)系統(tǒng)活動(dòng)和系統(tǒng)表sysconfigures中的恢復(fù)間隔(recoveryinterval)值計(jì)算出的。Transactionlog的大小update,insert和delete的頻率

每個(gè)transaction中數(shù)據(jù)的修改量

SQLServer系統(tǒng)參數(shù)recoveryinterval值

log是否存到介質(zhì)上用于數(shù)據(jù)庫(kù)恢復(fù)

檢測(cè)log的大小在syslogs表用sp_spaceused命令Sp_helpsegment“l(fā)ogsegment”Sybase事務(wù)日志-3log的清除

執(zhí)行命令dumptransaction截?cái)嗳罩?:dumptransactionwithtruncate_only命令和trunclogonchkpt一樣,只是清除log而不保留log到備份設(shè)備上。2:dumptransactionwithno_log也可以截?cái)嗳罩救裟阍趯?duì)數(shù)據(jù)庫(kù)的修改發(fā)生時(shí)使用dumptransactionwithno_log,你就會(huì)冒整個(gè)數(shù)據(jù)庫(kù)崩潰的風(fēng)險(xiǎn)。在多數(shù)情況下,它們被反映成813或605錯(cuò)誤。為了在數(shù)據(jù)庫(kù)被修改時(shí),刪除transactionlog中的不活躍部分可使用dumptransactionwithtruncate_only。3:正常應(yīng)該是需要備份,應(yīng)做dumptransactiondatabase_nametodumpdevice。Sybase事務(wù)日志-4管理大的transactions有些操作是大批量地修改/bcp數(shù)據(jù),log增長(zhǎng)速度十分快,未完成之前就可能使log滿(mǎn),引起1105錯(cuò)誤1:為避免這些情況,我們可以把這個(gè)大的transaction分成幾個(gè)小的transactions,并執(zhí)行dumptransaction動(dòng)作。例如:1>usemaster

2>go

1>sp_dboptiondatabase_name,trunc,true

2>go

1>usedatabase_name

2>go

1>checkpoint

2>go

Bcp...-b100(onunix)

一個(gè)批執(zhí)行100行拷貝Sybase事務(wù)日志-5增加閾值(sp_addthreshold)例如:sp_addthresholdpubs2,logsegment,200,dump_transaction

其中,存儲(chǔ)過(guò)程定義為:createproceduredump_transaction

@dbnamevarchar(30),

@segmentnamevarchar(30),

@space_leftint,

@statusint

as

dumptransaction@dbnameto"/dev/rmtx"那么,當(dāng)日志段上可用空間小于200頁(yè)時(shí),SQLServer運(yùn)行存儲(chǔ)過(guò)程dump_transaction,將pubs2數(shù)據(jù)庫(kù)的日志轉(zhuǎn)儲(chǔ)到另一臺(tái)設(shè)置上。數(shù)據(jù)庫(kù)鎖

數(shù)據(jù)庫(kù)行/頁(yè)/表鎖為了在使用的一個(gè)表中改變加鎖類(lèi)型,可以采用如下的句法格式:altertable<tablename>lock[allpages|datapages|datarows]在索引頁(yè)面中不會(huì)破壞事務(wù)加鎖。相反,而是采用了一種稱(chēng)之為鎖存的機(jī)制。鎖存是一種類(lèi)似于旋轉(zhuǎn)鎖(spinlocks)的同步方法sp_configurenumberofpre-allocatedextent設(shè)置為16也將對(duì)系統(tǒng)性能有明顯的積極的效果,減小鎖資源的競(jìng)爭(zhēng)。共享鎖、排他鎖,死鎖數(shù)據(jù)庫(kù)的鎖存技術(shù)將那些在索引頁(yè)中發(fā)生死鎖的情形盡量排除掉。減小死鎖的方法:1:盡量對(duì)數(shù)據(jù)多次并發(fā)訪(fǎng)問(wèn)2:配置“帶有加鎖方式的讀提交”("readcommittedwithlock”),并可用如下的命令加以配置:sp_configure‘readcommittedwithlock’,0|1數(shù)據(jù)庫(kù)死鎖

可能發(fā)生的死鎖的原因:1:插入與非群聚性的索引訪(fǎng)問(wèn)2:數(shù)據(jù)更新的范圍當(dāng)?shù)谝粋€(gè)用戶(hù)到達(dá)所確定的頁(yè)面邊緣,即該范圍即將終止,下一批所組塊并妨礙的頁(yè)面范圍即將開(kāi)始之時(shí),就可能發(fā)生死鎖。3:按照不同順序訪(fǎng)問(wèn)表即使訪(fǎng)問(wèn)行是不同的,對(duì)表按照任何不一致的順序進(jìn)行訪(fǎng)問(wèn),也會(huì)意味著可能發(fā)生死鎖。4:如何查鎖阻塞Sp_whosp_lock,select*fromsysprocesseswhereblocked>05:如何查鎖的表名

sp_lock查其中table_id=XXXXXXX對(duì)應(yīng)的表select*fromsysobjectswhereid=XXXXXXX數(shù)據(jù)庫(kù)的備份和恢復(fù)

數(shù)據(jù)庫(kù)的備份:必須啟動(dòng)backupserver由于文件的大小超出了操作系統(tǒng)的用戶(hù)最大文件限制。而有些操作系統(tǒng)不支持大于2GB的文件,這時(shí)可以使用BackupServer將一個(gè)數(shù)據(jù)庫(kù)后備到多個(gè)文件中。dumpdatabasepubs2to"/usr/sybase/pubs2_dump.1"stripeon"/usr/sybase/pubs2_dump.2"stripeon"/usr/sybase/pubs2_dump.3"go

這種方法還可以提高后備及恢復(fù)的速度,但注意恢復(fù)也必須用相應(yīng)多的設(shè)備。例如:1>loaddatabasepubs2from"/usr/sybase/pubs2_dump.1"2>stripeon"/usr/sybase/pubs2_dump.2"3>stripeon"/usr/sybase/pubs2_dump.3"4>go如何生成bcp命令文件以pubs2為例編輯一個(gè)文本文件select.sql,內(nèi)容如下:

setnocounton

usepubs2

go

select"bcppubs2.."+name+"out"+name+".bcp-Usa-P-c"

fromsysobjectswheretype="U"

go檢查修改服務(wù)器基本配置參數(shù)內(nèi)存配置:sp_configure“totalmemory”,new_value

(修改內(nèi)存配置,new_value的單位為2K)CPU數(shù):sp_configure“maxonlineengines”,cpu_number(修改CPU配置,cpu_number小于等于實(shí)際cpu數(shù))并發(fā)用戶(hù)連接數(shù):sp_configure“numberofuserconnections”

(檢查當(dāng)前的并發(fā)用戶(hù)連接數(shù))sp_configure"numberoflock"sp_configure"procedurecachesize"sp_configure"numberofuser"sp_configure"numberofopendatabases"sp_configure"numberofopenobjects",150000sp_configure"numberofopenindexes",150000如何解決數(shù)據(jù)庫(kù)被掛起的問(wèn)題1現(xiàn)象:Error926

SeverityLevel14

ErrorMessageText

Database'xx'cannotbeopened-ithasbeenmarkedSUSPECTbyrecoverExplanation(一):你使用Transact_SQL命令操作這個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),出現(xiàn)這個(gè)信息,這是一個(gè)嚴(yán)重的錯(cuò)誤,如果你要使用這個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù),必須改正這個(gè)錯(cuò)誤.

(二):?jiǎn)?dòng)BackupServer,后備master數(shù)據(jù)庫(kù)

1>dumpdatabasemasterto"/usr/sybase/master.dup"

2>go(三)用isql登錄到SQLServer,須用sa帳號(hào)(本文以pubs2數(shù)據(jù)庫(kù)為例)1>sp_configure“allowupdates”,1允許修改mask庫(kù)

2>go

1>begintran

2>go

1>usemaster

2>go

1>updatesysdatabases

2>setstatus=-32768

3>Wherename="pubs2"

4>go

如何解決數(shù)據(jù)庫(kù)被掛起的問(wèn)題2如果得到(1rowaffected),則1>commit

2>go否則1>rollback

2>go(四)重新啟動(dòng)SQLServer.

注:SQLServer重新啟動(dòng)之后,當(dāng)發(fā)現(xiàn)數(shù)據(jù)庫(kù)本身存在不可恢復(fù)的問(wèn)題時(shí),如數(shù)據(jù)頁(yè)損壞等,且沒(méi)有完好的數(shù)據(jù)庫(kù)備份,一定要用bcp...out備份用戶(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)。此時(shí),以下步驟省略,并按照“如何刪除壞的用戶(hù)數(shù)據(jù)庫(kù)”文章刪除此數(shù)據(jù)庫(kù)。之后重建此數(shù)據(jù)庫(kù),恢復(fù)備份。否則,按以下步驟繼續(xù)操作:

用sa帳號(hào)注冊(cè)到SQLServer.

1>begintran

2>go

1>usemaster

2>go

如何解決數(shù)據(jù)庫(kù)被掛起的問(wèn)題31>updatesysdatabases

2>setstatus=0

3>Wherename="pubs2"

4>go如果得到(1rowaffected),則

1>commit

2>go否則1>rollback

2>go

1>sp_configure“allowupdates”,0不允許修改mask庫(kù)

2>go(五)重新啟動(dòng)SQLServer.(六)如果你的數(shù)據(jù)庫(kù)原來(lái)有dboption(例如"selectinto","trunclogonchkpt"等),你需要重新設(shè)置這些option.(七)數(shù)據(jù)庫(kù)已經(jīng)恢復(fù)可使用狀態(tài)后,運(yùn)行dbcc命令檢查數(shù)據(jù)庫(kù)的一致性(八)備份用戶(hù)數(shù)據(jù)庫(kù):

1>dumpdatabasepubs2to"/usr/sybase/pubs2.dup"

2>go如何終止數(shù)據(jù)庫(kù)恢復(fù)過(guò)程1當(dāng)某一正常運(yùn)行的大事務(wù)(例如:update、delete操作)被終止,且重新啟動(dòng)server后,運(yùn)行該事務(wù)的數(shù)據(jù)庫(kù)處于恢復(fù)狀態(tài),通常這種狀態(tài)會(huì)持續(xù)很長(zhǎng)時(shí)間,當(dāng)在此恢復(fù)過(guò)程中沒(méi)有出現(xiàn)任何異常時(shí),建議耐心等待恢復(fù)過(guò)程完成。同時(shí)提供以下方法來(lái)終止此恢復(fù)過(guò)程,但請(qǐng)注意這些操作將帶來(lái)數(shù)據(jù)不一致性。必要時(shí),希望用戶(hù)用完整、可靠的數(shù)據(jù)庫(kù)備份恢復(fù)此數(shù)據(jù)庫(kù)。

(1)啟動(dòng)BackupServer后,備份master數(shù)據(jù)庫(kù)(2)用isql登錄到SQLServer,須用sa帳號(hào)(本文以pubs2數(shù)據(jù)庫(kù)為例)1>sp_configure"allowupdates",1

2>go

1>begintran

2>go

1>usemaster

2>go

1>updatesysdatabases

2>setstatus=-32768

3>Wherename="pubs2"

4>go如果得到(1rowaffected),則commit提交,否則rollback

如何終止數(shù)據(jù)庫(kù)恢復(fù)過(guò)程2(3)這時(shí)重新啟動(dòng)SQLServer,再用sa帳號(hào)登錄到SQLServer.

1>dumptranpubs2withno_log

2>go

1>begintran

2>go

1>usemaster

2>go

1>updatesysdatabases

2>setstatus=0

3>Wherename="pubs2"

4>go

如果得到(1rowaffected),則commit提交,否則rollback(4)如果你的數(shù)據(jù)庫(kù)原來(lái)有dboption(例如"selectinto","trunclogonchkpt"等),你需要重新設(shè)置這些option..(5)當(dāng)數(shù)據(jù)庫(kù)已經(jīng)恢復(fù)可使用狀態(tài)后,運(yùn)行dbcc命令檢查數(shù)據(jù)庫(kù)的一致性(參照"如何檢查數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性"文章)(6)備份用戶(hù)數(shù)據(jù)庫(kù)

如何刪除壞的用戶(hù)數(shù)據(jù)庫(kù)當(dāng)使用dropdatabase無(wú)法刪除數(shù)據(jù)庫(kù)時(shí),使用本文所示方法可以刪除。(1)設(shè)置允許修改系統(tǒng)表

1>sp_configure"allowupdates",1

2>go(2)把要?jiǎng)h除的用戶(hù)數(shù)據(jù)庫(kù)置為"suspect"狀態(tài)

1>usemaster

2>go

1>begintran

2>go

1>updatesysdatabasessetstatus=256

2>wherename="pubs2"

3>go如果得到(1rowaffected),則則commit提交,否則rollback(3)重啟server,并用isql以sa注冊(cè)。(4)刪除數(shù)據(jù)庫(kù)

1>dbccdbrepair(pubs2,dropdb)

2>go(5)恢復(fù)允許修改系統(tǒng)表

1>sp_configure"allowupdates",0

2>go

數(shù)據(jù)一致性檢查1數(shù)據(jù)庫(kù)一致性檢查(dbcc)提供了一些命令用于檢查數(shù)據(jù)庫(kù)的邏輯和物理一致性。Dbcc主要有兩個(gè)功能:使用checkstorage或checktable及checkdb在頁(yè)一級(jí)和行一級(jí)檢查頁(yè)鏈及數(shù)據(jù)指針。

使用checkstorage,checkalloc,或checkverify,tablealloc,及indexalloc檢查頁(yè)分配。

在下列情況中需要使用dbcc命令:作為數(shù)據(jù)庫(kù)日常維護(hù)工作的一部

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論