狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server事務(wù)日志的幾個(gè)常用操作

admin
2011年5月5日 22:54 本文熱度 2940

   我們知道,SQL Server事務(wù)日志主要是用來記錄所有事務(wù)對(duì)數(shù)據(jù)庫所做的修改,如果系統(tǒng)出現(xiàn)故障,它將成為最新數(shù)據(jù)的唯一來源。日志的操作常有以下幾個(gè)應(yīng)用:


  一、事務(wù)日志文件LDF的丟失


  當(dāng)我們不小刪除或者LDF文件丟失的時(shí)候,數(shù)據(jù)庫只剩下MDF文件,此時(shí)直接通過附加MDF是無法恢復(fù)數(shù)據(jù)庫的,那我們?cè)趺礃硬拍芑謴?fù)數(shù)據(jù)庫呢?我們可以把SQL Server的日志文件分為兩種形式:一類是無活動(dòng)事務(wù)的日志,另一類是有活動(dòng)事務(wù)的日志,我們分別根據(jù)兩種情況來進(jìn)行數(shù)據(jù)庫恢復(fù)。


  1、無活動(dòng)事務(wù)的日志恢復(fù)


  當(dāng)文件并沒有發(fā)生活動(dòng)性的日志,我們就可以很容易的利用MDF文件就可以直接恢復(fù)數(shù)據(jù)庫了,具體操作方法如下:


  1)數(shù)據(jù)庫要是沒有日志,就會(huì)處于置疑的狀態(tài),我們先可以通過企業(yè)管理器中在對(duì)應(yīng)數(shù)據(jù)庫中點(diǎn)擊右鍵,然后在“所有任務(wù)”下選擇“分離數(shù)據(jù)庫”把數(shù)據(jù)庫進(jìn)行分離;


  2)利用MDF文件附加數(shù)據(jù)庫生成新的日志文件,可用企業(yè)管理器中數(shù)據(jù)庫點(diǎn)擊右鍵選擇“所有任務(wù)”下的“附加數(shù)據(jù)庫”把數(shù)據(jù)庫附加上。


  這樣就可以直接恢復(fù)好數(shù)據(jù)庫了,而如果數(shù)據(jù)庫的日志文件中含有活動(dòng)事務(wù),利用此方法就不能恢復(fù)數(shù)據(jù)庫,所以得使用下面的方法。


  2、有活動(dòng)事務(wù)的日志恢復(fù)


  當(dāng)日志發(fā)生了事務(wù)的記錄,丟失的時(shí)候,我們采用如下的方法來實(shí)現(xiàn):


  1)新建一個(gè)同名的數(shù)據(jù)庫,如原數(shù)據(jù)庫名為MYDB,然后停止SQL Server服務(wù)器,再把數(shù)據(jù)庫主數(shù)據(jù)MDF文件移走,然后重新啟動(dòng)SQL Server服務(wù)器,新建一個(gè)同名的數(shù)據(jù)庫MYDB,然后再停止SQL Server服務(wù)器,把移走的MDF文件再覆蓋回來,然后再重新啟動(dòng)SQL Server服務(wù)器,在默認(rèn)的情況下,系統(tǒng)表是不允許被修改的,我們需要運(yùn)行以下語句才可以,在查詢分析器中,選擇Master數(shù)據(jù)庫,然后執(zhí)行:


  Sp_configure 'allow updates',1


  Reconfigure With Override


  接著運(yùn)行以下語句,把Sysdatabases表中MYDB數(shù)據(jù)庫的status屬性設(shè)為‘37268’,把MYDB數(shù)據(jù)庫設(shè)置為緊急模式。


  update sysdatabases set status=32768 where name=’MYDB’


  然后再把數(shù)據(jù)庫MYDB設(shè)置為單用戶模式,然后重啟SQL Server服務(wù)器,并把數(shù)據(jù)庫MYDB設(shè)為單用戶模式


  Sp_dboption 'MYDB','single user', 'true'


  再運(yùn)行以下語句,檢查數(shù)據(jù)庫MYDB


  DBCC CHECKDB(‘MYDB’)


    2)還原數(shù)據(jù)庫的狀態(tài)


  運(yùn)行以下語句,就可以把數(shù)據(jù)庫的狀態(tài)還原:


  Update Sysdatabases Set status=28 Where name=’MYDB’


  Sp_Configure ’allow updates’,0


  Reconfigure With Override


  此時(shí)的數(shù)據(jù)庫仍不能工作,還要進(jìn)行以下的操作,才能恢復(fù)。


  3)利用DTS的導(dǎo)入導(dǎo)出向?qū)В褦?shù)據(jù)庫MYDB導(dǎo)入到一個(gè)新建數(shù)據(jù)庫MYDBNEW中,然后新建一個(gè)數(shù)據(jù)庫MYDBNEW,右擊MYDBNEW,選擇“所有任務(wù)”下的“導(dǎo)出數(shù)據(jù)”功能,打開導(dǎo)入向?qū)В驯斫Y(jié)構(gòu)、數(shù)據(jù)視圖和存儲(chǔ)過程導(dǎo)入到MYDBNEW中,然后再用此功能把MYDBNEW庫替換成原來的MYDB庫即可。


  可以知道,恢復(fù)一個(gè)有活動(dòng)事務(wù)的日志是麻煩多了,所以在數(shù)據(jù)庫維護(hù)的時(shí)候,切不要小看事務(wù)日志。


  二、事務(wù)在不斷增大的時(shí)候如何縮小日志


  當(dāng)數(shù)據(jù)如在頻繁修改或者刪除的同時(shí),事務(wù)的日志就會(huì)不斷的增加,甚至超過了碰盤的大小,這時(shí)候就不能因此而直接刪除了事務(wù)日志的LDF文件,否則可能會(huì)帶來很大的麻煩。為了避免這種情況,我們需要有如下的操作:


  1) 盡量避免tempdb 日志與用戶數(shù)據(jù)庫日志放在同一磁盤上,tempdb 數(shù)據(jù)庫和事務(wù)日志具有足夠的空間來處理索引操作。不能在索引操作完成之前截?cái)?tempdb 事務(wù)日志。


  2) 通過執(zhí)行下列命令來縮小事務(wù)日志


  DBCC SHRINKDATABASE


  DBCC SHRINKFILE


  操作會(huì)立即嘗試將物理日志文件收縮為所要求的大小。


  如果虛擬日志文件中的邏輯日志未超出 target_size 標(biāo)記,則釋放 target_size 標(biāo)記之后的虛擬日志文件,并成功完成 DBCC 語句,不顯示任何信息。


  如果虛擬日志中的邏輯日志超出了 target_size 標(biāo)記,SQL Server Database Engine 將釋放盡可能多的空間并顯示一個(gè)信息性消息。該消息告訴您必須執(zhí)行什么操作來從文件尾部的虛擬日志中刪除邏輯日志。執(zhí)行完該操作后,可以重新發(fā)出 DBCC 語句以釋放剩余的空間。


  DBCC SHRINKFILE 語句還顯示一個(gè)信息性消息,指出它不能釋放所要求的全部空間,并告訴您可以執(zhí)行 BACKUP LOG 語句來釋放剩余的空間。


  三、事務(wù)日志的還原


  事務(wù)日志在還原的時(shí)候可以選擇三種恢復(fù)模式:簡單模式、完整模式和大容量日志模式。


    簡單恢復(fù)模式


  此模式簡略地記錄大多數(shù)事務(wù),所記錄的信息只是為了確保在系統(tǒng)崩潰或還原數(shù)據(jù)備份之后數(shù)據(jù)庫的一致性。


  由于舊的事務(wù)已提交,已不再需要其日志,因而日志將被截?cái)唷=財(cái)嗳罩緦h除備份和還原事務(wù)日志。但是,這種簡化是有代價(jià)的,在災(zāi)難事件中有丟失數(shù)據(jù)的可能。沒有日志備份,數(shù)據(jù)庫只可恢復(fù)到最近的數(shù)據(jù)備份時(shí)間。如果您使用的是 SQL Server Enterprise Edition,需要考慮此問題。此外,該模式不支持還原單個(gè)數(shù)據(jù)頁。


  完整恢復(fù)模式


  此模式完整地記錄了所有的事務(wù),并保留所有的事務(wù)日志記錄,直到將它們備份。在 SQL Server Enterprise Edition 中,完整恢復(fù)模式能使數(shù)據(jù)庫恢復(fù)到故障時(shí)間點(diǎn)。


  大容量日志恢復(fù)模式


  此模式簡略地記錄大多數(shù)大容量操作(例如,索引創(chuàng)建),完整地記錄其他事務(wù)。


  大容量日志恢復(fù)提高大容量操作的性能,常用作完整恢復(fù)模式的補(bǔ)充。大容量日志恢復(fù)模式支持所有的恢復(fù)形式,但是有一些限制,備份包含大容量日志記錄操作的日志時(shí),需要訪問數(shù)據(jù)庫內(nèi)的所有數(shù)據(jù)文件。如果數(shù)據(jù)文件不可訪問,則無法備份最后的事務(wù)日志,而且該日志中所有已提交的操作都將丟失。


該文章在 2011/5/5 22:54:54 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved