評估協力廠商檔案快取系統與 SQL Server 時要考慮的關鍵因素

文章翻譯 文章翻譯
文章編號: 917043 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

這篇文章概述了一些關鍵因素的客戶應該知道的評估快取系統的協力廠商檔案時。

協力廠商檔案快取實作可能會增加效能 Microsoft SQL Server 資料庫時正確地執行。不過的特定實作與這些產品的組態可能會使資料遺失的風險較高的 SQL Server 資料庫。 客戶應該完全測試設定,以確保適當的資料完整性。

包括 URL 及其他網際網路網站] 參考此文件中的資訊有若有變更,恕不另行通知。 除非否則能注意公司、 組織、 產品、 網域名稱、 電子郵件地址、 標誌,人]、 [位置,] 及 [事件描繪於此處所提及之範例均屬虛構。 沒有與任何真實的公司、 組織、 產品、 網域名稱、 電子郵件地址、 標誌、 人員、 地方或事件是影射應該是。 遵守所有適用之著作權法是使用者的責任。 在不影響著作權權利,這份文件的任何一部分可能會重製、 儲存於或導入擷取系統或以任何形式或任何方式 (電子、 機械、 影印、 錄音,或其他方式) 或任何用途未經 Microsoft Corporation 的明示書面許可。

Microsoft 可能擁有專利權、 專利申請、 商標、 著作權或其他智慧財產權這份文件中的主旨。 除非 Microsoft 書面合約另有說明,否則提供本文件並不授予您任何授權這些專利、 商標、 著作權或其他智慧財產權。

c) 2006 Microsoft 公司。本電腦程式著作。

Microsoft]、 [Windows]、 [Windows Server] 及 [SQL Server 是註冊的商標] 或 [在美國及 (或) 其他國家/地區的 Microsoft 公司的商標。

本文特別為 SQL Server 撰寫,但通常適用於由 Active Directory 及 Exchange 伺服器產品時一併使用的 Jet 資料庫。

其他相關資訊

本節概述需求,並與協力廠商提供詳細的範例應該完全討論部署任何解決方案之前。客戶也應該採取特別地小心,來測試各種修復案例,以確定正確地維護資料完整性。

SQL Server 的輸入/輸出 (I/O) 需求

任何 SQL Server 資料庫或備份檔案需要支援預先寫入記錄 (WAL) 通訊協定的儲存體基本原則。這些基本原則是下列的文件中所述:
SQL Server 2000 I/O 基本概念
http://technet.microsoft.com/en-us/library/cc966500.aspx
附註發行項也適用於 SQL Server 2005。
230785SQL Server 7.0、 SQL Server 2000 和 SQL Server 2005 記錄和資料儲存體演算法擴充資料可靠性
以下是一些重要的需求的清單:
  • 必須維護寫入排序作業。
  • 必須維護相依寫入一致性。
  • 寫入必須永遠受到保護,或穩定媒體上。
  • 必須發生損毀的 I/O 預防。

協力廠商產品認證並不能保證的相容性或安全

第三方廠商產品或特定供應商可以接收 Microsoft 標誌憑證。不過,協力廠商憑證或特定的 Microsoft 標誌並不證明相容性或適合某特定用途的適用性 SQL Server、 Exchange 伺服器或 Active Directory。

FILE_FLAG_WRITETHROUGH 和 FILE_FLAG_NO_BUFFERING

特別資料庫的 Microsoft 產品是使用在寫出並沒有緩衝的旗標開啟資料庫檔案時要避免資料遺失。 任何對這些檔案的寫入要求必須保護到穩定媒體。否則,可以發生資料遺失。 下面列出是特定檔案系統快取可能會公開 (Expose) 的範例:
  • 寫入結合] 和 [寫入重新調整順序
    若要減少實體 I/O 要求,非電池架構快取,通常結合,並重新排列寫入作業立即中斷 WAL 通訊協定需求。
  • I/O 區塊大小
    類似於寫入結合和重新排列是 I/O 的區塊大小。快取會試著完成 I/O 根據 I/O 路徑區塊大小。再次,這可以提供的效能提升,但破壞資料庫會開啟並立即中斷 WAL 通訊協定需求。

討論要點及範例

下列章節提供索引鍵的範例及資料完整性和安全的相關討論要點。它使用為常見的失敗及清晰度,點的電源失敗,但這通常可以與其他類似的資料庫完整性問題而導致的各種問題取代。

範例 1: 資料遺失與實體或邏輯損毀

考慮下列案例:
  1. 寫入記錄檔資料錄時資料庫中的頁面 100。
  2. 非電池架構快取中保存記錄檔資料錄,但資料庫引擎被告知記錄檔寫入是完成 「 安全到馬廄媒體 」。
  3. 資料庫引擎會視為 LSN 強化,並發出頁面 100 的寫入。
  4. 頁面 100 也會保留在非電池架構快取中。
  5. 認可交易完成不會發生錯誤。
如同它順利交付寫入到穩定媒體,資料庫引擎會繼續處理。電源中斷這個時候不過,將會導致立即遺失資料因為所做的變更不會實際存在於非電池鑲快取之外。損毀復原,因為損毀修復並不知道有關遺失的記錄檔資料錄,而不會嘗試取消復原工作並不表示錯誤。多個物件修改案例 (例如主索引鍵、 外部索引鍵插入) 展開各種類型的資料庫,就會發生的傷害。

有各種其他快取處理 I/O 的方式以小型變更可能發生的問題。簡短的衍生會假設在交易已回復,但頁面 100 做為實體媒體。損毀復原一次不知道記錄檔資料錄 (永遠不會變得要馬廄媒體),的話頁面 100 將不會損毀修復離開邏輯和實體可能是損毀的資料庫時收到復原作業。

範例 2: 疑問的資料庫

某些廠商允許 「 超出檔案 opt",而且通常建議您離開資料庫記錄檔 (為 SQL Server.ldf) 快取中的選擇。 「 退出 」 原則是 「 系統管理員特別有來標示要快取軟體被忽略的檔案。否則,檔案都會自動包括在內。

這是不良的假設,如下列範例反白顯示。Microsoft 建議所有的資料庫和備份檔案會選擇超出這類快取。
  1. 記錄檔被選擇出,所以寫入取得穩定的媒體。
  2. 修改版面 100。
  3. 資料庫引擎會執行 「 檢查點 」 作業。
  4. 引擎會告知所有資料庫的頁面和記錄檔資料錄的安全 (加強,檢查點視為最多的時間點)。但是,資料分頁並非所有預存或穩定媒體中。
  5. SQL Server 資料庫正在修復模式"SIMPLE 」,以便檢查點現在會截斷記錄檔資料錄。
  6. 是指只是核取的頁面 100 修改一次。
這種情況下有公開資料遺失資料庫,而通常會導致可疑的資料庫。再次,如果電源中斷發生損毀修復有沒有記錄檔資料錄,因為它們不再存在由於來截斷。 資料庫引擎具有表示資料庫頁有缺少應該是安全性檢查點期間的資料沒有資訊。損毀復原嘗試分析第二個修改在 100] 頁面上的,但會失敗,因為頁面 100 已不正確安全穩定媒體來一次的檢查點。

損毀復原使用儲存在頁首中的 LSN 值來決定復原需求。
  • 如果 LSN 在頁面上的是相等或較新以外的記錄檔資料錄,修復會執行頁面上沒有進一步的作業,因為頁面已經一致且 LSN 比較為基礎的記錄檔資料錄。
  • 如果在頁面上的 LSN 超過記錄檔資料錄,修復都必須執行適當的操作,以將網頁傳回給適當的狀態。如果復原已經發現遺失的資料條件並不能頁面正確回到其合法的狀態,就會失敗復原。
此範例從先前的 LSN 儲存在記錄檔資料錄進行第二個頁面 100 的修改並不存在於在頁首,而且沒有存在,才能取消復原頁面沒有先前的記錄檔資料錄。因此,資料庫被標示為可疑,成無法安全地繼續復原。

範例 3: 備份有不正確-無訊息備份鏈結中斷

範例 2 是一小部份這些類型的可能遇到的問題。為使本範例的復原模式而不是"SIMPLE 」 讓我們將資料庫在完整復原 」 模式中,但需要記錄檔與資料庫的定期備份。剛開始,它會出現這是較佳因為有完整的記錄檔鏈結,可能只是執行以更正問題的還原順序。

這可能不是有效的假設,如某些快取實作使用 「 退出 」 原則,所以備份檔或它的部分可以快意外取。 當 SQL Server 清除之備份檔案時,SQL Server 會要求或使用 Win32 API FlushFileBuffers 函式的穩定媒體中正確地儲存所有寫入備份媒體。 因此,如果快取廠商不能確保所有寫入會適當地都清除,FlushFileBuffers 函式呼叫期間到馬廄媒體之前在作業順利完成,資料庫引擎可以截斷該記錄檔不安全的備份。 再次,電源失敗此時產生的條件,其中適當記錄檔資料錄遺漏,而且可能導致損毀復原至失敗。 更重要的是損毀修復可能無法偵測這因為資料庫中遺失的記錄檔資料錄的而且可能會以無訊息模式損壞備份鏈結。只有在嘗試執行的備份還原時將資料庫引擎能夠指出備份已損毀。

範例 4: 無效的資料庫狀態

資料庫檔案包含彼此需要嚴格寫入透過及訂購規範套用到所有它們當成群組之間的相依性。 檢查點、 變更檔案大小、 差異式備份、 非記錄作業及 BULK 記錄復原模式是幾個需要透過寫入發生於資料檔案的索引鍵的資料庫活動進行原則就像選擇出記錄檔不正確的假設。

範例 5: 快照集的資料庫資料遺失 – 可能是無訊息

SQL Server 2005 引進了點時間查詢中的快照集資料庫。這會使用寫入時複製資料庫技術來協助保衛快照集資料資料庫中的資料頁面的複本之前為基底資料庫中的 [資料] 網頁建立新的修改。這個程序需要頁面受到保護的快照集資料庫中交易才能繼續進行。如果在或是在穩定媒體頁面並未受到保護會維持資料完整性問題。快照集資料庫不包含交易記錄檔,因此頁面寫入是很重要。如果電源中斷像發生可能可能已經變更主要資料庫頁面,但在快照集不會反映上一個影像,因為快取的寫入已中斷。

如何設定

方式來設定產品,提供從類似非電池檔案快取備份快取為特定的廠商實作。 不過,可以套用幾個規則:
  • 所有寫入必須先都完成中或穩定媒體快取指示作業系統在 I/O 完成。
  • 資料可以快取,只要從快取提供服務的讀取的要求傳回相同的影像,如位於中或在穩定媒體。
這些規則基本上表示非電池鑲快取可能是有效讀取作業,但不是用於寫入要求。以適當的組態這可能會提供資料庫引擎的效能增益。這應該不過,因為設定預留東西像可以在 SQL Server 所用的 RAM 可能會降低整體效能經過仔細,測試。SQL Server,或許能夠使用額外的記憶體比一般的快取機制的多個精確度。

唯讀的資料庫

唯讀的資料庫可能是一個很好的範例這些類型的產品 Excel。 如果資料庫已先建立,並儲存或以確保資料完整性、 ALTER 資料庫陳述式用來標記請閱讀僅限],資料庫及資料庫隨後指派給快取機制的穩定媒體中,可能會遇到效能提升。 某些實作在快取,允許更多實體要從快取擷取資料,並減少實體 I/O 保留壓縮的資料庫頁面的影像。

警告 資料庫應永遠不會進行讀取寫入當指派並不會維護 WAL 通訊協定的快取。

安全性

引入如 RAM 為基礎的檔案系統快取一個快取介紹資料的另一個"記憶體中 」 位置。產品,如資料庫引擎可能假設重要資料在穩定媒體或已儲存,並適當地保留存取控制清單 (ACL) 保護。RAM 為基礎的快取可以公開一組是唯一相比較穩定媒體的安全性問題的資料。比方說如果應用程式為了使用像 SecureZeroMemory 函式每次它完成使用重要資訊,應用程式會有資料不存在於 RAM 的期望。 不過,如果應用程式預期它才能在中或穩定媒體時,一種資料可維持快取,它可能改變安全性考量。

資料完整性檢查

Microsoft 總是建議強式和清除資料完整性策略。這應該包括但不限於,還原的備份與實際執行和已還原的資料庫上的一般 DBCC CHECKDB 作業。

Microsoft 也建議增加這些安全測試的頻率,評估並實作環境的變更時,或任何考量發生相關環境的穩定性。

如需有關如何使用 [SQLIOStress 公用程式,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
231619如何使用 「 SQLIOStress 」 公用程式,如 SQL Server 的磁碟子系統的壓力

TEMPDB 資料庫

很可能在某些快取的系統上找出 TEMPDB 資料庫。 數個因素應仔細視為並測試時評估 TEMPDB 資料庫在此設定的儲存位置。 下列 「 Microsoft 知識庫 」 文件會概述 I/O 需求、 相關聯的支援界限和可能的效能提升。
917047TEMPDB 資料庫的 Microsoft SQL Server I/O 子系統需求

支援

Microsoft SQL Server 支援的幫助使用標準的資料修復技術的客戶。如果產品安裝在電腦繪製成問題 Microsoft SQL Server、 Active Directory 及 Exchange 支援的資料完整性可能會要求產品被解除安裝,將不交戰根本原因分析中直到這類時間問題可以重現沒有該產品。

Microsoft 不保證或驗證的協力廠商產品正常運作的 SQL Server。此外,Microsoft 並不提供任何擔保、 保證或陳述式的 SQL Server 搭配使用的任何協力廠商產品售。

?考

請仔細考慮所提供的下列參考來評估 SQL Server 效能改進的額外資訊:

826433加入至偵測未回報的 I/O 問題的其他 SQL Server 診斷
828339錯誤訊息 823 可能表示硬體問題或在 SQL Server 的系統問題
234656使用 SQL Server 快取磁碟機
110352Microsoft SQL Server 效能最佳化
304261支援在 SQL Server 網路資料庫檔案的描述
910716與 SQL Server 2000 和 2005年使用者資料庫使用的協力廠商遠端鏡像解決方案的支援
913945Microsoft 並不保證協力廠商的產品將使用 Microsoft SQL Server
SQL Server 會要求系統,以支援 ‘ 保證傳遞穩定媒體 ’ Microsoft SQL Server Always-On 存放裝置方案檢閱程式] 下所述。 Fo如 SQL Server 資料庫引擎的輸入與輸出需求的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
967576Microsoft SQL Server 資料庫引擎的輸入/輸出需求

屬性

文章編號: 917043 - 上次校閱: 2007年11月2日 - 版次: 1.5
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
關鍵字:?
kbmt kbexpertiseadvanced kbinfo KB917043 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:917043
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