溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

為什么NTFS刪除超過(guò)4G大文件或數(shù)據(jù)庫(kù)文件后FILE RECORD大小表現(xiàn)為0

發(fā)布時(shí)間:2020-07-22 00:12:05 來(lái)源:網(wǎng)絡(luò) 閱讀:3152 作者:張宇 欄目:數(shù)據(jù)庫(kù)

為什么NTFS刪除超過(guò)4G大文件或數(shù)據(jù)庫(kù)文件后FILE RECORD大小表現(xiàn)為0?


答:NTFS刪除一個(gè)文件,必須要完成如下幾個(gè)流程,才算完結(jié):

1、更改文件系統(tǒng)$bitmap,釋放空間

2、更改$mft filerecord項(xiàng)的屬性為刪除

3、更改$mft:$bitmap的位圖信息為0,釋放這個(gè)filerecord的占用空間

4、清除目錄鏈表中關(guān)于本文件的item信息。

        這個(gè)流程是理想狀態(tài)下的處理規(guī)則,但實(shí)際上,最頭疼的是OS要考慮這個(gè)問(wèn)題:如果在上述4個(gè)步驟中出現(xiàn)中斷(如突然斷電、死機(jī)等),如何讓下次操作時(shí)能夠繼續(xù),或者維系文件系統(tǒng)還是一致的(最簡(jiǎn)單的,如果文件刪除了,但目錄還在,那總是不合適的,全盤(pán)李檢測(cè)一次又太消耗時(shí)間,而且到底誰(shuí)錯(cuò)了,有時(shí)候也分不清),為了解決這個(gè)問(wèn)題,NTFS引入了$logfile,即日志,簡(jiǎn)單說(shuō)就是為正在執(zhí)行的一個(gè)完整IO運(yùn)作(如刪除一個(gè)文件)事先記錄一下?tīng)顟B(tài),如果沒(méi)做成功,下回直接回滾回沒(méi)做成功的狀態(tài)即可。

        可是問(wèn)題又來(lái)了,如果某個(gè)文件太大,或者存儲(chǔ)鏈表太長(zhǎng)(即碎片太多)。記錄這個(gè)文件元信息部分就會(huì)變得很大,比如一個(gè)文件大小是4G,按4K塊大小算,連續(xù)的位圖至少也得有1M,為了不至于在日志文件中保存太大的信息(比如一個(gè)4T的文件,先保存1g的位圖,太慢且變數(shù)又增大了),NTFS對(duì)于復(fù)雜文件或大文件是采取分批次處理的:即某個(gè)文件可能是不斷地被變小,變小,直至變0。

        為了維持操作的一致性。猜想,NTFS設(shè)了兩種情況,如果是判斷可以一次日志記錄即夠完成某個(gè)IO原子操作的,就不用清除filerecord的大小和位置信息(runlist)了。但如果ntfs無(wú)法一次日志完成一個(gè)IO原子操作,則需要分成多個(gè)獨(dú)立的IO原子操作,每個(gè)IO原子操作記錄一次日志,完成時(shí)更新成新?tīng)顟B(tài)——這樣一來(lái),刪除一個(gè)大文件或多碎片的文件,最后一次IO原子操作后,就會(huì)清除為0大小,RUNLIST清空狀態(tài)。

        這個(gè)問(wèn)題中,4G其實(shí)也不是變數(shù),猜測(cè)來(lái)源于4K塊大小,和文件一次釋放1M個(gè)簇范圍的片區(qū)導(dǎo)致。數(shù)據(jù)庫(kù)往往不容易恢復(fù),大小即使小于4G,其原因是因?yàn)閿?shù)據(jù)庫(kù)不斷增長(zhǎng),碎片較多,片斷化導(dǎo)致元數(shù)據(jù)量大,位置分散,無(wú)法一次性完成釋放等操作。

                                                                                                       -------北亞數(shù)據(jù)恢復(fù)中心 張宇

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI