sql資料庫的收縮

2021-05-26 03:16:13 字數 1581 閱讀 7607

一、較複雜的壓縮日誌及資料庫檔案方法

(一)清空日誌

dump  transaction 庫名 with no_log   

(二)截斷事務日誌:

backup log 資料庫名 with no_log

(三)收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小)

企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案

--選擇日誌檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了。

--選擇資料檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了

也可以用sql語句來完成

--收縮資料庫

dbcc shrinkdatabase(客戶資料)

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

dbcc shrinkfile(1)

(四)為了最大化的縮小日誌檔案(如果是sql 7.0,這步只能在查詢分析器中進行)

1.分離資料庫:

企業管理器--伺服器--資料庫--右鍵--分離資料庫

2.在我的電腦中刪除log檔案

3.附加資料庫:

企業管理器--伺服器--資料庫--右鍵--附加資料庫

此法將生成新的log,大小只有500多k

或用**:

下面的示例分離 pubs,然後將 pubs 中的乙個檔案附加到當前伺服器。

1.分離

exec sp_detach_db @dbname = 'pubs'

2.刪除日誌檔案

3.再附加

exec sp_attach_single_file_db @dbname = 'pubs',

@physname = 'c:program filesmicrosoft sql servermssqldatapubs.mdf'

(五)為了以後能自動收縮,做如下設定:

企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"

--sql語句設定方式:

exec sp_dboption '資料庫名', 'autoshrink', 'true'

(六)如果想以後不讓它日誌增長得太大

企業管理器--伺服器--右鍵資料庫--屬性--事務日誌

--將檔案增長限制為xm(x是你允許的最大資料檔案大小)

--sql語句的設定方式:

alter database 資料庫名 modify file(name=邏輯檔名,maxsize=20)

特別注意:

請按步驟進行,未進行前面的步驟,請不要做後面的步驟

否則可能損壞你的資料庫.

一般不建議做第(四)、(六)兩步

第(四)步不安全,有可能損壞資料庫或丟失資料

第(六)步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.

二、更簡單的方法,建議大家使用。

1.右建資料庫屬性視窗--故障還原模型--設為簡單

2.右建資料庫所有任務--收縮資料庫

3.右建資料庫屬性視窗--故障還原模型--設為大容量日誌記錄

SQL收縮日誌與資料庫

特別注意 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞你的資料庫.一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失資料 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.下面的所有庫名都指你要處理的資料庫的庫名 1.清空日誌 dump tran...

收縮資料庫

sql 2008 右擊要清除日誌的資料庫 選擇 屬性 在資料庫屬性中 選擇 選項 在右邊 恢復模式 下拉列表框中 選擇 簡單 單擊確定 返回 右擊要清除日誌的資料庫 選擇 任務 收縮 資料庫 單擊確定 完成收縮 指令碼 use master goalter database dnname set r...

收縮資料庫

顯示當前資料庫的空間使用情況 exec sp spaceused 顯示表的空間使用 exex sp spaceused objname wct updateusage true 顯示整個伺服器中所有資料庫的日誌使用情況 dbcc sqlperf logspace 收縮資料庫 dbcc shrinkd...