如何變更佇列資料庫的位置
適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
上次修改主題的時間: 2009-01-27
queue 是等候進入下一個處理階段之訊息的暫存位置。每個佇列代表傳輸伺服器以特定順序處理的訊息邏輯集合。
Microsoft Exchange Server 2007 使用可延伸儲存引擎 (ESE) 資料庫進行佇列郵件儲存。ESE 的前身為 JET,是一種用以對 Exchange Server 中的基礎資料庫結構定義低階 API 的方法。所有不同的佇列皆儲存於單一 ESE 資料庫中。只有已安裝 Hub Transport server role 或 Edge Transport server role 的伺服器上才會有佇列。
開始之前
若要執行下列程序,您使用的帳戶必須已委派下列資格:
- Exchange Server 系統管理員角色和目標伺服器的本機 Administrators 群組
若要在已安裝 Edge Transport server role 的電腦上執行下列程序,則必須使用該電腦之本機 Administrators 群組成員的帳戶進行登入。
如需管理 Microsoft Exchange Server 2007 所需之權限、委派角色以及權利的相關資訊,請參閱權限考量。
變更佇列資料庫的位置
佇列資料庫的位置由 EdgeTransport.exe.config 應用程式組態檔中的 QueueDatabasePath 參數所控制,該檔案位於 C:\Program Files\Microsoft\Exchange Server\Bin 目錄中。您可以使用下列兩種方法來變更佇列資料庫的位置:
- 使用 Move-TransportDatabase.ps1 指令碼
Exchange 2007 Service Pack 1 (SP1) 包含一個新的指令碼,可用來變更「傳輸」資料庫檔案和交易記錄檔的位置。此指令碼也會將資料庫檔案移至您指定的新位置。當您使用 Move-TransportDatabase.ps1 指令碼來移動資料庫檔案時,請務必考慮下列事項:- 如果目的磁碟機和來源磁碟機不同,目的磁碟機必須要有足夠的可用空間。指令碼需要 2 GB,再加上移動現有資料庫檔案或交易記錄檔所需的空間。
- QueueDatabasePath 參數和 IPFilterDatabasePath 參數不能有相同的值。
- QueueDatabaseLoggingPath 參數和 IPFilterDatabaseLoggingPath 參數不能有相同的值。
- 如果目的地路徑不存在,則指令碼會自動建立適當的路徑。
- 現有的 EdgeTransport.exe.config 檔案會自動另存為 EdgeTransport.exe.config.yyyyMMddHHmmss.old
- 手動移動資料庫檔案
雖然建議您使用 Move-TransportDatabase.ps1 指令碼來移動「傳輸」資料庫檔案,但您也可以手動移動資料庫檔案。下列清單將說明您在變更佇列資料庫的位置時,應考量的某些重要事項:- 若目標目錄不存在,而上層目錄具有下列權限,則會為您建立目標目錄:
網路服務:完全控制
系統:完全控制
系統管理員:完全控制 - 現有的佇列資料庫檔案 Mail.que 與 Trn.chk 不會移動。新的佇列資料庫檔案會在您儲存 EdgeTransport.exe.config 應用程式組態檔,並重新啟動 Microsoft Exchange Transport 服務後,建立於新的位置上。現有的資料庫檔案會保留在舊的位置上。但不會再使用這些檔案。
- 若您要變更佇列資料庫的位置,但仍要重複使用現有的佇列資料庫檔案,則必須在 Microsoft Exchange Transport 服務停止時移動或複製資料庫檔案。
- 若目標目錄不存在,而上層目錄具有下列權限,則會為您建立目標目錄:
將佇列資料庫移至新位置
使用 Move-TransportDatabase.ps1 指令碼將佇列資料庫移至新位置
啟動 [Exchange 管理命令介面]。
在命令介面提示字元中,執行下列命令。將 <destination path> 取代為適當的路徑,例如 E:\Exchange\Transport\Queue。
Move-TransportDatabase.ps1 -QueueDatabasePath: <destination path>
在新的位置上手動建立新的佇列資料庫
在新的位置上建立新的佇列資料庫
使用記事本開啟下列檔案:
C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。
修改
<appSettings>
區段的下列行:<add key="QueueDatabasePath" value="<LocalPath>" />
例如,若要在位置 "C:\Queue\QueueDB" 上為交易記錄建立新的位置,請修改 QueueDatabasePath 參數,如下所示:
<add key="QueueDatabasePath" value="C:\Queue\QueueDB" />
儲存並關閉 EdgeTransport.exe.config 檔案。
重新啟動 Microsoft Exchange Transport 服務。
確認新的 Mail.que 與 Trn.chk 檔案已建立於新的位置上。
將不用的 Mail.que 與 Trn.chk 檔案從原始位置上移除。
在新的位置上手動重複使用現有的佇列資料庫
重複使用新位置上的現有佇列資料庫
建立用以保存佇列資料庫的目錄。請確定目錄所套用的權限正確無誤。
使用記事本開啟下列檔案:C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。
修改
<appSettings>
區段的下列行:<add key="QueueDatabasePath" value="<LocalPath>" />
例如,若要將位置變更為 "C:\Queue\QueueDB",請以下列方式修改 QueueDatabasePath 參數:
<add key="QueueDatabasePath" value="C:\Queue\QueueDB" />
儲存並關閉 EdgeTransport.exe.config 檔案。
停止 Microsoft Exchange Transport 服務。
將 Mail.que 與 Trn.chk 檔案從原始位置複製到新位置上。
啟動 Microsoft Exchange Transport 服務。
將不用的 Mail.que 與 Trn.chk 檔案從原始位置上移除。
變更佇列資料庫交易記錄的位置
佇列資料庫交易記錄的位置,由 EdgeTransport.exe.config 應用程式組態檔中的 QueueDatabaseLoggingPath 參數所控制。您可以使用下列兩種方法來變更交易記錄檔的位置:
- 使用 Move-TransportDatabase.ps1 指令碼。
Exchange 2007 Service Pack 1 (SP1) 包含一個新的指令碼,可用來變更「傳輸」資料庫檔案和交易記錄檔的位置。此指令碼也會將交易記錄檔移至您指定的新位置。當您使用 Move-TransportDatabase.ps1 指令碼來移動資料庫檔案時,下列清單會描述一些必須考量的重要事項:- 如果目的磁碟機和來源磁碟機不同,目的磁碟機必須要有足夠的可用空間。指令碼需要 2 GB,再加上移動現有資料庫檔案或交易記錄檔所需的空間。
- QueueDatabasePath 參數和 IPFilterDatabasePath 參數不能有相同的值。
- QueueDatabaseLoggingPath 參數和 IPFilterDatabaseLoggingPath 參數不能有相同的值。
- 如果目的地路徑不存在,則指令碼會自動建立適當的路徑。
- 現有的 EdgeTransport.exe.config 檔案會自動另存為 EdgeTransport.exe.config.yyyyMMddHHmmss.old
- 手動移動資料庫檔案
雖然建議您使用 Move-TransportDatabase.ps1 指令碼來移動「傳輸」交易記錄檔,但您也可以手動移動檔案。
下列清單將說明有關如何變更佇列資料庫交易記錄位置的某些要點:- 若目標目錄不存在,而上層目錄具有下列權限,則會為您建立目標目錄:
網路服務:完全控制
系統:完全控制
系統管理員:完全控制 - 現有佇列資料庫交易記錄檔 Trn.log、Trntmp.log、Trnnnn.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 不會移動。新的佇列資料庫交易記錄會在您儲存 EdgeTransport.exe.config 應用程式組態檔,並重新啟動 Microsoft Exchange Transport 服務後,建立於新的位置上。現有的交易記錄檔會保留在舊的位置上。但不會再使用這些檔案。
附註: Temp.edb 可在 Microsoft Exchange Transport 服務啟動時,用以驗證佇列資料庫架構。Temp.edb 雖然不是交易記錄檔,但仍會與交易記錄檔存放在相同的位置上。 - 若目標目錄不存在,而上層目錄具有下列權限,則會為您建立目標目錄:
將交易記錄檔移至新位置
使用 Move-TransportDatabase.ps1 指令碼將交易記錄檔移至新位置
啟動 [Exchange 管理命令介面]。
在命令介面提示字元中,執行下列命令。將 <destination path> 取代為適當的路徑,例如 E:\Exchange\Transport\Queue。
Move-TransportDatabase.ps1 -QueueDatabaseLoggingPath: <destination path>
在新的位置上手動建立新的佇列交易記錄
在新的位置上建立新的佇列資料庫交易記錄
使用記事本開啟下列檔案:
C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。
修改
<appSettings>
區段的下列行:<add key="QueueDatabaseLoggingPath" value="<LocalPath>" />
例如,若要在 "C:\Queue\QueueLogs" 這個位置上建立新的佇列資料庫,請以下列方式修改 QueueDatabaseLoggingPath 參數:
<add key="QueueDatabaseLoggingPath" value="C:\Queue\QueueLogs" />
儲存並關閉 EdgeTransport.exe.config 檔案。
重新啟動 Microsoft Exchange Transport 服務。
確認新的 Trn.log、Trntmp.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案已建立於新的位置上。
將不用的 Trn.log、Trntmp.log、Trnnnn.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案從原始位置中移除。
在新的位置上手動重複使用現有的佇列交易記錄
您通常不需重複使用新位置上的現有交易記錄。Microsoft Exchange Transport 服務的正常關閉程序,會將所有尚未認可的交易記錄項目認可到佇列資料庫中。此時會使用循環記錄。因此,交易記錄中若含有先前認可的資料庫變更,將不會保留。只有在因 Microsoft Exchange Transport 服務未正確關閉或硬碟故障所導致的嚴重損壞修復作業中,才必須還原及重新尋找現有的佇列資料庫及其現有的交易記錄。
重複使用新位置上的現有佇列資料庫交易記錄
建立用以保存佇列資料庫交易記錄的目錄。請確定目錄所套用的權限正確無誤。
使用記事本開啟下列檔案:C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。
修改
<appSettings>
區段的下列行:<add key="QueueDatabaseLoggingPath" value="<LocalPath>" />
例如,若要將位置變更為 "C:\Queue\QueueLogs",請以下列方式修改 QueueDatabaseLoggingPath 參數:
<add key="QueueDatabaseLoggingPath" value="C:\Queue\QueueLogs" />
儲存並關閉 EdgeTransport.exe.config 檔案。
停止 Microsoft Exchange Transport 服務。
將現有的 Trn.log、Trntmp.log、Trnnnnn.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案複製到新的位置上。
啟動 Microsoft Exchange Transport 服務。
將不用的 Trn.log、Trntmp.log、Trnnnnn.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案從原始位置中移除。
相關資訊
如需佇列資料庫的相關資訊,請參閱管理佇列資料庫。
依預設,Move-TransportDatabase.ps1 指令碼位於 Exchange 2007 SP1 電腦的下列資料夾中:
%ProgramFiles%\Microsoft\Exchange Server\Scripts
指令碼接受下列參數:
- -QueueDatabasePath
- -QueueDatabaseLoggingPath
- -IPFilterDatabasePath
- -IPFilterDatabaseLoggingPath
- -TemporaryStoragePath
為了移動「傳輸」資料庫或交易記錄檔,指令碼會執下列動作:
指令碼會驗證參數值。
- 如果指定的目的地路徑和來源路徑相同,指令碼則會略過驗證動作。
- QueueDatabasePath 和 IPFilterDatabasePath 值不能相同。這是因為兩個位置都包含 Trn.chk 檔案。
- QueueDatabaseLoggingPath 和 IPFilterDatabaseLoggingPath 值不能相同。這是因為記錄檔有相同的檔案名稱。
- 指令碼會驗證有 2 GB 再加上等於必須複製之檔案大小的可用空間。例如,必須有 2 GB 再加上 Mail.que、Trn.chk 及 Ipfiltering.edb 檔案大小的可用空間。
附註: 如果目的地路徑和來源檔案位於相同磁碟機上,指令碼則會略過檔案空間驗證。 指令碼會視情況建立資料夾。
- 必要時,指令碼會建立目的資料夾。
- 如果 Administrators 群組、本機系統帳戶或網路服務帳戶都不具目的地路徑的「完全控制」權限,則指令碼會新增權限。
- 如果 Administrators 群組、本機系統帳戶或網路服務帳戶具有目的地路徑的「拒絕」存取規則,則指令碼會產生警告訊息。在此情況下,指令碼不會結束。
指令碼會停止 MSExchangeTransport 服務。
指令碼會備份 EdgeTransport.exe.config 檔案,並命名為 EdgeTransport.exe.config.yyyyMMddHHmmss.old。
指令碼會根據所使用的命令,將下列檔案移至目的地路徑:
- QueueDatabasePath:Mail.que、Trn.chk
- IPFilterDatabasePath:IPFiltering.edb、Trn.chk
- 記錄路徑:Trn*.log、Trnres00001.jrs、Trnres00002.jrs、Temp.edb
指令碼會更新 EdgeTransport.exe.config 檔案,然後儲存檔案的變更。
指令碼會啟動 MSExchangeTransport 服務。
若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.