如何變更佇列資料庫的位置

 

適用版本: 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 指令碼將佇列資料庫移至新位置

  1. 啟動 [Exchange 管理命令介面]。

  2. 在命令介面提示字元中,執行下列命令。將 <destination path> 取代為適當的路徑,例如 E:\Exchange\Transport\Queue。

    Move-TransportDatabase.ps1 -QueueDatabasePath: <destination path> 
    

在新的位置上手動建立新的佇列資料庫

在新的位置上建立新的佇列資料庫

  1. 使用記事本開啟下列檔案:

    C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。

  2. 修改 <appSettings> 區段的下列行:

    <add key="QueueDatabasePath" value="<LocalPath>" />
    

    例如,若要在位置 "C:\Queue\QueueDB" 上為交易記錄建立新的位置,請修改 QueueDatabasePath 參數,如下所示:

    <add key="QueueDatabasePath" value="C:\Queue\QueueDB" />
    
  3. 儲存並關閉 EdgeTransport.exe.config 檔案。

  4. 重新啟動 Microsoft Exchange Transport 服務。

  5. 確認新的 Mail.que 與 Trn.chk 檔案已建立於新的位置上。

  6. 將不用的 Mail.que 與 Trn.chk 檔案從原始位置上移除。

在新的位置上手動重複使用現有的佇列資料庫

重複使用新位置上的現有佇列資料庫

  1. 建立用以保存佇列資料庫的目錄。請確定目錄所套用的權限正確無誤。

  2. 使用記事本開啟下列檔案:C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。

  3. 修改 <appSettings> 區段的下列行:

    <add key="QueueDatabasePath" value="<LocalPath>" />
    

    例如,若要將位置變更為 "C:\Queue\QueueDB",請以下列方式修改 QueueDatabasePath 參數:

    <add key="QueueDatabasePath" value="C:\Queue\QueueDB" />
    
  4. 儲存並關閉 EdgeTransport.exe.config 檔案。

  5. 停止 Microsoft Exchange Transport 服務。

  6. 將 Mail.que 與 Trn.chk 檔案從原始位置複製到新位置上。

  7. 啟動 Microsoft Exchange Transport 服務。

  8. 將不用的 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 服務後,建立於新的位置上。現有的交易記錄檔會保留在舊的位置上。但不會再使用這些檔案。
    note附註:
    Temp.edb 可在 Microsoft Exchange Transport 服務啟動時,用以驗證佇列資料庫架構。Temp.edb 雖然不是交易記錄檔,但仍會與交易記錄檔存放在相同的位置上。

將交易記錄檔移至新位置

使用 Move-TransportDatabase.ps1 指令碼將交易記錄檔移至新位置

  1. 啟動 [Exchange 管理命令介面]。

  2. 在命令介面提示字元中,執行下列命令。將 <destination path> 取代為適當的路徑,例如 E:\Exchange\Transport\Queue。

    Move-TransportDatabase.ps1 -QueueDatabaseLoggingPath: <destination path>
    

在新的位置上手動建立新的佇列交易記錄

在新的位置上建立新的佇列資料庫交易記錄

  1. 使用記事本開啟下列檔案:

    C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。

  2. 修改 <appSettings> 區段的下列行:

    <add key="QueueDatabaseLoggingPath" value="<LocalPath>" />
    

    例如,若要在 "C:\Queue\QueueLogs" 這個位置上建立新的佇列資料庫,請以下列方式修改 QueueDatabaseLoggingPath 參數:

    <add key="QueueDatabaseLoggingPath" value="C:\Queue\QueueLogs" />
    
  3. 儲存並關閉 EdgeTransport.exe.config 檔案。

  4. 重新啟動 Microsoft Exchange Transport 服務。

  5. 確認新的 Trn.log、Trntmp.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案已建立於新的位置上。

  6. 將不用的 Trn.log、Trntmp.log、Trnnnn.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案從原始位置中移除。

在新的位置上手動重複使用現有的佇列交易記錄

您通常不需重複使用新位置上的現有交易記錄。Microsoft Exchange Transport 服務的正常關閉程序,會將所有尚未認可的交易記錄項目認可到佇列資料庫中。此時會使用循環記錄。因此,交易記錄中若含有先前認可的資料庫變更,將不會保留。只有在因 Microsoft Exchange Transport 服務未正確關閉或硬碟故障所導致的嚴重損壞修復作業中,才必須還原及重新尋找現有的佇列資料庫及其現有的交易記錄。

重複使用新位置上的現有佇列資料庫交易記錄

  1. 建立用以保存佇列資料庫交易記錄的目錄。請確定目錄所套用的權限正確無誤。

  2. 使用記事本開啟下列檔案:C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config。

  3. 修改 <appSettings> 區段的下列行:

    <add key="QueueDatabaseLoggingPath" value="<LocalPath>" />
    

    例如,若要將位置變更為 "C:\Queue\QueueLogs",請以下列方式修改 QueueDatabaseLoggingPath 參數:

    <add key="QueueDatabaseLoggingPath" value="C:\Queue\QueueLogs" />
    
  4. 儲存並關閉 EdgeTransport.exe.config 檔案。

  5. 停止 Microsoft Exchange Transport 服務。

  6. 將現有的 Trn.log、Trntmp.log、Trnnnnn.log、Trnres00001.jrs、Trnres00002.jrs 與 Temp.edb 檔案複製到新的位置上。

  7. 啟動 Microsoft Exchange Transport 服務。

  8. 將不用的 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

為了移動「傳輸」資料庫或交易記錄檔,指令碼會執下列動作:

  1. 指令碼會驗證參數值。

    • 如果指定的目的地路徑和來源路徑相同,指令碼則會略過驗證動作。
    • QueueDatabasePathIPFilterDatabasePath 值不能相同。這是因為兩個位置都包含 Trn.chk 檔案。
    • QueueDatabaseLoggingPathIPFilterDatabaseLoggingPath 值不能相同。這是因為記錄檔有相同的檔案名稱。
    • 指令碼會驗證有 2 GB 再加上等於必須複製之檔案大小的可用空間。例如,必須有 2 GB 再加上 Mail.que、Trn.chk 及 Ipfiltering.edb 檔案大小的可用空間。
    note附註:
    如果目的地路徑和來源檔案位於相同磁碟機上,指令碼則會略過檔案空間驗證。
  2. 指令碼會視情況建立資料夾。

    • 必要時,指令碼會建立目的資料夾。
    • 如果 Administrators 群組、本機系統帳戶或網路服務帳戶都不具目的地路徑的「完全控制」權限,則指令碼會新增權限。
    • 如果 Administrators 群組、本機系統帳戶或網路服務帳戶具有目的地路徑的「拒絕」存取規則,則指令碼會產生警告訊息。在此情況下,指令碼不會結束。
  3. 指令碼會停止 MSExchangeTransport 服務。

  4. 指令碼會備份 EdgeTransport.exe.config 檔案,並命名為 EdgeTransport.exe.config.yyyyMMddHHmmss.old。

  5. 指令碼會根據所使用的命令,將下列檔案移至目的地路徑:

    • QueueDatabasePath:Mail.que、Trn.chk
    • IPFilterDatabasePath:IPFiltering.edb、Trn.chk
    • 記錄路徑:Trn*.log、Trnres00001.jrs、Trnres00002.jrs、Temp.edb
  6. 指令碼會更新 EdgeTransport.exe.config 檔案,然後儲存檔案的變更。

  7. 指令碼會啟動 MSExchangeTransport 服務。

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.