none
事件識別碼:701!! RRS feed

  • 一般討論

  • SERVER RAM:8GB

    設定給SQL SERVER的 RAM:4GB(MAX)

    OS:WINDOWS SERVER 2008 R2 64BIT

    SQL SERVER:SQL SERVER 2008 R2 64BIT

    固定每六天就會出現一堆事件代碼701及幾項的事件代碼18053的錯誤事件,此時前端的程式就會變慢最後導致連不進來;伺服器重開就恢復正常。

    之前,使用WINDOWS SERVER 2003 R2 32BIT、SQL SERVER 2005 32BI未有此情形。

    事件代碼701的意思為:資源集區"INTERNAL"中的系統記憶體不足,無法執行此查詢。

    請各位大師幫忙解惑!!

    謝謝!!

     

    2011年4月7日 上午 09:53

所有回覆

  • What's total db size on the server? Is it dedicated sql server? Sounds machine doesn't have enough memory, did you check memory usage?
    2011年4月7日 下午 01:29
  • IBM 3650M3 雙CPU、RAM 8GB

    該伺服器是專屬的SQL SERVER沒有其他的應用程式在上面執行

    SQL SERVER的MDF及LDF的容量分別為3.5GB、6.5BG

    硬碟可用空間為280GB

    謝謝!!

    2011年4月7日 下午 02:37
  • What's total db size on the server? Is it dedicated sql server? Sounds machine doesn't have enough memory, did you check memory usage?

    IBM 3650M3 雙CPU、RAM 8GB

    該伺服器是專屬的SQL SERVER沒有其他的應用程式在上面執行

    SQL SERVER的MDF及LDF的容量分別為3.5GB、6.5BG

    硬碟可用空間為280GB

    謝謝!!

    2011年4月7日 下午 04:11
  • hi

    先確認SQL2008 設定 for min server memory size and max server memory size是否適當?

    Memory: Pages/sec 是否過高(過度換頁)..

    或先嘗試釋放記憶體再看看錯誤是否還存在

    dbcc freesystemcache

    dbcc freesessioncache

    dbcc freeproccache

    參考以下文章看看是否能找出為記憶體的瓶頸

    http://www.dotblogs.com.tw/ricochen/archive/2009/08/23/10192.aspx



    2011年4月8日 上午 02:43
    版主
  • What's total db size on the server? Is it dedicated sql server? Sounds machine doesn't have enough memory, did you check memory usage?

    IBM 3650M3 雙CPU、RAM 8GB

    該伺服器是專屬的SQL SERVER沒有其他的應用程式在上面執行

    SQL SERVER的MDF及LDF的容量分別為3.5GB、6.5BG

    硬碟可用空間為280GB

    謝謝!!


    Why set max memory to 4gb here? Does sql service account have 'lock pages in memory' user rights on the server? What's recovery mode of the db? Log file looks too big, how often do you backup log?
    2011年4月8日 上午 03:01
  • What's total db size on the server? Is it dedicated sql server? Sounds machine doesn't have enough memory, did you check memory usage?

    IBM 3650M3 雙CPU、RAM 8GB

    該伺服器是專屬的SQL SERVER沒有其他的應用程式在上面執行

    SQL SERVER的MDF及LDF的容量分別為3.5GB、6.5BG

    硬碟可用空間為280GB

    謝謝!!


    Why set max memory to 4gb here? Does sql service account have 'lock pages in memory' user rights on the server? What's recovery mode of the db? Log file looks too big, how often do you backup log?


    1.之前設定min memory to 2GB、max memory to 4GB,擔心會把8GB RAM用掉。

    2.請問'lock pages in memory' user rights on the server是甚麼意思??權限問題嗎?

    3.DB從SQL SERVER 2005移植到SQL SERVER 2008就這麼大了,有定期在備份,使用資料庫壓縮也減不下來。

    4.4/7日已將LOG減到300MB。

    5.事件代碼701是因為LOG太大所引起的嗎?

    謝謝!!

    2011年4月8日 上午 03:21
  • hi

    先確認SQL2008 設定 for min server memory size and max server memory size是否適當?

    Memory: Pages/sec 是否過高(過度換頁)..

    或先嘗試釋放記憶體再看看錯誤是否還存在

    dbcc freesystemcache

    dbcc freesessioncache

    dbcc freeproccache

    參考以下文章看看是否能找出為記憶體的瓶頸

    http://www.dotblogs.com.tw/ricochen/archive/2009/08/23/10192.aspx



    1.請問min server memory size and max server memory size要如何設定會比較恰當?

    謝謝!!

    2011年4月8日 上午 03:24
  • 剛有找到一個關於該問題的fix,不知道你是否有安裝?

    http://support.microsoft.com/kb/982854

    妳的server沒有執行其他服務(只有服務SQL Server),而且又是在64bit上又有8G ram ,為什麼max server memory不直接設定7G呢? 我認為OS留1G就足夠了,如果安裝了package4或調大max server後問題還是存在,建議你使用perfmon.exe去驗證是否為記憶體上的瓶頸



    2011年4月8日 上午 03:46
    版主
  • 1. I'll set max memory to 6gb because it's dedicated sql server.

    2. It's user rights at os leval, can prevent page out sql momory so improve performance. 

    3. Double check recovery model in db properties -> options. Have to backup log periodically if it's not in simple recovery model.

    4. How did you do that?

    5. No, memory related. Log size is separate issue.

    2011年4月8日 上午 03:49
  • 1. I'll set max memory to 6gb because it's dedicated sql server.

    2. It's user rights at os leval, can prevent page out sql momory so improve performance. 

    3. Double check recovery model in db properties -> options. Have to backup log periodically if it's not in simple recovery model.

    4. How did you do that?

    5. No, memory related. Log size is separate issue.


    1.目前還原模式為完整模式,是否要設定為簡單模式,為何?

    2.我懷疑是log太大所引起,所以才將log縮小。

    謝謝!!

    2011年4月8日 上午 04:30
  • You can keep it in ull recovery model, but have to backup log in schedule like every 30 minutes or so. Otherwise log will grow to huge size again. Don't need log backup if the db is in simple recovery model, but you are unable to do point of time db recovery. 
    2011年4月8日 下午 01:03
  • You can keep it in ull recovery model, but have to backup log in schedule like every 30 minutes or so. Otherwise log will grow to huge size again. Don't need log backup if the db is in simple recovery model, but you are unable to do point of time db recovery. 

    謝謝!!
    2011年4月8日 下午 05:23
  •  請問你的問題解決了嗎 ? 如何解決, 因為我也遇到相同的問題, 我是 sql2008r2+win2008r2

    系統經過20天左右, 先出現 Eventid=18053, 然後幾個小時後出現 Eventid=701, 然後系統要重開才可以運作

    2011年9月19日 下午 03:14
  • Did you read all posts?
    2011年9月20日 上午 01:46
  • yes, but i don't have any idea what steps I can do. now I set the max memory to 24GB, and remove all the account from 鎖定記憶體中的分頁”, (recovery to default setting), and  set most of db in simple recovery mode. what else information i need to provide?
    2011年9月20日 上午 08:04
  • Why revoke 'lock pages in memory' rights from sql service account? By the way, you didn't tell anything about your server yet. Like how much memory does it have? Is the server dedicated for sql? Which edition of sql? How many dbs on the server? What's total db size? ...
    2011年9月20日 下午 01:49
  • Why revoke 'lock pages in memory' rights from sql service account?

    --> 我不確定這個參數的作用為何(之前有參考其他文件,提到要設此參數), 所以只是還原成預設值

    Is the server dedicated for sql? Yes

    Windows Server 2008 R2 standard Service Pack1 (64bit)
    SQL Server 2008 R2
         productversion:10.50.1600.1
         productlevel:RTM
         edition:Standard Edition (64-bit)
    Processor: Intel(R) Xeon(R) CPU X5690 3.47GHz*2
    RAM: 32GB
    DBSize: 220GB (共有 33 mdf, 其中最大的 mdf 是38GB)

    thank a lot.

     

    2011年9月21日 上午 02:08
  • 我原本使用 default max memory value, 但遇到此問題, 我將 max memroy value 設為 24GB
    2011年9月21日 上午 02:09
  • Check my response on April 8th above for reason to enable 'lock pages in memory', and look at following link to address 701 event:

    http://www.microsoft.com/technet/support/ee/transform.aspx?ProdName=SQL+Server&ProdVer=10.0&EvtID=701&EvtSrc=MSSQLServer&LCID=1033

    2011年9月21日 上午 02:46
  • 我原本使用 default max memory value, 但遇到此問題, 我將 max memroy value 設為 24GB
    Did you check available memory on the server? May increase to 26gb if there are free memory.
    2011年9月21日 上午 02:49
  • 我的系統是 64 bit, 並沒有 enable AWE,  這樣若沒有 enable 'lock pages in memory' 會有什麼風險, 另外我先前是將 administrator 加入  'lock pages in memory' , 這樣就算是 enable 了嗎? 目前系統我監測大概 RAM 的使用率是 28G, 這樣還需調到 max server memory  26G嗎? 我的 sql min server memory 設為0, max 設為 26G, 我的系統一啟動, 就發現sqlservr.exe就吃掉就24G的RAM, 這樣合理嗎 ? 我的系統是由 SQL2000 移轉到 SQL2008R2, 所有的作業都比照之前的方式, 之前的  RAM只有4G, 沒有遇到此問題.

     

    2011年9月21日 上午 03:53
  • 1. lock pages in memory can prevent swap memory pages to virtual memory file, therefore better performance especially for sql.

    2. you have to grant 'lock pages in memory' rights to sql service account.

    3. server has 32gb memory and 28gb used, means 4gb free. If you change sql max memory from 24gb to 26gb, server still has 2gb free memory. So why not?

    4. nothing wrong for sql to use amount of memory allocated to it.

    5. did you rebuild all indices after upgrading dbs from sql2k?

    Question for you: what kind of process caused 701 error?

    2011年9月21日 下午 02:31
  • 非常謝謝你的回覆

    針對question: 5. did you rebuild all indices after upgrading dbs from sql2k?

    沒有, 可否指點如何 rebuild all indices.

    另一個問題: what kind of process casued 701 error?

    我們遇到這個問題2次, 第一次是發生在 18:22,  這段期間通常只讓 user 利用 .net 程式讀取資料庫, 並沒有做任何大量資料處理

    第二次發生時, 正在利用 DTS 分幾個步驟處理資料,第一個步驟 Turncate table (約 60,000) 筆資料再將 txt 的文字檔載入此 Table(約65,000), DTS  Log 回報OK, 下一個步驟,  利用Store Procedure cursor 分別刪除 35,000 又建立  35,000, 刪除 45,000 又建立 45,000, 刪除 17,000 又建立  17,000, 在執行這個步驟時, DTS Log 回報異常, 資料庫是"完整" 模式, 每天固定整個資料庫備份,沒有對Log要另外備份, DTS的error log 摘錄如下

    DTSRun OnProgress:  DTSStep_DTSDataPumpTask_1; 已轉換或複製 1000 個資料列。; PercentComplete = 0; ProgressCount = 1000

    ..
    DTSRun OnProgress:  DTSStep_DTSDataPumpTask_1; 已轉換或複製 65827 個資料列。; PercentComplete = 0; ProgressCount = 65827
    DTSRun OnFinish:  DTSStep_DTSDataPumpTask_1
    DTSRun OnStart:  DTSStep_DTSExecuteSQLTask_14
    DTSRun OnError:  DTSStep_DTSExecuteSQLTask_14,錯誤 = -2147217900 (80040E14)
       錯誤字串:  緩衝集區裡沒有足夠的可用記憶體。
       錯誤來源:  Microsoft OLE DB Provider for SQL Server
       說明檔案:  
      說明內容:  0
    詳細的錯誤記錄:
    錯誤:  -2147217900 (80040E14); 提供者錯誤:  802 (322)
       錯誤字串:  緩衝集區裡沒有足夠的可用記憶體。
       錯誤來源:  Microsoft OLE DB Provider for SQL Server
       說明檔案:  
       說明內容:  0

    這樣的模式, 是從sql2000開始大致每天都會重覆此動作, 謝謝!

    2011年9月22日 上午 06:49
  • 1. if you don't know how to rebuild index, just try easier way. Use maintenance plan's rebuild index task for all user dbs, make sure you check 'sort results in tempdb'.

    2. DTS uses memory outside of sql, did you run it on sql server? If so, you may need reduce max memory in sql and give OS more room.

    3. looks like there are lot of data changes in the db, you don't backup log? Log file will keep grow and use up whole disk eventually. Besides, have to rebuild index (defrag tables/indices) and update stats (for better query performance) in regular basis.  

    4. avoid cursor whenever possible, you should double check your sp and find better ways. 

    2011年9月22日 下午 01:47
  • 還未解決!!

    之前試著將資料庫壓縮、log縮小、max server memory size設為7GB,問題還是存在

    七月份將記憶體加大到32GB,max server memory size設為30GB,目前還在觀察中!!

    真是頭痛!!

    2011年9月23日 上午 03:53
  • rmiao,
    謝謝你的建議
    針對你的問題
    2. DTS 是在另一台PC執行,不是在 SQL Server, 而我的系統是 32GB, 現在已依循您的建議 max server memroy=26G
    3. 我每週會將 DB 切換成 simple mode, 縮減 log file, 並將SQL Server 關機重開
    4. 我已將cursor proccess 從我的 DTS 移除
    目前仍在觀察中, 另外請教若再發生我還能做什麼, 我可以在 SQL Server 組態管理員調整 SQL Server 啟動的參數,於原本的參數之後,再加入如下的參數:
    ;-g384 嗎?
    2011年9月24日 下午 03:13
  • 小黎,

    你從7月到現在還有再遇到這個問題嗎? 

    2011年9月24日 下午 03:14
  • rmiao,
    謝謝你的建議
    針對你的問題
    2. DTS 是在另一台PC執行,不是在 SQL Server, 而我的系統是 32GB, 現在已依循您的建議 max server memroy=26G
    3. 我每週會將 DB 切換成 simple mode, 縮減 log file, 並將SQL Server 關機重開
    4. 我已將cursor proccess 從我的 DTS 移除
    目前仍在觀察中, 另外請教若再發生我還能做什麼, 我可以在 SQL Server 組態管理員調整 SQL Server 啟動的參數,於原本的參數之後,再加入如下的參數:
    ;-g384 嗎?
    3. bad practice, it results disk fragmentation.
    2011年9月24日 下午 08:33
  • 3. is a bad practice,  do you have any advices to shrink the DB Log size?

    My last question(;-g384), do you have any suggestions?

    Thanks a lot.

    2011年9月27日 上午 06:48
  • You should backup log in regular basis, sya every 15 minutes.

    Redarding -g option, check 'Using the SQL Server Service Startup Options' in books online. It tells when you need it.

    2011年9月27日 下午 12:48
  • thanks a lot.
    2011年9月28日 上午 08:16
  • 未再遇到此問題,但是不代表此問題已解決!!

    因為,我的sql server增加記憶體到32GB後,並未等到發生事件代碼701,就將SQL SERVER重新啟動。

    如果SQL SERVER一直RUN不重新啟動,等到記憶體被吃到剩2GB時(記憶體:32GB、max server memory size設為30GB),我想此問題應該就會再出現。

    目前還在觀察!!

     

    2011年10月8日 下午 02:04
  • 請問問題有解決嗎?

    你目前的作法如何?

    增加記憶體只是延長問題出現的時間

    謝謝!!

    2011年10月8日 下午 02:11
  • event 701 是說查詢內存不足無法運行查詢 , 而max server memory size設為30GB是說數據緩存的最大上限是30GB,而非整個實例可以使用的內存,

    如果同時有大量的查詢運行,那麼可以考慮減小min memory per query的值,並減小SQLServer最大可使用的內存.以預留給查詢足夠的內存. 

    LOG 備份為什麼不定期做備份呢,比如每間隔15分鍾,

    改為簡單還原類型是比較狠的做法,除非可以接受簡單還原類型期間的數據丟失,或誤操作.



    2011年12月3日 上午 06:39
  • 請問min memory per query及SQLServer最大可使用的內存的值,應該要設定多少?

    這次撐了43天才將sql server重開

    會與匯出及匯入資料有關嗎?

    謝謝!!

    2011年12月11日 上午 02:52
  • Leave min memory per query with default value, set sql max memory to 6gb (as you said server has 8gb memory).
    2011年12月11日 下午 10:25