中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • 為什么NTFS刪除超過4G大文件或數據庫文件后FILE RECORD大小表現為0

為什么NTFS刪除超過4G大文件或數據庫文件后FILE RECORD大小表現為0

發布時間:2020-07-22 00:12:05 來源:網絡 閱讀:3156 作者:張宇 欄目:數據庫

為什么NTFS刪除超過4G大文件或數據庫文件后FILE RECORD大小表現為0?


答:NTFS刪除一個文件,必須要完成如下幾個流程,才算完結:

1、更改文件系統$bitmap,釋放空間

2、更改$mft filerecord項的屬性為刪除

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

4、清除目錄鏈表中關于本文件的item信息。

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

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

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

        這個問題中,4G其實也不是變數,猜測來源于4K塊大小,和文件一次釋放1M個簇范圍的片區導致。數據庫往往不容易恢復,大小即使小于4G,其原因是因為數據庫不斷增長,碎片較多,片斷化導致元數據量大,位置分散,無法一次性完成釋放等操作。

                                                                                                       -------北亞數據恢復中心 張宇

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

聂拉木县| 平安县| 深州市| 太保市| 唐海县| 区。| 元氏县| 库车县| 华阴市| 沅陵县| 永安市| 家居| 莱芜市| 富川| 沁水县| 宜城市| 米脂县| 农安县| 浮梁县| 芦山县| 巴塘县| 潼关县| 时尚| 隆化县| 额济纳旗| 宁安市| 临猗县| 张北县| 霍林郭勒市| 汉中市| 砀山县| 海林市| 大厂| 边坝县| 漯河市| 巴东县| 朝阳县| 夏河县| 台山市| 澎湖县| 苍南县|