新聞中心
Sybase臨時(shí)表空間是Sybase數(shù)據(jù)庫的重要組成部分,下面就為您詳細(xì)介紹Sybase臨時(shí)表空間tempdb已滿的處理方法,供您參考。

創(chuàng)新互聯(lián)建站擁有網(wǎng)站維護(hù)技術(shù)和項(xiàng)目管理團(tuán)隊(duì),建立的售前、實(shí)施和售后服務(wù)體系,為客戶提供定制化的網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站維護(hù)、成都機(jī)柜租用解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城網(wǎng)站開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球超過千家企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。
開發(fā)數(shù)據(jù)庫服務(wù)器遇到這樣的一個(gè)問題,使用了一段時(shí)間之的后,突然之間數(shù)據(jù)庫就用不了了,現(xiàn)象是新連接連接不上,已經(jīng)連接的執(zhí)行sql時(shí),報(bào)出tempdb日志滿了,無法進(jìn)行操作的錯(cuò)誤,而且控制臺(tái)無法連接上服務(wù)器,所有操作都無法正常進(jìn)行。
經(jīng)過上網(wǎng)查詢,得知是tempdb日志滿了,缺省情況下,tempdb數(shù)據(jù)庫是放置在master設(shè)備上,容量為2M,而臨時(shí)數(shù)據(jù)庫是活動(dòng)最為平凡的數(shù)據(jù)庫常常被用來排序、創(chuàng)建臨時(shí)表、重格式化等操作,所以tempdb的優(yōu)化應(yīng)該受到特別的關(guān)注。安裝Sybase的時(shí)候就應(yīng)該把tempdb的空間擴(kuò)大,并且最好新建一個(gè)表空間給它專門用。
正常的時(shí)候可以用sp_helpdb tempdb命令查看tempdb,可以看到tempdb占用空間的情況。
如果日志滿了,可以執(zhí)行dump tran tempdb with truncate_only或者dump tran tempdb with no_log來清除日志,但是現(xiàn)在根本無法執(zhí)行該語句,因?yàn)閠empdb已經(jīng)滿了,根本沒有空間來執(zhí)行該語句(如果出現(xiàn)Sybase的服務(wù)也無法啟動(dòng)的情況就需要把jsj重啟,然后再去啟動(dòng)Sybase的服務(wù)),這該怎么辦,好像進(jìn)入了一個(gè)死循環(huán)里,日志滿了要清除,但因?yàn)闈M了又無法清除,看來只能先擴(kuò)容了,現(xiàn)在已經(jīng)沒有一個(gè)空閑的表空間了,控制臺(tái)根本無法連接上數(shù)據(jù)庫,只能用語句來新建一個(gè)表空間,下面是新建表空間的語句:
執(zhí)行disk init命令必須先執(zhí)行use master命令。
disk init
name="tempdblog",
physname="D:/Sybase/tempdblog.dat",
vdevno=11,
size= 409600
go
新建好表空間后,將該空間分配給tempdb存放日志用如下命令:
alter database tempdb log on tempdblog=800
【注】執(zhí)行上面的語句之前執(zhí)行sp_helpdb tempdb命令發(fā)現(xiàn)db_size為12MB,執(zhí)行完上面的語句后db_size變?yōu)?12MB。 alter database tempdb on tempdbdata=1024 dump tran tempdb with truncate_only
或者 dump tran tempdb with no_log
如果不想占用master的空間,可以執(zhí)行如下語句將master上為tempdb的空間刪除:
sp_dropsegment "default",tempdb,master
sp_dropsegment logsegment,tempdb,master 還可以將臨時(shí)數(shù)據(jù)庫與高速緩沖進(jìn)行綁定
tempdb數(shù)據(jù)庫是活動(dòng)最為平凡的數(shù)據(jù)庫,常常被用來排序、創(chuàng)建臨時(shí)表、重格式化等操作,它會(huì)頻繁地使用數(shù)據(jù)緩存,所以應(yīng)為臨時(shí)數(shù)據(jù)庫創(chuàng)建高速緩存,從而可以使其常駐內(nèi)存并有助于分散I/O,根據(jù)服務(wù)器的實(shí)際情況,我們?yōu)閠empdb數(shù)據(jù)庫創(chuàng)建100M的高速緩存,實(shí)現(xiàn)方法如下:
創(chuàng)建命名高速緩存
sp_cacheconfig “tempdb_cache”,”100m”,”mixed”
go
2、重新啟動(dòng)server
3、捆綁臨時(shí)數(shù)據(jù)庫到tempdb_cache高速緩存
sp_bindcache “tempdb_cache”, tempdb
go
【編輯推薦】
Sybase清除日志的方法
詳解sybase配置參數(shù)
Sybase批量操作的實(shí)現(xiàn)
設(shè)置SYBASE用戶口令為空
Sybase數(shù)據(jù)庫維護(hù)技巧總結(jié)
當(dāng)前文章:Sybase臨時(shí)表空間tempdb已滿的處理
地址分享:http://fisionsoft.com.cn/article/cdhcdec.html


咨詢
建站咨詢
