Pages

2011年10月18日 星期二

MS-SQL Server Log 檔清理方式


最近在刪除大筆資料時後發現,資料庫的LOG.LDF檔案會隨著刪除的比數增加,真是掰思不得其解。

於是上網尋找解決方案,總共有兩種。

1. 刪除法

第一步: 執行SQL語法,卸載資料庫:  
EXEC   sp_detach_db   @dbname   =   'MYDBNAME'

第二步: 刪除MYDBNAME_Log.LDF

第三步: 掛載SQL語法:
EXEC   sp_attach_single_file_db   @dbname   =   'MYDBNAME',   @physname   =   'C:\database\MYDBNAME_Data.MDF'

執行結果:
檔案啟動錯誤。實體檔案名稱 "C:\database\MYDBNAME_Log.LDF" 可能不正確。
已建立新記錄檔 'C:\database\MYDBNAME_log.LDF'。


2. 壓縮法

第一步: SP_HELPDB 可顯示資料庫資訊, 而資料庫的分頁名稱也會在裡面顯示出來
SP_HELPDB MYDBNAME


第二步: 備份資料庫, 但不備份記錄檔
BACKUP LOG MYDBNAME WITH NO_LOG

第三步: 備份記錄檔
BACKUP LOG db_name WITH TRUNCATE_ONLY

第四步: 使用 SHRINKFILE 把交易記錄檔縮小, 以 MB 為單位
DBCC SHRINKFILE(MYDBNAME_log, 100)

以上, 就可以看到磁碟空間變大, 記錄檔變小了 ~

Related Posts:

  • 【AWS】SQL Server服務備份與還原資料 AWS上面RDS的SQL Server雖然有提供線上的備份服務,但是在導入資料到本地端的開發環卻是比較困難的,因此下方影片提供了相關的步驟來讓大家可以照步驟來進行備份還原AWS上的SQL SERVER的服務資料。預先準備:1. AWS S3的空間。2. SQL Server Manager Stoudo管理工具… Read More
  • T-SQL 取代Cursor操作轉仔自 : RICO技術農場 自己在工作開發上(雖然很少開發...XD)遇到要執行一筆一筆的操作, 我會盡量避免使用Cursor來處理(效能會很差),而想其他方法來取代, 剛好看到網友詢問,這裡順手紀錄針對一筆一筆操作不使用Cursor做法。 需求:取得來源資料表col2欄位並依col1條件逐筆更新目的資料表c2欄位(@desttbl) declare @step int, @uplimit int, @currentid int,… Read More
  • Microsoft JDBC 連接 URL 範例 在下列範例中,範例程式碼會在連接 URL 中設定各種連接屬性,然後呼叫 DriverManager 類別的 getConnection 方法,以傳回SQLServerConnection 物件。 接著,範例程式碼會使用 SQLServerConnection 物件的 createStatement 方法建立 SQLServerStatemen… Read More
  • SQL Server Studio Manager 抓取錯誤訊息直接利用 PRINT使用下列函式,即可印出錯誤訊息。 USE AdventureWorks2008R2; GO -- Verify that the stored procedure does not already exist. IF OBJECT_ID ( 'usp_GetErrorInfo', 'P' ) IS NOT NULL DROP PROCEDURE usp_GetErrorInfo; GO -- Create pro… Read More
  • SQL中的GETDATE() 轉換函式與產生結果--Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100)… Read More

0 意見: