導航:首頁 > 編程大全 > sybasey資料庫空間滿

sybasey資料庫空間滿

發布時間:2021-10-26 07:29:57

❶ SQL資料庫空間不足怎麼辦

一、用戶資料庫搬家
操作方法有以下兩種
方法1:在企業管理器中進行
(1)在企業管理器中選定要搬家的資料庫名,在其上單擊滑鼠右鍵,出現如圖1所示對話框。
(2)選中「所有任務」,在其子菜單中單擊「分離資料庫」。
(3)將該資料庫的數據文件和日誌文件從舊的位置(如D:\MSSQL\Data)拷貝到新的位置(如E:\SQLDataNew)。
(4)再在企業管理器中選中「資料庫」文件夾,在其上單擊滑鼠右鍵,在出現的對話框中選中「所有任務」,在其子菜單中單擊「附加資料庫」。
(5)在出現的「附加資料庫」對話框中,選擇資料庫的兩個文件的新位置。
方法2:用SQL系統存儲過程sp_detach_db/sp_attach_db實現
(1)使用下面語句分離資料庫:
USE master
GO
EXEC sp_detach_db 'mydb'
GO
(2)將該資料庫的數據文件和日誌文件從舊的位置拷貝到新的位置。
(3)使用下面語句重新附加資料庫:
USE master
GO
EXEC sp_attach_db
'mydb', 'E:\SQLDataNew\mydbdata.mdf', 'E:\SQLDataNew\mydblog.ldf''
GO
二、系統資料庫搬家
1.master資料庫搬家
(1)由於SQL Server每次啟動的時候都需要讀取master資料庫,因此必須在企業管理器中改變SQL Server啟動參數中master數據文件和日誌文件的路徑。
在 SQL Server屬性的「常規」選項卡下面有一個叫做「啟動參數」的按鈕,單擊後可以看到所示的界面。
其中,-d用來指定master資料庫文件的路徑,而–l用來指定master資料庫日誌文件的路徑。
刪除舊的master資料庫文件和日誌文件的路徑,添加新的master數據文件和日誌文件所在的路徑,如:
-dE:\ SQLDataNew \master.mdf
-lE:\ SQLDataNew \mastlog.ldf
(2)停止SQL Server服務,將master.mdf文件和mastlog.ldf文件拷貝到新的位置,如E:\ SQLDataNew文件夾中。
(3)重新啟動服務即可。
小技巧:如果在「啟動參數」添加的master資料庫文件和日誌文件的路徑或文件名有誤,就會造成SQL Server啟動不起來。而此時想改正錯誤又因SQL Server啟動不了而重設不了「啟動參數」。其實這兩個文件路徑和文件名是放置在注冊表HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Miccrosoft SQL Server\你安裝SQL伺服器的名\MSSQLServer\Parrmeters下的參數SQLArg1和SQLArg2中,修改這兩個參數的值即可。
2. msdb資料庫和model資料庫搬家
(1)對於msdb資料庫和model資料庫,我們不能在企業管理器中實現分離和附加,只能用sp_detach_db和sp_attach_db存儲過程來分離和附加這兩個資料庫。
其中,對於msdb資料庫,還應確保SQL Server代理當前沒有運行,否則sp_detach_db存儲過程將運行失敗,並返回如下消息:
「無法除去資料庫 'msdb' ,因為它當前正在使用。」
(2)調出如圖4所示的「啟動參數」對話框,添加新參數-T3608。這樣,啟動SQL Server,它就不會恢復除master之外的任何資料庫。
(3)重新啟動SQL Server,再用下面命令分離msdb或者model資料庫:
EXEC sp_detach_db 'msdb'
GO
(4)將數據文件和日誌文件移到新的位置,然後再用下面命令重新附加msdb資料庫或者model資料庫:
USE master
GO
EXEC sp_attach_db
'msdb', 『E:\SQLDataNew\msdbdata.mdf', ' E:\SQLDataNew\msdblog.ldf '
GO
(5)在企業管理器中,從「啟動參數」框中刪除-T3608跟蹤標記,再停止並重新啟動SQL Server。
3. tempdb資料庫搬家
對於tempdb資料庫,則可以直接使用ALTER DATABASE語句來為數據文件和日誌文件指定新的存放位置,如下所示:
USE master
GO
ALTER DATABASE tempdb MODIF
Y FILE (NAME=tempdev, FILENAME ='E:\SQLDataNew \tempdb.mdf')
GO
ALTER DATABASE tempdb MODIF
Y FILE(NAME=templog, FILENAME=
' E:\SQLDataNew \templog.ldf')
GO
至此,SQL Server 中資料庫全部搬家完成。

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

開發資料庫伺服器遇到這樣的一個問題,使用了一段時間之的後,突然之間資料庫就用不了了,現象是新連接連接不上,已經連接的執行sql時,報出tempdb日誌滿了,無法進行操作的錯誤,而且控制台無法連接上伺服器,所有操作都無法正常進行。
經過上網查詢,得知是tempdb日誌滿了,預設情況下,tempdb資料庫是放置在master設備上,容量為2M,而臨時資料庫是活動最為平凡的資料庫常常被用來排序、創建臨時表、重格式化等操作,所以tempdb的優化應該受到特別的關注。安裝Sybase的時候就應該把tempdb的空間擴大,並且最好新建一個表空間給它專門用。
正常的時候可以用sp_helpdb tempdb命令查看tempdb,可以看到tempdb佔用空間的情況。
如果日誌滿了,可以執行mp tran tempdb with truncate_only或者mp 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=1024mp tran tempdb with truncate_only
或者 mp 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

❸ 資料庫空間不夠了,怎麼刪除資料庫多餘的數據

1、收縮資料庫文件
2、查找到你「確定」為多餘的表的記錄,寫SQL刪除

❹ sybase 資料庫的日誌剩餘空間超過設備大小,求修復,百度到得那個情況和我一樣,但是那個方法不能解決。

這個屬於Sybase ASE中部分存儲空間信息的內容有誤導致顯示異常。
可以通過dbcc進行修復,下面例子中的DB_NAME要改為你實際的資料庫名字ps330
終止所有當前資料庫上的連接,將資料庫設置為 單用戶 狀態
use master
go
sp_dboption DB_NAME,'single',true
go
use DB_NAME
go
checkpoint
go

對資料庫進行下面的dbcc檢查
dbcc tablealloc(syslogs, full, fix)

檢查完畢後,取消資料庫的單用戶模式
use master
go
sp_dboption DB_NAME,'single',false
go
use DB_NAME
go
checkpoint
go

❺ 怎麼判斷sybase資料庫的剩餘空間

如:> sp_helpsegment system 查看抄系統的剩餘空襲間
> sp_helpsegment logsegment 查看日誌的剩餘空間
data_pages() 或者data_pgs()
curunreservedpgs()
通過這兩個函數自己計算。

❻ SQL數據磁碟滿了怎麼解決

-- 清空日誌
--壓縮日誌及資料庫文件大小

/*--特別注意
請按步驟進行,未進行前面的步驟,請不要做後面的步驟
否則可能損壞你的資料庫.
--*/
select*fromsysfiles
--1.清空日誌
DUMPTRANSACTIONusernameWITHNO_LOG

--2.截斷事務日誌:
BACKUPLOGusernameWITHNO_LOG

--3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
-- 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了

-- 也可以用SQL語句來完成
--收縮資料庫
DBCCSHRINKDATABASE(username)

--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select*fromsysfiles

DBCCSHRINKFILE(2)

--4.為了最大化的縮小日誌文件(如果是sql7.0,這步只能在查詢分析器中進行)
-- a.分離資料庫:
-- 企業管理器--伺服器--資料庫--右鍵--分離資料庫

-- b.在我的電腦中刪除LOG文件

-- c.附加資料庫:
-- 企業管理器--伺服器--資料庫--右鍵--附加資料庫

-- 此法將生成新的LOG,大小隻有500多K

-- 或用代碼
-- 下面的示例分離username,然後將username中的一個文件附加到當前伺服器。

execsp_dboptionusername,'singleuser',true
a.分離
EXECsp_detach_db@dbname='username'

b.刪除日誌文件
execmaster..xp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOG.ldf'

c.再附加
EXECsp_attach_single_file_db@dbname='username',
@physname='D:\ProgramFiles\SQL\database\username_Data.MDF'

--5.為了以後能自動收縮,做如下設置:
-- 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"

--SQL語句設置方式:
EXECsp_dboption'資料庫名','autoshrink','TRUE'

--6.如果想以後不讓它日誌增長得太大
-- 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--將文件增長限制為xM(x是你允許的最大數據文件大小)

--SQL語句的設置方式:
alterdatabase資料庫名modifyfile(name=邏輯文件名,maxsize=20)

❼ Sybase資料庫中如何一次查出所有系資料庫空間佔用大小

select base besc

❽ 資料庫空間滿了怎麼處理

估計你的資料庫是Access資料庫
如果以前的數據必須存儲,不能刪除,那麼再創建一個新表,就原來回的表重答命名,新表的結構必須與原結構完全一樣,新表重命名為原來表的名稱即可。
如果以前的數據可以不保存,將不需要的記錄刪除就可以。
如果能夠轉換為SQL資料庫,存儲量比Access資料庫大得多。

❾ sybase中表空間日誌已滿,如何刪除表中記錄。

大流量測試程序性能時,程序寫入到sybase數據中的日誌太多,導致在對表進行操作(比如刪除日誌)的時候提示: 「資料庫****中的事務日誌已滿,直到日誌中存在可用的空間,你的事務才將被掛起」 這個庫中的每個表都是這樣,除了可查詢,別的操作都執行不了,並且,連接這個資料庫的程序也不能順利跑起來。 兩種解決方法: 2、alter database test log on newdevice = [ addSize] 加日誌,如果沒有全備,最好是直接加日誌。註:test 是只你的資料庫名,第二種方式要在master資料庫下執行

❿ 如何判斷sybase資料庫日誌空間滿

SYBASE公司是世界著名的資料庫廠家, 其關系資料庫產品SYBASE SQL Server在中國大中型企事業單位中擁有大量的用戶。 筆者在多年的使用過程中, 總結出SYBASE資料庫管理和維護的一些經驗, 現拿出來與大家分享。 我們知道,SYBASE SQL Server用事務(Transaction) 來跟蹤所有資料庫的變化。事務是SQL Server的工作單元。 一個事務包含一條或多條作為整體執行的T-SQL語句。 每個資料庫都有自己的事務日誌(Transaction Log),即系統表(Syslogs)。 事務日誌自動記錄每個用戶發出的每個事務。 日誌對於資料庫的數據安全性、完整性至關重要, 我們進行資料庫開發和維護必須熟知日誌的相關知識。 一、SYBASE SQL Server 如何記錄和讀取日誌信息 SYBASE SQL Server是先記Log的機制。 每當用戶執行將修改資料庫的語句時,SQL Server就會自動地把變化寫入日誌。 一條語句所產生的所有變化都被記錄到日誌後, 它們就被寫到數據頁在緩沖區的拷貝里。該數據頁保存在緩沖區中, 直到別的數據頁需要該內存時,該數據頁才被寫到磁碟上。 若事務中的某條語句沒能完成,SQL Server將回滾事務產生的所有變化。 這樣就保證了整個資料庫系統的一致性和完整性。 二、日誌設備 Log和資料庫的Data一樣,需要存放在資料庫設備上, 可以將Log和Data存放在同一設備上,也可以分開存放。 一般來說, 應該將一個資料庫的Data和Log存放在不同的資料庫設備上。 這樣做有如下好處:一是可以單獨地備份 Backup 事務日誌;二是防止資料庫溢滿; 三是可以看到Log的空間使用情況。 所建Log設備的大小,沒有十分精確的方法來確定。一般來說, 對於新建的資料庫,Log的大小應為資料庫大小的30%左右。 Log的大小還取決於資料庫修改的頻繁程度。 如果資料庫修改頻繁,則Log的增長十分迅速。 所以說Log空間大小依賴於用戶是如何使用資料庫的。此外, 還有其它因素影響Log大小, 我們應該根據實際操作情況估計Log大小, 並間隔一段時間就對Log進行備份和清除。 三、日誌的清除 隨著資料庫的使用,資料庫的Log是不斷增長的, 必須在它占滿空間之前將它們清除掉。清除Log有兩種方法: 1.自動清除法 開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。 此方法的優點是無須人工干預,由SQL Server自動執行,並且一般不會出現Log溢滿的情況; 缺點是只清除Log而不做備份。 本文來自: ( www.91linux.com ) 詳細出處參考: http://www.91linux.com/ html/article/database/sybase/ 20080518/11017.html

閱讀全文

與sybasey資料庫空間滿相關的資料

熱點內容
微信小程序和原生app 瀏覽:114
主角有九個轉世記憶 瀏覽:528
操作小機器人格鬥動漫 瀏覽:803
西風緊的小說哪本最好 瀏覽:32
法國庄園電視劇 瀏覽:393
求一小電影網址 瀏覽:212
大數據的讀音是什麼 瀏覽:889
查看創建文件 瀏覽:968
win10硬碟安裝bootmgr 瀏覽:753
jsp頁面添加滾動條 瀏覽:979
調教向的電影 瀏覽:193
電腦壓縮文件發送微信太大了 瀏覽:730
列表框加入編輯框如何分割數據 瀏覽:493
數控折彎機編程要輸哪些數據 瀏覽:593
重生一個女嫁四兄弟 瀏覽:204
眼科行業統計數據哪裡收集 瀏覽:30
文件盒標簽word製作 瀏覽:615
李采潭出演的老師 瀏覽:231
我有時去電影院的英文怎麼寫 瀏覽:43
有沒有女性看的網站 瀏覽:19

友情鏈接