SQL Server 2012年中,會發生記憶體不足錯誤

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

在此頁中

徵狀

Microsoft SQL Server 2012年可能會遇到一些記憶體不足的錯誤,因為發生內部的記憶體遺漏。在此情況下,遺漏的記憶體所耗用的MEMORYCLERK_SQLLOGPOOL記憶體的顧客,用於在內部交易記錄檔活動。比方說, MEMORYCLERK_SQLLOGPOOL記憶體索賠要求是在內部使用,如下列的交易記錄檔活動:
  • 主要複本上的 AlwaysOn 變更擷取活動
  • AlwaysOn 重做次要可用性複本上的管理員活動

這個問題可能被 aggravated 所裝載許多可用性資料庫的 SQL Server 的執行個體上已經同步處理的交易量很高。這個問題發生時,SQL 錯誤記錄檔會記錄類似下列的錯誤訊息:
無法配置分頁: FAIL_PAGE_ALLOCATION 8
錯誤: 701,嚴重性: 17,狀態: 107。
沒有足夠的系統記憶體資源資料庫中的 ' 內部' 執行這項查詢。
錯誤: 701,嚴重性: 17,狀態: 123。
若要執行這項查詢的 ' PoolName' 的資源資料庫中沒有足夠的系統記憶體。
錯誤: 701,嚴重性: 17,狀態: 107。(參數:。因為發生錯誤格式化期間,錯誤會列印在簡明模式中。追蹤 ETW、 通知等將會略過。
錯誤: 17312,嚴重性: 16,狀態: 1。
SQL Server 正在終止一個系統或背景工作 HADR 工作因為發生錯誤的工作 (安裝程式狀態 1) 啟動。
由於記憶體不足而卸載已標示 AppDomain 3181 (<appdomain>)。
卸載 AppDomain 3181 (<appdomain>)。
錯誤: 9602,嚴重性: 16,狀態: 1。
無法啟動系統工作,錯誤碼為 28709,狀態 19。
錯誤: 17300,嚴重性: 16,狀態: 1。
SQL Server 無法執行新的系統工作,可能是因為沒有足夠記憶體或已設定的工作階段數目超過伺服器允許的最大。請確認伺服器有足夠的記憶體。使用選項 '使用者連線' sp_configure 檢查允許的使用者連線的最大數目。您可以使用 sys.dm_exec_sessions 來檢查目前的工作階段,包括使用者處理序數目。
錯誤: 17312,嚴重性: 16,狀態: 1。
SQL Server 正在終止一個系統或背景工作 HADR 工作因為發生錯誤的工作 (安裝程式狀態 1) 啟動。
錯誤: 18054,嚴重性: 16,狀態: 1。</appdomain></appdomain>
當 SQL Server 的執行個體裝載資料庫的 SQL Server AlwaysOn 可用性群組中時,資料同步處理複本之間可能會失敗。若要解決這個問題,您可以停止,然後重新啟動 SQL Server。

記憶體不足的狀況發生時,[可用性] 群組中可能有容錯移轉到次要可用性複本,並前者的主要複本可能會繼續服務已停止並重新啟動之前,要達到的錯誤。可用性群組可能會進入的解決或未知的狀態,而可用性該組中所有的資料庫可能無法存取時,直到 「 SQL 服務重新啟動以釋放記錄檔的集區記憶體。

您可以執行的DBCC MEMORYSTATUS陳述式,開始注意到在輸出中的失敗時所MEMORYCLERK_SQLLOGPOOL的記憶體顧客使用多個 gb 的記憶體之。以下是範例輸出:
(節點 0) 的 MEMORYCLERK_SQLLOGPOOL KB
---------------------------------------- -----------
VM 保留 0
VM 認可 0
鎖定的分頁配置 0
SM 保留 0
SM 認可 0
分頁配置 823544
您也可以藉由執行下列 DMV 查詢來查看問題的記憶體分頁數目:
SELECT * FROM sys.dm_os_memory_clerks WHERE type='MEMORYCLERK_SQLLOGPOOL'
SELECT type, name, pages_in_bytes/ 1024 AS PMO_KB FROM sys.dm_os_memory_objects WHERE type like 'MEMOBJ_LOGPOOL%'
另一個可能的問題是查詢無法等待RESOURCE_SEMAPHORE waittype 因為的記錄集區消費者的最大數字,所以無法立即取得緩衝區的集區記憶體時,SQL Server。

此 hotfix 可以解決下列問題:
  • 用來尋找 AlwaysOn 與其他交易記錄檔的密集活動在 SQL Server 2012年中可以使用的交易記錄檔集區的內部先期讀取機制已獲得解決記憶體流失。
  • 當沒有可用的記憶體不足時,SQL Server 釋放的內部記錄檔集區記憶體積極地採取更順利地從記憶體不足失敗中復原。

解決方案

累積更新資訊

SQL Server 2012 sp1 的累積更新 2

若要修正這個問題首次發表累積的更新程式 2] 中。如需有關如何取得此累積更新套件,SQL Server 2012 sp1 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2790947 SQL Server 2012 Service Pack 1 的累積更新套件 2
附註 因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,所有安全性修正先前的 SQL Server 2012 SP1 隨附都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2772858 SQL Server 2012 Service Pack 1 發行之後所發行的 SQL Server 2012年組建

SQL Server 2012年累積更新 5

若要修正這個問題首次發表累積更新 5] 中。如需有關如何取得此累積更新套件,以 SQL Server 2012年的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2777772 SQL Server 2012年的累積更新套件 5
附註 因為組建是累計的每個新的修正程式版本中,會包含所有 hotfix,而所有安全性修正先前的 SQL Server 2012年隨附的都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 Microsoft 知識庫中的文件:
2692828 SQL Server 2012年發行之後所發行的 SQL Server 2012年組建

Hotfix 資訊

您可以從 Microsoft 取得的支援的 hotfix。不過,此 hotfix 旨在修正本文所述的問題。此 hotfix 只適用於發生此特定問題的系統。

Hotfix 是可供下載,有此知識庫文件頂端的 「 下載 Hotfix 」 區段。如果沒有出現這一節,將要求提交到 Microsoft 客戶服務及支援 」 取得 hotfix。

附註 如果發生其他問題,或者如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題,以及此特定 hotfix 無法解決問題。如 「 Microsoft 客戶服務和支援的電話號碼,或是建立個別的服務要求的完整清單,請移至下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註 此 「 下載 Hotfix 」 表單顯示此 hotfix 卻使用的語言。如果看不到您的語言,它可以是因為 hotfix 未提供該語言項目。

重新啟動需求

套用此 hotfix 之後無須將電腦重新開機。

必要條件

若要套用此 hotfix 之後,您必須安裝 SQL Server 2012年。

檔案資訊

此 hotfix 的全域版本具有檔案屬性 (或較新的檔案屬性) 下表中所列。其日期和時間,這些檔案會列在國際標準時間 (UTC)。當您檢視檔案資訊時,它會將其轉換為本地時間。若要尋找要查看 UTC 與本地時間之間的差異,請使用 時區 在索引標籤 日期和時間 在 [控制台] 中的項目。
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Sqlmin.dll2011.110.2387.032,460,2722012-10 月 19-05: 25x64
Sqlservr.exe2011.110.2387.0190,9442012-10 月 19-05: 01x64
Sqlmin.dll2011.110.2387.026,515,9362012-10 月 19-05: 22x86
Sqlservr.exe2011.110.2387.0160,2242012-10 月 19-05: 17x86

屬性

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