如何清理SQL_2005的日志文件與壓縮數(shù)據(jù)庫_第1頁
如何清理SQL_2005的日志文件與壓縮數(shù)據(jù)庫_第2頁
如何清理SQL_2005的日志文件與壓縮數(shù)據(jù)庫_第3頁
如何清理SQL_2005的日志文件與壓縮數(shù)據(jù)庫_第4頁
如何清理SQL_2005的日志文件與壓縮數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、SQL 2005數(shù)據(jù)庫日志文件過大,清理日志分離數(shù)據(jù)庫,然后執(zhí)行語句exec sp_attach_single_file_db 數(shù)據(jù)庫名稱, 數(shù)據(jù)庫路徑附上其他參考方法:1打開查詢分析器,輸入命令DUMP TRANSACTION 數(shù)據(jù)庫名 WITH NO_LOG2.再打開企業(yè)管理器-右鍵你要壓縮的數(shù)據(jù)庫-所有任務(wù)-收縮數(shù)據(jù)庫-收縮文件-選擇日志文件-在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了。清除Log有兩種方法:1.自動清除法開放數(shù)據(jù)庫選項 Trunc Log on Chkpt,使數(shù)據(jù)庫系統(tǒng)每隔一段時間自動清除Log。此方法的優(yōu)點(diǎn)是無須人工

2、干預(yù),由SQLServer自動執(zhí)行,并且一般不會出現(xiàn)Log溢滿的情況;缺點(diǎn)是只清除Log而不做備份。2.手動清除法執(zhí)行命令“dump transaction”來清除Log。以下兩條命令都可以清除日志:dump transaction with truncate_onlydump transaction with no_log 通常刪除事務(wù)日志中不活躍的部分可使用“dump transaction with trancate_only”命令,這條命令寫進(jìn)事務(wù)日志時,還要做必要的并發(fā)性檢查。SYBASE提供“dump transaction with no_log”來處理某些非常緊迫的情況,使用這

3、條命令有很大的危險性,SQLServer會彈出一條警告信息。為了盡量確保數(shù)據(jù)庫的一致性,你應(yīng)將它作為“最后一招”。以上兩種方法只?清除日志,而不做日志備份,若想備份日志,應(yīng)執(zhí)行“dump transaction database_name to dumpdevice”命令。 PS:附一個更好的方法先分離數(shù)據(jù)庫后,直接刪除日志以后,再在查詢分析器里用exec sp_attach_single_file_db 數(shù)據(jù)庫名, .mdf文件路徑 命令附加數(shù)據(jù)庫。 OVER.在別的地方看到的 不錯。數(shù)據(jù)庫日志操作先提供一種復(fù)雜的方法壓縮日志及數(shù)據(jù)庫文件如下:1.清空日志 DUMP TRANSACTION

4、庫名 WITH NO_LOG 2.截斷事務(wù)日志: BACKUP LOG 數(shù)據(jù)庫名 WITH NO_LOG3.收縮數(shù)據(jù)庫文件(如果不壓縮,數(shù)據(jù)庫的文件不會減小 企業(yè)管理器-右鍵你要壓縮的數(shù)據(jù)庫-所有任務(wù)-收縮數(shù)據(jù)庫-收縮文件 -選擇日志文件-在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了 -選擇數(shù)據(jù)文件-在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了 也可以用SQL語句來完成 -收縮數(shù)據(jù)庫 DBCC SHRINKDATABASE(客戶資料) -收縮指定數(shù)據(jù)文件,1是文件號,可以通過這個語句查詢到:se

5、lect * from sysfiles DBCC SHRINKFILE(1)4.為了最大化的縮小日志文件(如果是sql 7.0,這步只能在查詢分析器中進(jìn)行) 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.分離 E X E C sp_detach_db dbname = pubs b.刪除日志文件 c.再附加 E X E C sp_attach_si

6、ngle_file_db dbname = pubs, physname = c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf5.為了以后能自動收縮,做如下設(shè)置: 企業(yè)管理器-服務(wù)器-右鍵數(shù)據(jù)庫-屬性-選項-選擇自動收縮 -SQL語句設(shè)置方式: E X E C sp_dboption 數(shù)據(jù)庫名, autoshrink, TRUE6.如果想以后不讓它日志增長得太大 企業(yè)管理器-服務(wù)器-右鍵數(shù)據(jù)庫-屬性-事務(wù)日志 -將文件增長限制為xM(x是你允許的最大數(shù)據(jù)文件大小) -SQL語句的設(shè)置方式: alter database 數(shù)據(jù)庫名 modi

7、fy file(name=邏輯文件名,maxsize=20)特別注意: 請按步驟進(jìn)行,未進(jìn)行前面的步驟,請不要做后面的步驟 否則可能損壞你的數(shù)據(jù)庫. 一般不建議做第4,6兩步 第4步不安全,有可能損壞數(shù)據(jù)庫或丟失數(shù)據(jù) 第6步如果日志達(dá)到上限,則以后的數(shù)據(jù)庫處理會失敗,在清理日志后才能恢復(fù).另外提供一種更簡單的方法,本人屢試不爽,建議大家使用。更簡單的方法: 1。右建數(shù)據(jù)庫屬性窗口-故障還原模型-設(shè)為簡單 2。右建數(shù)據(jù)庫所有任務(wù)-收縮數(shù)據(jù)庫 3。右建數(shù)據(jù)庫屬性窗口-故障還原模型-設(shè)為大容量日志記錄 可能有不少朋友遇到過這樣的問題:update或delete語句忘帶了where子句,或where子

8、句精度不夠,執(zhí)行之后造成了嚴(yán)重的后果,這種情況的數(shù)據(jù)恢復(fù)只能利用事務(wù)日志的備份來進(jìn)行,所以如果你的SQL沒有進(jìn)行相應(yīng)的全庫備份或不能備份日志(truncate log on checkpoint選項為1),那么就無法進(jìn)行數(shù)據(jù)的恢復(fù)了,或者只能恢復(fù)到最近一次的備份的數(shù)據(jù)了。以下簡單說明恢復(fù)數(shù)據(jù)方法:1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進(jìn)進(jìn)行一次日志備份(如果為了不讓日志文件變大而置trunc. log on chkpt.選項為1那你就死翹了) backup log dbName to disk=fileName2,恢復(fù)一個全庫備份,注意需要使用wi

9、th norecovery,如果還有其他差異或增量備份,則逐個恢復(fù) restore database dbName from disk=fileName with norecovery3,恢復(fù)最后一個日志備份即剛做的日志備份,指定恢復(fù)時間點(diǎn)到誤操作之前的時刻 restore log dbName from disk=fileName with stopat=date_time以上這些操作都可以在SQL SERVER企業(yè)管理器里完成,難度不大。日志文件滿而造成SQL數(shù)據(jù)庫無法寫入文件時,可用兩種方法:一種方法:清空日志。1打開查詢分析器,輸入命令DUMP TRANSACTION 數(shù)據(jù)庫名 WIT

10、H NO_LOG2.再打開企業(yè)管理器-右鍵你要壓縮的數(shù)據(jù)庫-所有任務(wù)-收縮數(shù)據(jù)庫-收縮文件-選擇日志文件-在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了。另一種方法有一定的風(fēng)險性,因為SQL SERVER的日志文件不是即時寫入數(shù)據(jù)庫主文件的,如處理不當(dāng),會造成數(shù)據(jù)的損失。1: 刪除LOG分離數(shù)據(jù)庫 企業(yè)管理器服務(wù)器數(shù)據(jù)庫右鍵分離數(shù)據(jù)庫2:刪除LOG文件附加數(shù)據(jù)庫 企業(yè)管理器服務(wù)器數(shù)據(jù)庫右鍵附加數(shù)據(jù)庫此法生成新的LOG,大小只有500多K。注意:建議使用第一種方法。如果以后,不想要它變大。SQL2000下使用:在數(shù)據(jù)庫上點(diǎn)右鍵-屬性-選項-故障恢復(fù)

11、-模型-選擇-簡單模型?;蛴肧QL語句:alter database 數(shù)據(jù)庫名 set recovery simple另外,Truncate log on checkpoint(此選項用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡單模型)當(dāng)執(zhí)行CHECKPOINT 命令時如果事務(wù)日志文件超過其大小的70% 則將其內(nèi)容清除在開發(fā)數(shù)據(jù)庫時時常將此選項設(shè)置為True Auto shrink定期對數(shù)據(jù)庫進(jìn)行檢查當(dāng)數(shù)據(jù)庫文件或日志文件的未用空間超過其大小的25%時,系統(tǒng)將會自動縮減文件使其未用空間等于25% 當(dāng)文件大小沒有超過其建立時的初始大小時不會縮減文件縮減后的文件也必須大于或等于其初始

12、大小對事務(wù)日志文件的縮減只有在對其作備份時或?qū)runcate log on checkpoint 選項設(shè)為True 時才能進(jìn)行。注意:一般立成建立的數(shù)據(jù)庫默認(rèn)屬性已設(shè)好,但碰到意外情況使數(shù)據(jù)庫屬性被更改,請用戶清空日志后,檢查數(shù)據(jù)庫的以上屬性,以防事務(wù)日志再次充滿。當(dāng)然,如果誤操作是一些不記日志的操作比如truncate table,select into等操作,那么是無法利用上述方法來恢復(fù)數(shù)據(jù)的.刪除SQL日志1: 刪除LOG1:分離數(shù)據(jù)庫 企業(yè)管理器服務(wù)器數(shù)據(jù)庫右鍵分離數(shù)據(jù)庫2:刪除LOG文件3:附加數(shù)據(jù)庫 企業(yè)管理器服務(wù)器數(shù)據(jù)庫右鍵附加數(shù)據(jù)庫此法生成新的LOG,大小只有520多K再將此

13、數(shù)據(jù)庫設(shè)置自動收縮或用代碼: 下面的示例分離 77169database,然后將 77169database 中的一個文件附加到當(dāng)前服務(wù)器。EXEC sp_detach_db dbname = 77169databaseEXEC sp_attach_single_file_db dbname = 77169database, physname = c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf 2:清空日志DUMP TRANSACTION 庫名 WITH NO_LOG / DUMP TRANSACTION ulionmis WITH NO_LOG再:企業(yè)管理器-右鍵你要壓縮的數(shù)據(jù)庫-所有任務(wù)-收縮數(shù)據(jù)庫-收縮文件-選擇日志文件-在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了3: 如果想以后不讓它增長企業(yè)管理器服務(wù)器數(shù)據(jù)庫屬性事務(wù)日志將文件增長限制為2M自動收縮日志,也可以用下面這條語句Alter DATABASE 數(shù)據(jù)庫名SET AUTO_SHRINK ON故障還原模型改

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論