INF:如何將 Tempdb 移至其他裝置

文章翻譯 文章翻譯
文章編號: 187824 - 檢視此文章適用的產品。
本文曾發行於 CHT187824
全部展開 | 全部摺疊

在此頁中

結論

根據預設值,Tempdb 是位於主要裝置。您或許會想要移動 Tempdb,讓它整個位於其他裝置。本文就是在說明如何將 Tempdb 移至其他裝置。

其他相關資訊

將 Tempdb 移至其他裝置的基本程序,第一步就是要將 Tempdb 放到 RAM 中,然後確認您要放置 Tempdb 的裝置是唯一的預設裝置 (並至少有 2 MB 的可用空間),最後就是將 Tempdb 移出 RAM。您可以使用 SQL Enterprise Manager (SEM) GUI 工具或發出 ISQL 指令來進行這項作業。下面將說明這兩種方法。

注意:此處所述之方法都會包含建立新裝置以放置 Tempdb 的步驟。然而,您也可以使用現有的裝置,不必建立新的裝置。如果您想使用現有裝置,請跳過下面程序中說明建立新裝置的步驟,然後執行剩下的步驟。此外,如果您決定使用現有裝置,請確認它至少有 2 MB 的可用空間,以便容納從 RAM 移出的 Tempdb。

使用 SQL Enterprise Manager 移動 Tempdb



  1. 請確認您已經備份目前的 Master.dat 檔。若要製作備份,請關閉 SQL Server 然後將 Master.dat 檔複製到其他位置。
  2. 啟動 SQL Enterprise Manager。若要建立放置 Tempdb 的新裝置,請執行下面步驟:

    1. 在 Database Devices 資料夾上按一下右鍵,然後按一下捷徑功能表上的 [新的裝置]。此外,您也可以按一下 [管理] 功能表上的 [資料庫裝置],然後按一下 [新的裝置] 工具列按鈕。
    2. 在 [名稱] 方塊中,輸入名稱:「TEMPDEVICE」(不必加引號),然後按一下滑鼠選取 [預設裝置] 選項。
    3. 在 [大小] 方塊中,輸入新裝置的 MB 數目 (例如,輸入 100 代表這是一個 100-MB 的裝置)。
    4. 按一下 [立即建立]。
  3. 設定 Tempdb 暫時將它放在 RAM 中。若要執行此項作業,請按下面步驟進行:

    1. 在伺服器名稱上按一下右鍵,然後在捷徑功能表上按一下 [設定]。此外,您也可以按一下 [伺服器] 功能表,指向 [SQL Server],然後按一下 [設定]。
    2. 按一下 [設定] 標籤。
    3. 下拉頁面直到您看見「tempdb in RAM (MB)」設定選項為止。在 [目前的] 欄中,輸入要放置 Tempdb 的 RAM 的 MB 數 (例如,2)。這只是暫時性的。接著按一下 [確定]。
  4. 避免讓主要裝置或任何其他裝置成為預設裝置。若要執行此項作業,請按下面步驟進行:

    1. 在 Database Devices 資料夾下,連按兩下主要裝置,或在主要裝置上按一下右鍵,然後按一下捷徑功能表上的 [編輯]。此外,您也可以按一下 [管理] 功能表上的 [資料庫裝置],選取主要裝置,然後按一下 [編輯裝置] 工具列按鈕。
    2. 按一下滑鼠清除 [預設裝置] 核取方塊,然後按一下 [立即變更]。
    3. 如果有任何其他預設裝置,請個別重複執行步驟 a-b,除了在本程序的步驟 2 中所建立的 TEMPDEVICE 外。
  5. 關閉然後重新啟動 SQL Server。Tempdb 現在應該位於 RAM 中,不是位於主要裝置上。
  6. 將 Tempdb 移出 RAM。若要執行此項作業,請重複執行本程序的步驟 3,但在「tempdb in RAM (MB)」設定選項的 [目前的] 欄中輸入 0。
  7. 再次關閉並重新啟動 SQL Server。因為主要裝置已經不是預設裝置,Tempdb 就會跑到指定為預設裝置的新裝置 (亦即,TEMPDEVICE)。
  8. 重新啟動 SQL Server 之後,Tempdb 會設定預設選項,且其預設大小是 2 MB。您可以經由執行下面步驟,以變更 Tempdb 的資料庫選項並增加其大小:

    1. 在 Databases 資料夾下,連按兩下 Tempdb,或是在 Tempdb 上按一下右鍵,然後按一下捷徑功能表上的 [編輯]。此外,您也可以按一下 [管理] 功能表上的 [資料庫],選取 [Tempdb],然後按一下 [編輯資料庫] 工具列按鈕。
    2. 在 [選項] 標籤上,檢查是否有設定下列選項 (在大部分情況下,這些是必要的選項):

      1. 有啟用 [選取/大量複製]。
      2. 有啟用 [截斷位於檢查點的記錄]。
      3. 停用 [單一使用者]。
      4. 停用 [僅供 DBO 使用]。
    3. 在 [資料庫] 標籤上,在 [大小] 方塊中,按一下 [展開]。
    4. 在 [資料裝置] 下,選取 [TEMPDEVICE]。
    5. 在 [大小 (MB)] 方塊中,輸入要加到 Tempdb 的 MB 數。例如,如果您輸入 8,就會替 Tempdb 新增 8 MB,結果大小的總數就是 10 MB。
    6. 按一下 [立即展開]。
    有關擴增資料庫大小的其他資訊,請參閱《SQL Server 線上叢書》的〈擴增或縮小資料庫〉(Expanding or Shrinking Databases) 主題。

使用 ISQL 移動 Tempdb



  1. 請確認您已經備份目前的 Master.dat 檔。
  2. 使用類似下面的陳述式,建立 Tempdb 的新裝置:
          DISK INIT
          NAME = 'TEMPDEVICE',
          PHYSNAME = 'C:\MSSQL\DATA\TEMPDEV.DAT',
          SIZE = 51200,
          VDEVNO = 250
     
    注意:此範例會建立一個 100-MB 的 Tempdb 裝置。您可以依所需修改 SIZE 選項。
  3. 發出下面陳述式,就可以將 Tempdb 放到 RAM 中,不讓主要裝置成為預設裝置,並將新建立的 Tempdevice 設為預設裝置:
          sp_configure 'allow updates', 1
          go
          reconfigure with override
          go
          sp_configure 'tempdb in ram', 2
          go
          sp_diskdefault master, defaultoff
          go
          sp_diskdefault tempdevice, defaulton
          go
          reconfigure with override
          go
     
    注意:

    1. sp_configure 'tempdb in ram' 設定選項的單位是 MB,不是如同 'memory' 參數一樣,所以不是 2-KB 分頁。
    2. 如果您有其他預設裝置,應該要替那些裝置個別執行加上 defaultoff 選項的 sp_diskdefault。若要查看是否有其他預設裝置,您可以執行 sp_helpdevice 預存程序。
  4. 關閉然後重新啟動 SQL Server。Tempdb 現在應該位於 RAM 中,不是位於主要裝置上。
  5. 現在請使用 sp_configure 將 Tempdb 移出 RAM:
          sp_configure 'tempdb in ram', 0
          go
          reconfigure with override
          go
     
  6. 關閉並重新啟動 SQL Server。因為主要裝置已經不是預設裝置,Tempdb 就會跑到新裝置上。
  7. 重新啟動 SQL Server 之後,Tempdb 的預設大小是 2 MB。您可以經由使用類似下面的 ALTER DATABASE 陳述式,以擴增 Tempdb 的大小:
          ALTER DATABASE tempdb
          ON TEMPDEVICE = 8
     
    此陳述式會將 Tempdb 的大小增加 8 MB,大小總共是 10 MB。有關 ALTER DATABASE 陳述式的其他資訊,請參閱《SQL Server 線上叢書》的〈ALTER DATABASE 陳述式〉主題。
  8. 檢查是否有替 Tempdb 設定下列資料庫選項:

    1. 有啟用 [選取/大量複製]。
    2. 有啟用 [截斷位於檢查點的記錄]。
    3. 停用 [單一使用者]。
    4. 停用 [僅供 DBO 使用]。
    若要執行此項作業,請使用 sp_dboption 預存程序。有關如何使用 sp_dboption 以檢視或變更資料庫選項的其他資訊,請參閱《SQL Server 線上叢書》的〈sp_dboption 系統預存程序〉主題。
有關其他資訊,請參閱 Microsoft Knowledge Base 中的下列文件:
115050 : INF: When to Use Tempdb In RAM

158586 : PRB: 'Temp_db' Device Causes Problems Starting SQL Server

141183 : PRB: Log Segment Moved to Device Incorrectly if Tempdb Expanded

110139INF:SQL 交易記錄檔滿溢的原因

?考

本文件是根據 Microsoft Knowledgebase 文件編號 Q187824 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

http://support.microsoft.com/support/kb/articles/Q187/8/24.asp

屬性

文章編號: 187824 - 上次校閱: 2003年11月11日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 6.5 Standard Edition
關鍵字:?
enough for in kbhowto kbinfo not KB187824
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com