資料庫收縮,刪除日誌,自動收縮,資料庫分離附加

lyfclear發表於2009-07-06

/*--特別注意 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞你的資料庫.
--*/

1.
清空日誌
DUMP TRANSACTION
庫名 WITH NO_LOG

2.
截斷事務日誌:
BACKUP LOG
資料庫名 WITH NO_LOG

3.
收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案
--
選擇日誌檔案--在收縮方式裡選擇收縮至XXM,這裡會給出一個允許收縮到的最小M,直接輸入這個數,確定就可以了
--
選擇資料檔案--在收縮方式裡選擇收縮至XXM,這裡會給出一個允許收縮到的最小M,直接輸入這個數,確定就可以了 也可以用SQL語句來完成
--
收縮資料庫
DBCC SHRINKDATABASE(
客戶資料)

--
收縮指定資料檔案,1是檔案號,可以透過這個語句查詢到:select * from sysfiles
DBCC SHRINKFILE(1)

4.
為了最大化的縮小日誌檔案(如果是sql 7.0,這步只能在查詢分析器中進行)
a.
分離資料庫: 企業管理器--伺服器--資料庫--右鍵--分離資料庫

b.
在我的電腦中刪除LOG檔案

c.
附加資料庫: 企業管理器--伺服器--資料庫--右鍵--附加資料庫 此法將生成新的LOG,大小隻有500K 或用程式碼: 下面的示例分離 pubs,然後將 pubs 中的一個檔案附加到當前伺服器。

a.
分離
EXEC sp_detach_db @dbname = 'pubs'

b.
刪除日誌檔案

c.
再附加
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf'

5.
為了以後能自動收縮,做如下設定: 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"

--SQL
語句設定方式:
EXEC sp_dboption '
資料庫名', 'autoshrink', 'TRUE'

6.
如果想以後不讓它日誌增長得太大 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--
將檔案增長限制為xM(x是你允許的最大資料檔案大小)

--SQL
語句的設定方式:
alter database
資料庫名 modify file(name=邏輯檔名,maxsize=20)

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13380151/viewspace-1023813/,如需轉載,請註明出處,否則將追究法律責任。

相關文章