电竞比分网-中国电竞赛事及体育赛事平台

分享

SQL Server中收縮、清空和刪除數(shù)據(jù)庫文件及日志文件

 aaie_ 2018-02-13

一、簡單方法
–SQL Server收縮方法

1、右鍵數(shù)據(jù)庫→屬性→選項→故障還原模型→設(shè)為簡單→確定;
2、右鍵數(shù)據(jù)庫→所有任務(wù)→收縮數(shù)據(jù)庫→確定;
3、右鍵數(shù)據(jù)庫→屬性→選項→故障還原模型→設(shè)為大容量日志記錄→確定。

二、復(fù)雜方法
–SQL Server日志清空方法
在查詢分析器中順序執(zhí)行以下三步,其中 databasename 為你的數(shù)據(jù)庫文件名
1.清空日志:DUMP TRANSACTION databasename WITH NO_LOG
2.截斷事務(wù)日志:BACKUP LOG databasename WITH NO_LOG
3.收縮數(shù)據(jù)庫:DBCC SHRINKDATABASE(databasename)

(BACKUP LOG databasename WITH NO_LOG|TRUNCATE_ONLY可以截斷事務(wù)日志。
第一步只是將非活動的事務(wù)日志截斷,并沒有收縮數(shù)據(jù)庫,只有進(jìn)行第二項操作后,數(shù)據(jù)庫才進(jìn)行事務(wù)日志的清理工作,將截斷的非活動事務(wù)刪除,并將事務(wù)日志文件收縮到適當(dāng)尺寸。)

3、收縮數(shù)據(jù)庫文件(如果不壓縮,數(shù)據(jù)庫的文件不會減小)
企業(yè)管理器–右鍵你要壓縮的數(shù)據(jù)庫–所有任務(wù)–收縮數(shù)據(jù)庫–收縮文件–選擇日志文件–在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了
–選擇數(shù)據(jù)文件–在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了。
收縮數(shù)據(jù)庫完成后,建議將您的數(shù)據(jù)庫屬性重新設(shè)置為標(biāo)準(zhǔn)模式,操作方法同簡單方法里第一點,因為日志在一些異常情況下往往是恢復(fù)數(shù)據(jù)庫的重要依據(jù)

也可以用SQL語句來完成

–收縮數(shù)據(jù)庫
DBCC SHRINKDATABASE(數(shù)據(jù)庫名)
–收縮指定數(shù)據(jù)文件,1是文件號,可以通過這個語句查詢到:
select * from sysfiles DBCC SHRINKFILE(1)

4、為了最大化的縮小日志文件(如果是sql 7.0,這步只能在查詢分析器中進(jìn)行)

在使用 SQL Server 時,數(shù)據(jù)庫里的日志文件會越來越大,需要把它刪除。 我先把這個數(shù)據(jù)庫分離,在數(shù)據(jù)庫上點右鍵 -> 所有任務(wù) -> 分離數(shù)據(jù)庫,分離之后,就可以把 Log 文件刪除,同時也可以把數(shù)據(jù)進(jìn)行備份。之后,就可以在所有任務(wù)里的附加數(shù)據(jù)庫再把那個數(shù)據(jù)庫添進(jìn)來,SQL Server 會提示 LOG 文件不存在,問你是不是要新建一個,選是就行了,這樣,LOG 文件就清空了。 這個方法只需幾分鐘的時間,但在這幾分鐘里,就不能訪問這個數(shù)據(jù)庫了,我覺得只適用于小型的應(yīng)用,對于大型的系統(tǒng)就要找其它方法了。)
a.分離數(shù)據(jù)庫
企業(yè)管理器–服務(wù)器–數(shù)據(jù)庫–右鍵–分離數(shù)據(jù)庫
b.在我的電腦中刪除LOG文件
c.附加數(shù)據(jù)庫
企業(yè)管理器–服務(wù)器–數(shù)據(jù)庫–右鍵–附加數(shù)據(jù)庫
此法將生成新的LOG,大小只有500多K

或用代碼:
下面的示例分離 pubs,然后將 pubs 中的一個文件附加到當(dāng)前服務(wù)器。
a.分離
EXEC sp_detach_db @dbname = ‘pubs’
b.刪除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = ‘pubs’,@physname = ‘c:/Program Files/Microsoft SQL
Server/MSSQL/Data/pubs.mdf’

5、為了以后能自動收縮,做如下設(shè)置
企業(yè)管理器–服務(wù)器–右鍵數(shù)據(jù)庫–屬性–選項–選擇”自動收縮”
–SQL語句設(shè)置方式:
EXEC sp_dboption ‘?dāng)?shù)據(jù)庫名’, ‘a(chǎn)utoshrink’, ‘TRUE’

ALTER DATABASE <你的數(shù)據(jù)庫名稱> SET AUTO_SHRINK ON
如: ALTER DATABASE myXXDB SET AUTO_SHRINK ON

6、如果想以后不讓它日志增長得太大
企業(yè)管理器–服務(wù)器–右鍵數(shù)據(jù)庫–屬性–事務(wù)日志
–將文件增長限制為xM(x是你允許的最大數(shù)據(jù)文件大小)
–SQL語句的設(shè)置方式:
alter database 數(shù)據(jù)庫名 modify file(name=邏輯文件名,maxsize=20)

特別注意:
請按步驟進(jìn)行,未進(jìn)行前面的步驟,請不要做后面的步驟,否則可能損壞你的數(shù)據(jù)庫。
一般不建議做第4、6兩步,第4步不安全,有可能損壞數(shù)據(jù)庫或丟失數(shù)據(jù),第6步如果日志達(dá)到上限,則以后的數(shù)據(jù)
庫處理會失敗,在清理日志后才能恢復(fù)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多