天天看點

Sql Server 2000資料庫日志日益龐大的解決方法

       我在使用sqlserver2000資料庫時,使用一段時間後日志日益龐大。是以我就給Server添加了一個作業,讓它每月運作一次。來完成一次我的資料庫維護工作。(dmt就是我的多媒體資料庫名)

backup log dmt with no_log

--這裡隻是截斷日志,日志檔案的實體大小并沒有減少。

--而且建議此語句執行完後馬上備份資料庫(我這裡沒有備份)

exec sp_dboption 'dmt','autoshrink','true'

--確定資料庫設定為自動收縮

dbcc shrinkdatabase(dmt,10)

--收縮資料庫,保留10%的空閑空間

--注意,這個操作真真縮小資料庫的實體檔案。(我自己的日志檔案從8G縮小到了7M,嘿嘿)

備份資料庫,例如:

BACKUP DATABASE Northwind

   TO DISK = 'c:/Northwind.bak'

還原資料庫,例如:

--傳回由備份集内包含的資料庫和日志檔案清單組成的結果集

RESTORE FILELISTONLY

   FROM DISK = 'c:/Northwind.bak'

--還原由BACKUP備份的資料庫

RESTORE DATABASE Northwind

   FROM DISK = 'c:/Northwind.bak'

--指定還原後的資料庫實體檔案名稱及路徑

RESTORE DATABASE TestDB

   FROM DISK = 'c:/Northwind.bak'

   WITH

   MOVE 'Northwind' TO 'c:/test/testdb.mdf',

   MOVE 'Northwind_log' TO 'c:/test/testdb.ldf'

   MOVE 'logical_file_name' TO 'operating_system_file_name'

指定應将給定的 logical_file_name 移到 operating_system_file_name。

預設情況下,logical_file_name 将還原到其原始位置。如果使用 RESTORE

語句将資料庫複制到相同或不同的伺服器上,則可能需要使用 MOVE 選項重

新定位資料庫檔案以避免與現有檔案沖突。可以在不同的 MOVE 語句中指定

資料庫内的每個邏輯檔案。

--強制還原,加上REPLACE參數,則在現有資料庫基礎上強制還原。

RESTORE DATABASE TestDB

   FROM DISK = 'c:/Northwind.bak'

   WITH REPLACE,

   MOVE 'Northwind' TO 'c:/test/testdb.mdf',

   MOVE 'Northwind_log' TO 'c:/test/testdb.ldf'