2.截斷事務日誌: BACKUP LOG 資料庫名WITH NO_LOG 3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件 --選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 --選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 也可以用SQL語句來完成 --收縮資料庫 DBCC SHRINKDATABASE(客戶資料) --收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles DBCC SHRINKFILE(1) 代碼如下復制代碼backup, log, 模式 -- 第一步:清空日誌 DUMP TRANSACTION [YZGA] WITH NO_LOG -- 第二步:截斷事務日誌 BACKUP LOG [YZGA] WITH NO_LOG -- 第三步:收縮資料庫 盡管可用該選項手動截斷事務日誌,但是我們極力建議您不要這樣做,因為這會將日誌鏈斷開。在下一次完整備份或完整差異備份之前,將無法為資料庫提供媒體故障保護。只在非常特殊的情況下才手動截斷日誌,並立即創建數據備份。 刪除日誌方法二1、進入企業管理器,選中資料庫,比如it,所有任務->分離資料庫。2、如果資料庫正在連接使用,要先點清除,才可以選確定。3、到資料庫文件的存放目錄,將it_log.LDF文件刪除,不放心可以先拷到別的地方。4、進入企業管理器,資料庫->所有任務->附加資料庫。5、選擇it_Data.MDF,這個時候你會看見日誌文件這項是一個紅叉,不要緊點確定。6、此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
❷ SQL SERVER 2008清理日誌
下載個LOGEXPLOER試試LogExplorer主要用於對MSSQLServer的事物分析和數據恢復。你可以瀏覽日誌、導出數據、恢復被修改或者刪除的數據(包括執行過update,delete,drop和truncate語句的表格)。一旦由於系統故障或者人為因素導致數據丟失,它能夠
❸ 如何清空sql資料庫的日誌文件
其中database為你的庫名 --壓縮日誌
1:截斷事務日誌:
BACKUP LOG 資料庫名 WITH NO_LOG2:清空日誌DUMP TRANSACTION 庫名 WITH NO_LOG再:企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了3: 刪除LOG1:分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫
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'
4: 如果想以後不讓它增長
企業管理器--伺服器--右鍵資料庫--屬性--事務日誌--將文件增長限制為xM(x是你允許的最大數據文件大小)
--SQL語句的設置方式:
alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)
5.設置為自動收縮
❹ SQL資料庫如何刪除日誌ldf
1、確定SQL資料庫的安裝路徑與所用的SQL資料庫名稱。 2、點擊開始--程序--Microsoft SQL Server--查詢分析器--確定,進入軟體里,點擊菜單幫助--Transact-sql幫助(S)--索引--輸入(sp_attach_single_file_db),在右邊對話框里找到以下的命令或者在空白處直接輸入以下的命令: EXEC sp_detach_db @dbname = 'pubs'returnEXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 注意:return是加入的命令語名,將資料庫(*.LDF與*.MDF)分離,再將資料庫名改回所要選的,即是pubs改為J2002。即是: EXEC sp_detach_db @dbname = ' J2002'returnEXEC sp_attach_single_file_db @dbname = ' J2002', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\ J2002.mdf' 3、輸入命令後,點擊菜單查詢--執行,下面對話框出現命令"命令已成功完成"。 4、刪除命令(EXEC sp_detach_db @dbname = ' J2002' return),進入安裝SQL資料庫路徑里將J2002.ldf文件重命名。 5、接著第3點開始,點擊菜單查詢--執行,下面對話框出現命令"設備激活錯誤。物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\J200188.ldf' 可能有誤。已創建名為 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\j200188_log.LDF' 的新日誌文件"。
❺ 在sqlserver中怎麼清空日誌
backup log dbbame with NO_LOG
backup log dbbame with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbbame)
❻ 如何清理sql server 2008日誌
教你如何清除SQL日誌
1.打開查詢分析器,輸入命令
DUMP TRANSACTION 資料庫名 WITH NO_LOG
2.再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。
清除Log有兩種方法:
1.自動清除法
開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQL Server自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。
2.手動清除法
執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌:
mp transaction with truncate_only
mp transaction with no_log
通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。
以上兩種方法只是清除日誌,而不做日誌備份,若想備份日誌,應執行「mp transaction database_name to mpdevice」命令。
❼ 如何刪除sql資料庫的日誌文件
其中database為你的庫名 --壓縮日誌 1:截斷事務日誌: BACKUP LOG 資料庫名 WITH NO_LOG2:清空日誌DUMP TRANSACTION 庫名 WITH NO_LOG再:企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了3: 刪除LOG1:分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫 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' 4: 如果想以後不讓它增長 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌--將文件增長限制為xM(x是你允許的最大數據文件大小) --SQL語句的設置方式: alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20) 5.設置為自動收縮
❽ 如何清除SQL server日誌
方法1:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行
dbcc
shrinkdatabase
(database_name,[,target_percent])--database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc
shrinkfile(file_id,[,target_size])
--file_id是要收縮的文件的標識
(ID)
號,若要獲得文件
ID,請使用
FILE_ID
函數或在當前資料庫中搜索
sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc
shrinkfile
將文件大小減少到默認文件大小
兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思看幫助。
方法2
(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
第一步:
先備份整個資料庫以備不測
第二步:
備份結束後,在Query
Analyzer中執行如下的語句:
exec
sp_detach_db
yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query
Analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourDBName,'d:\mssql7\data\yourDBName_data.mdf'
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
以上方法在清除log日誌中均有效。
但,能否讓sql
server
不產生log日誌呢?以上方法好像均無效。
我這兒正好有個case:
我客戶的sql
server每天都會產生4,500M的log日誌,每天都清除一下,非常不便。有沒有辦法實現不產生log日誌呢?
我分析了一下客戶產生log日誌的原因,並且做了相應測試。
客戶是每天將資料庫清空,從總系統中將數據導入到sql
server里。我感決sqlserver在插入時產生log不大,在delete整個庫時產生log極大。
比如:
SELECT
*
into
test_2
from
b_bgxx
共45000條記錄,產生十幾M
log,如果
delete
from
test_2
產生80多M
log
,這明顯存在問題。
雖然可以換成:
truncate
table
test_2
但我還是希望能找到不產生log的方法。就如oracle不產生歸檔一樣。
❾ 如何清除sql2008日誌文件
在SQL2008中清除日誌就必須在簡單模式下進行,等清除動作完畢再調回到完全模式。
方案一:完全命令模式
USE[master]
GO
ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTERDATABASE DNName SET RECOVERY SIMPLE --簡單模式
GO
USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
USE[master]
GO
ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT
GO
ALTERDATABASE DNName SET RECOVERY FULL --還原為完全模式
GO
方案二:部分命令模式 + 任務-收縮-文件(單個資料庫)
ALTERDATABASE DNName SET RECOVERY SIMPLE --簡單模式
GO
右鍵-任務-收縮-文件-確定 下來資料庫的日誌只保留了1M
ALTERDATABASE DNName SET RECOVERY FULL --還原為完全模式
GO
優點:此清除日誌所運行消耗的時間短,90GB的日誌在分鍾左右即可清除完畢,做完之後做個完全備份在分鍾內即可完成。缺點: 不過此動作最好不要經常使用,因為它的運行會帶來系統碎片。普通狀態下LOG和DIFF的備份即可截斷日誌。此語句使用的恰當環境:當系統的日誌文件異常增大或者備份LOG時間太長可能影響生產的情況下使用。