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:

  • 重新命名資料庫名稱要重命名資料庫中是非常普遍的使用 SQL Server 2000的用戶:      EXEC sp_renameDB 'oldDB' , 'newDB' SQL Server 2005支持向後兼容, 使用ALTER DATABASE修改名稱代替   ALTER DATABASE MODIFY NAME 通常會出現錯誤:資料庫無法獨占鎖定來進行這個動作。 通用方法: 1. 卸載資料庫 2. 附載資料庫,這時候可以改資… Read More
  • MS-SQL Server Log 檔清理方式 最近在刪除大筆資料時後發現,資料庫的LOG.LDF檔案會隨著刪除的比數增加,真是掰思不得其解。 於是上網尋找解決方案,總共有兩種。 1. 刪除法 第一步: 執行SQL語法,卸載資料庫:   EXEC   sp_detach_db   @dbname   =   'MYDBNAME' 第二步: 刪除MYDBNAME_Log.LDF 第三步: … Read More
  • 鎖的概述 一. 為什麼要引入鎖  多個使用者同時對資料庫的併發操作時會帶來以下資料不一致的問題:  丟失更新 A,B兩個使用者讀同一資料並進行修改,其中一個用戶的修改結果破壞了另一個修改的結果,比如訂票系統  髒讀 A使用者修改了資料,隨後B使用者又讀出該資料,但A使用者因為某些原因取消了對資料的修改,資料恢復原值,此時B得到的資料就與資料庫內的資料產生了不一致  不可… Read More
  • SQL LOCK 簡易描述LOCK提示描述: HOLDLOCK將共用鎖保留到事務完成,而不是在相應的表、行或資料頁不再需要時就立即釋放鎖。HOLDLOCK等同於SERIALIZABLE。 NOLOCK不要發出共用鎖,並且不要提供排它鎖。當此選項生效時,可能會讀取未提交的事務或一組在讀取中間回滾的頁面。有可能發生髒讀。僅應用於SELECT語句。 PAGLOCK在通常使用單個表鎖的地方採用頁鎖。 READCOMMITTED用與運行在提交讀隔離級別的事務相同的鎖語義… Read More
  • Microsoft JDBC for MS SQL Server 系統需求 JDBC for SQL Server 2000 JAR 描 述 msbase.jar mssqlserver.jar msutil.jar jar 類別庫會提供 MSSQL2000 JDBC DRIVER 的支援。 JDBC Driver支援 JRE 1.4,但連到SQL 2005 或 2008會出現異常。 JDBC 2.0 for SQL Server 2005 … Read More

0 意見: