資料庫滿了怎麼辦
A. SQL server資料庫日誌滿了怎麼處理
一、刪除日誌文件。
二、手動收縮。操作如下:
1、在資料庫頁面中選擇「選項」;回
B. 資料庫滿了怎麼刪除
首先看資料庫文件所在硬碟的空間足不足,可以擴容解決這個問題;
第二,什麼資料庫MS-SQL的話可以刪除日誌文件,如果是ORACEL的話看看錶空間足不足,不足的話擴表空間。
你的問題太籠統了。
C. 資料庫空間滿了怎麼處理
1:分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫
2:刪除LOG文件
3:附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫
此法生成新的LOG,大小隻有500多K
再將此資料庫設置自動收縮
或用代碼分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器:
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
D. 資料庫滿了怎麼辦
資料庫是只讀的(Readonly),也即不可以修改(增加\刪除\修改都不行)
E. 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 中資料庫全部搬家完成。
F. 資料庫日誌已滿,如何處理
先提供一種復雜的方法壓縮日誌及資料庫文件如下:
1.清空日誌
mp transaction 庫名 with no_log
2.截斷事務日誌:
backup log 資料庫名 with no_log
3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了
也可以用sql語句來完成
--收縮資料庫
dbcc shrinkdatabase(客戶資料)
--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles
dbcc shrinkfile(1)
4.為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行)
a.分離資料庫:
企業管理器--伺服器--資料庫--右鍵--分離資料庫
b.在我的電腦中刪除log文件
c.附加資料庫:
企業管理器--伺服器--資料庫--右鍵--附加資料庫
此法將生成新的log,大小隻有500多k
或用代碼:
下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。
a.分離
e x e c sp_detach_db @dbname = 'pubs'
b.刪除日誌文件
c.再附加
e x e c sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\program files\microsoft sql server\mssql\data\pubs.mdf'
5.為了以後能自動收縮,做如下設置:
企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"
--sql語句設置方式:
e x e c sp_dboption '資料庫名', 'autoshrink', 'true'
6.如果想以後不讓它日誌增長得太大
企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--將文件增長限制為xm(x是你允許的最大數據文件大小)
--sql語句的設置方式:
alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)
G. 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)
H. 如果資料庫日誌已滿,怎麼辦
先提供一種復雜的方法壓縮日誌及資料庫文件如下:
1.清空日誌
mp transaction 庫名 with no_log
2.截斷事務日誌:
backup log 資料庫名 with no_log
3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了
也可以用sql語句來完成
--收縮資料庫
dbcc shrinkdatabase(客戶資料)
--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles
dbcc shrinkfile(1)
I. SQL滿了怎麼辦
在企業管理器里右擊相應的資料庫然後選「屬性」,在「數據文件」和「日誌文件」選項卡里,點擊現有數據文件下面空白行的「位置」按鈕,然後定位到其他有空間的盤,新建數據文件和日誌文件,然後把原來的數據文件和日誌文件的「自動增長」選項去掉,這樣如果再寫入數據的話,就會直接寫入到新的數據文件和日誌文件里了。其實就目前狀況來看,清理C盤,騰出更多可用空間才是亟待解決的問題。
「智慧信仰」這位朋友你不要懷疑去掉自動增長的有效性,我說的很明白,在其他分區新建數據文件是前提,把原數據文件的自動增長去掉後,如果向庫中寫入新數據,它會自動向新數據文件中寫入數據的,看樓住的情形,應該不會建立多個文件組的,所以原數據文件和新數據文件是屬於同一文件組的,我的方法是可行的。你最好親自實驗一下就明白了。
另外開始以為樓主的數據文件不能移動,如果可以移動的話,先分離,然後把數據文件拷貝到其他分區,然後再附加是沒有問題的。
我的那種解決方法主要是在不中斷SQL SERVER資料庫服務的情況下就可以進行。