色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何處理Sybase臨時表空間tempdb已滿的問題

江奕云2年前24瀏覽0評論

如何處理Sybase臨時表空間tempdb已滿的問題?

開發數據庫服務器遇到這樣的一個問題,使用了一段時間之的后,突然之間數據庫就用不了了,現象是新連接連接不上,已經連接的執行sql時,報出tempdb日志滿了,無法進行操作的錯誤,而且控制臺無法連接上服務器,所有操作都無法正常進行。

經過上網查詢,得知是tempdb日志滿了,缺省情況下,tempdb數據庫是放置在master設備上,容量為2M,而臨時數據庫是活動最為平凡的數據庫常常被用來排序、創建臨時表、重格式化等操作,所以tempdb的優化應該受到特別的關注。安裝Sybase的時候就應該把tempdb的空間擴大,并且最好新建一個表空間給它專門用。

正常的時候可以用sp_helpdb tempdb命令查看tempdb,可以看到tempdb占用空間的情況。

如果日志滿了,可以執行dump tran tempdb with truncate_only或者dump tran tempdb with no_log來清除日志,但是現在根本無法執行該語句,因為tempdb已經滿了,根本沒有空間來執行該語句(如果出現Sybase的服務也無法啟動的情況就需要把jsj重啟,然后再去啟動Sybase的服務),這該怎么辦,好像進入了一個死循環里,日志滿了要清除,但因為滿了又無法清除,看來只能先擴容了,現在已經沒有一個空閑的表空間了,控制臺根本無法連接上數據庫,只能用語句來新建一個表空間,下面是新建表空間的語句:

執行disk init命令必須先執行use master命令。

disk init

name="tempdblog",

physname="D:/Sybase/tempdblog.dat",

vdevno=11,

size= 409600

go

新建好表空間后,將該空間分配給tempdb存放日志用如下命令:

alter database tempdb log on tempdblog=800

【注】執行上面的語句之前執行sp_helpdb tempdb命令發現db_size為12MB,執行完上面的語句后db_size變為812MB。 alter database tempdb on tempdbdata=1024 dump tran tempdb with truncate_only

或者 dump tran tempdb with no_log

如果不想占用master的空間,可以執行如下語句將master上為tempdb的空間刪除:

sp_dropsegment "default",tempdb,master

sp_dropsegment logsegment,tempdb,master 還可以將臨時數據庫與高速緩沖進行綁定

tempdb數據庫是活動最為平凡的數據庫,常常被用來排序、創建臨時表、重格式化等操作,它會頻繁地使用數據緩存,所以應為臨時數據庫創建高速緩存,從而可以使其常駐內存并有助于分散I/O,根據服務器的實際情況,我們為tempdb數據庫創建100M的高速緩存,實現方法如下:

創建命名高速緩存

sp_cacheconfig “tempdb_cache”,”100m”,”mixed”

go

2、重新啟動server

3、捆綁臨時數據庫到tempdb_cache高速緩存

sp_bindcache “tempdb_cache”, tempdb

go

dbhelp java,如何處理Sybase臨時表空間tempdb已滿的問題