關於Exchange資料庫檔案過大的正確處理方法

2021-08-24 19:45:34 字數 2138 閱讀 8882

作為一名exchange管理員在管理exchange伺服器的過程中,經常會碰到一些問題,比如日誌過大,exchange資料庫檔案過大等一系列問題,最近發現一些管理員提出stm檔案過大該如何處理?有些網友建議刪除.stm檔案,exchange重新相關服務會產生乙個新的.stm檔案,這種做法雖然也可以,但不值得推薦,即使在刪除stm檔案之前你做過備份,也是不可取的.如果你刪除了.stm檔案意味著你也刪除了與stm同步的edb檔案,這意味著什麼,意味著儲存在伺服器上的郵件將會全部丟失,有人說我做了備份,呼叫那些檔案我還原乙個備份檔案,重掛一下儲存組不就ok啦,貌似可以,但這並不是最佳的解決方案,這就好必電腦一出問題就重灌系統一下,不管大毛病小毛病,重灌系統當然ok,效率並不一定最高。關鍵我們要學會找到和排除問題的方法。

大家都知道exchange的資料庫檔案是由edb,其實stm也是exchange資料檔案的一部分。既然它們都是exchange資料庫檔案,那它們之間又有什麼樣的關係呢?

在早期的exchange版本裡,比如exchange 5.5 只有edb檔案,當時微軟將ex主要定位是乙個內部郵件系統,使用mapi協議,這個協議也是微軟的私有協議,edb檔案的作用是專門為此協議進行優化。但在實際運營過程中,我們實際上不只是利用ex5.5接收內部郵件,還要接收來自internet郵件,mapi並不是乙個標準協議,因此每次收到internet郵件時,都需要做乙個格式轉換處理。這樣顯然影響了ex5.5郵件伺服器效能。

在ex2000及以後的ex版本裡,微軟增加了對internet郵件的支援,這就是stm檔案的**。mapi格式是rpc和二進位制標準的,而stm是純文字加上一些mime編碼格式,這樣的區別使得它們不可能儲存在同一資料庫裡。因此ex2000中,微軟開始使用edb和stm兩個檔案來分別儲存兩種格式的郵件。並且在兩個檔案之間建立了引用和關聯。對於使用者來說,它的郵箱實際上是跨越了edb和stm檔案共同組成的。另外,需要注意的是,edb檔案中還保留著使用者的郵箱結構。所以edb檔案更加重要。那麼edb和stm是怎麼協同工作的呢?我們以幾個情景來分析之。

情景一:使用者使用outlook(mapi)傳送接收郵件

在該情景下,使用者將郵件通過mapi協議提交給資料庫,直接被儲存edb檔案中。當使用者通過mapi訪問郵箱裡的郵件時,如果被訪問的郵件在edb裡,直接返回,如果在stm裡(如外來郵件),則執行轉換,將stm轉換為edb檔案格式,再返回使用者。

情景二:使用者使用標準smtp/pop3/imap4等協議訪問

使用者使用非mapi協議提交的郵件,內容儲存在stm檔案裡,但是由於edb裡有郵箱結構,stm沒有,因此系統會把郵件的重要資訊提取出來,放在edb裡。當使用者用mapi提取郵件時,過程同上,當使用者通過標準協議訪問時,同樣需要進行格式轉換,轉換為stm檔案格式返回。

這些轉換是在後台發生的。對使用者來說是透明的。通過上面的描述,你會看到,這兩個檔案是緊密聯絡的缺一不可。所以,在任何時間我們都不要單獨操作這兩個檔案,它們是乙個整體。同時也要注意的是,無論使用者使用何方式訪問郵箱,都需要向edb檔案請求郵箱結構資訊,這是需要注意的。

上面是原理分析,那麼我們到底該如何解決.stm或.edb檔案過大這個問題呢?個人認為處理方法可以分為三步走。第一步,通過exchange管理器,開啟儲存組,對已刪除賬戶的郵箱進行清理,同時還需要檢視一下已經辭工,而郵箱依然保留的賬戶,這些賬戶裡的郵件是否需要進行收下來,這一部分可能有兩三個原因,乙個原因是有些使用者當然離職了,比如象銷售部門同事,郵箱需要作暫時保留;另乙個部分是出差人員用owa操作,寄件的內容保留在伺服器上面;第三個原因可能是it管理人員配置的時候,未把郵件保留在本地,或使用者誤操作引起,還有的是pop3方式,伺服器上保留備份引起的。這些保留在伺服器上的郵件日積月累將會嚴重影響了exchange資料庫的負擔,這一部分我們根據期類別進行分類處理,能保留在客戶端就保留在客戶端,不重要的要立即清除,剩餘重要的才保留在伺服器。第二步:對伺服器上個人郵箱進行壓縮,命令: c:/>eseutil /d /priv。第三步工作進行離線整理,或者說是叫碎片整理。其實exchange不僅具有離線整理的功能,自己還具有聯機整理的功能,離線整理只有在特殊情況下才需要進行,一般情況下不需要進行離線整理,因為聯機整理已經足夠。離線整理需要解除安裝儲存,郵件伺服器不能正常工作,一般只適合夜間或非工作時間來執行此工作。命令: cd c:/program files/exchsrvr/bin/ eseutil /d ../mdbdata/priv1.edb。

執行完上述三個步驟之後,重新啟動exchange相關服務,我想exchange資料庫的大小應該有明顯的變化。

資料庫檔案

if exists select from mater.sysdatabases where name db 09zy drop database db 09zy go create database zy on primary name zy data filename e 09.9zy1 zy ...

資料庫 檔案

定長記錄 檔案頭維護空閒列表 變長記錄 塊頭 空閒空間 記錄 插入 在空閒空間末尾分配空間 刪除 將條目之前的全部向後移動 大物件通常儲存到特殊檔案,通過指標儲存在記錄中 引數檔案 日誌檔案 套接字檔案 通過套接字檔案,unix系統下本地連線mysql可以採用unix域套接字方式 pid檔案 mys...

資料庫檔案移動

oracle資料庫由資料檔案,控制檔案和聯機日誌檔案三種檔案組成。由於磁碟空間的變化,或者基於資料庫磁碟i o效能的調整等,我們可能會考慮移動資料庫檔案。下面以unix平台為例,分別討論三種資料庫檔案的移動方法。一.移動資料檔案 可以用alter database,alter tablespace兩...