国产精品亚洲综合一区在线观看_国产性猛交╳xxx乱大交_中文字幕精品一区二区精品_国产午夜精品一区二区三区不卡_国产亚洲精品久久久久久青梅 _精品国产午夜肉伦伦影院_国产欧美va欧美va香蕉在线_99久久婷婷国产综合精品_国产精品白浆一区二小说

綠色資源網:您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網

技術教程
您的位置:首頁數據庫類SQL Server → MSSQL 清空日志 刪除日志文件

MSSQL 清空日志 刪除日志文件

我要評論 2013/07/04 22:09:42 來源:綠色資源網 編輯:www.985529.com [ ] 評論:0 點擊:265次

最近的項目主要做數據的歸檔,把數據從一個數據庫拉到另一個數據庫,造成新數據庫的日志文件非常大;或者數據庫在使用過程中會使日志文件不斷增加,使得數據庫的性能下降,并且占用大量的磁盤空間。于是想把日志文件刪除。最簡單就是先分離數據庫-》刪除日志文件-》最后附加數據,我這里需要在SSIS中調用,所以已sql腳本為主。

兩種簡單的清除日志的方法:

一分離附加法:
1、首先把數據庫分離,分離數據庫之前一定要做好數據庫的全備份,選擇數據庫——右鍵——任務——分離,其中藥勾選刪除連接!

分離后在數據庫列表將看不到已分離的數據庫。

2、刪除數據庫的LOG文件數據庫文件夾下的對應數據庫的 ldf文件

3、附加數據庫,附加的時候會提醒找不到log文件。到時附加上后會自動創(chuàng)建一個新的日志文件,從而達到清理數據庫的目的

二、sql語句清除mssql日志

DUMP TRANSACTION TestDB WITH NO_LOG 清除日志

DBCC SHRINKFILE ('TestDB_log',1) 收縮數據庫文件

BACKUP LOG TestDB WITH NO_LOG 截斷事務日志

該命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。

首先我們需要獲取數據庫文件的路徑:

 declare @logfilename varchar(100)
 declare @datafilename varchar(100)
select @logfilename=physical_name from sys.database_files where type=1
select @datafilename=physical_name from sys.database_files where type=0

然后切換到master下,分離數據庫

use master
exec sp_detach_db @dbname='TestVFA';

緊接下來就是刪除數據庫 日志文件
----Remove file
DECLARE @Result int
DECLARE @FSO_Token int
EXEC @Result = sp_OACreate 'Scripting.FileSystemObject', @FSO_Token OUTPUT
EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFile', NULL, @logfilename
EXEC @Result = sp_OADestroy @FSO_Token
最后就是附加數據庫
exec sp_attach_single_file_db @dbname='TestVFA',@physname=@datafilename

注意:默認Ole Automation Procedures 是禁用的我們需要啟用它

exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ole Automation Procedures',1;
RECONFIGURE;

關鍵詞:MSSQL

閱讀本文后您有什么感想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視

<source id="kxcwz"></source>
<bdo id="kxcwz"><span id="kxcwz"><del id="kxcwz"></del></span></bdo>
    1. <pre id="kxcwz"></pre>