日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库瘦身

發布時間:2023/12/3 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库瘦身 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

壓縮日志及數據庫文件大小 ??

? ??

? /*--特別注意 ??

? ??

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

? 否則可能損壞你的數據庫. ??

? ??

? ??

? 一般不建議做第4,6兩步 ??

? 第4步不安全,有可能損壞數據庫或丟失數據 ??

? 第6步如果日志達到上限,則以后的數據庫處理會失敗,在清理日志后才能恢復. ??

? --*/ ??

? ??

? --下面的所有庫名都指你要處理的數據庫的庫名 ??

? ??

? 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,大小只有500多K ??

? ??

? 或用代碼: ? ??

? 下面的示例分離 ? pubs,然后將 ? pubs ? 中的一個文件附加到當前服務器。 ??

? ??

? a.分離 ??

? EXEC ? sp_detach_db ? @dbname ? = ? '庫名' ??

? ??

? b.刪除日志文件 ??

? ??

? c.再附加 ??

? EXEC ? sp_attach_single_file_db ? @dbname ? = ? '庫名', ? ??

? ? ? ? @physname ? = ? 'c:\Program ? Files\Microsoft ? SQL ? Server\MSSQL\Data\庫名.mdf' ??

? ??

? 5.為了以后能自動收縮,做如下設置: ??

? 企業管理器--服務器--右鍵數據庫--屬性--選項--選擇"自動收縮" ??

? ??

? --SQL語句設置方式: ??

? EXEC ? sp_dboption ? '庫名', ? 'autoshrink', ? 'TRUE' ??

? ??

? 6.如果想以后不讓它日志增長得太大 ??

? 企業管理器--服務器--右鍵數據庫--屬性--事務日志 ??

? --將文件增長限制為xM(x是你允許的最大數據文件大小) ??

? ??

? --SQL語句的設置方式: ??

? alter ? database ? 庫名 ? modify ? file(name=邏輯文件名,maxsize=20) ??

? ---------------------------------------------------------------------

SQL Server 控制Ldf文件的大小(清理歷史記錄 &設定自動縮小)?

?

*清理歷史記錄?

1. 在SQL Server Enterprice Manager(企業管理器)工具列---進入 SQL Query Analyzer(SQL查詢分析器)?

2. 輸入BACKUP LOG <你的數據庫名稱> WITH TRUNCATE_ONLY?

如: BACKUP LOG myXXDB WITH TRUNCATE_ONLY?

?

2. 回SQL Server Enterprice Manager, 在該數據庫上按右鍵選[所有工作/壓縮數據庫],?

點[文件], 在數據庫文件選擇該 Log文件, 在[壓縮動作]選擇[將文件壓縮為X MB (最小值為Y MB)],?

直接將x改成其建議其最小值y按[確定]即可壓縮.?

先不要離開,再點一次[文件]看看壓了多少, 會發現還可以再壓, 還會變更小喲! 可以壓兩三次.?

?

總結:其實也就是兩個指令就可以完成了?

BACKUP LOG DateBaseName WITH TRUNCATE_ONLY?

DBCC ShrinkDatabase(DateBaseName)?

?

*設定數據庫自動縮小, 默認值為OFF?

方法1.?

ALTER DATABASE <你的數據庫名稱> SET AUTO_SHRINK ON?

如: ALTER DATABASE myXXDB SET AUTO_SHRINK ON?

方法2.?

在數據庫上按右鍵選內容(要等一下下), 點[選項]頁, 勾選[自動壓縮]后按確定?

?

?

 SQL SERVER日志清除的兩種方法?

  在使用過程中大家經常碰到數據庫日志非常大的情況,在這里介紹了兩種處理方法……?

?

  方法一?

?

  一般情況下,SQL數據庫的收縮并不能很大程度上減小數據庫大小,其主要作用是收縮日志大小,應當定期進行此操作以免數據庫日志過大?

?

  1、設置數據庫模式為簡單模式:打開SQL企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的服務器-->雙擊打開數據庫目錄-->選擇你的數據庫名稱(如論壇數據庫Forum)-->然后點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然后按確定保存。?

?

  2、在當前數據庫上點右鍵,看所有任務中的收縮數據庫,一般里面的默認設置不用調整,直接點確定。?

?

  3、收縮數據庫完成后,建議將您的數據庫屬性重新設置為標準模式,操作方法同第一點,因為日志在一些異常情況下往往是恢復數據庫的重要依據?

?

?

?

?

SQLSERVER中講:?

?

BACKUP LOG 數據庫名 WITH NO_LOG|TRUNCATE_ONLY可以截斷事務日志。?

?

但我在數據庫中進行上述操作后,事務日志還是沒有改變。?

?

?

第一步只是將非活動的事務日志截斷,并沒有收縮數據庫,只有進行第二項操作后,數據庫才進行事務日志的清理工作,將截斷的非活動事務刪除,并將事務日志文件收縮到適當尺寸。?

在使用 SQL Server 時,數據庫里的日志文件會越來越大,需要把它刪除。 我先把這個數據庫分離,在數據庫上點右鍵 -> 所有任務 -> 分離數據庫,分離之后,就可以把 Log 文件刪除,同時也可以把數據進行備份。之后,就可以在所有任務里的附加數據庫再把那個數據庫添進來,SQL Server 會提示 LOG 文件不存在,問你是不是要新建一個,選是就行了,這樣,LOG 文件就清空了。 這個方法只需幾分鐘的時間,但在這幾分鐘里,就不能訪問這個數據庫了,我覺得只適用于小型的應用,對于大型的系統就要找其它方法了。?

?

?

老馬嗖嗖 2007-04-30 13:03?

SQL Server 2000中*.LDF文件是什么作用

?

*.mdf是數據文件 ??

*.ldf是日志文件 ??

當數據庫出現問題時 ??

可用以下語句恢復 ??

數據恢復一 ??

1. 先分離數據庫 ??

exec ? sp_detach_db ? dbname ??

2. 加上數據庫 ??

exec ? sp_attach_db ? @dbname=’dbname’,@filename1=’d:\sql ? server\...\dbname.mdf’,@filename2=’d;\sql ? server\...\dbname_log.ldf’ ??

?

?

老馬嗖嗖 2007-04-30 13:04?

/*--特別注意?

?

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

否則可能損壞你的數據庫.?

--*/?

?

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,大小只有500多K?

?

或用代碼:?

下面的示例分離 pubs,然后將 pubs 中的一個文件附加到當前服務器。?

?

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.為了以后能自動收縮,做如下設置:?

企業管理器--服務器--右鍵數據庫--屬性--選項--選擇"自動收縮"?

?

--SQL語句設置方式:?

EXEC sp_dboption '數據庫名', 'autoshrink', 'TRUE'?

?

6.如果想以后不讓它日志增長得太大?

企業管理器--服務器--右鍵數據庫--屬性--事務日志?

--將文件增長限制為xM(x是你允許的最大數據文件大小)?

?

--SQL語句的設置方式:?

alter database 數據庫名 modify file(name=邏輯文件名,maxsize=20)?

?

總結

以上是生活随笔為你收集整理的数据库瘦身的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。