Ошибка субд недостаточно свободной памяти в буферном пуле

Здравствуйте!

Помогите пожалуйста решить проблему. ОС Win Server 2008 R2 Datacenter SP1, 128 Гб ОЗУ. Крутятся базы 1С на SQL Server 2008 10.0.1600.22. Пользователи ходят по rdp. По расписанию после рабочего дня выполняется регламент «Обновление статистики». Сейчас выполнение этой задачи заканчивается с ошибкой:

Не удалось получить данные по этому запросу. (Microsoft.SqlServer.Management.Sdk.Sfc)

——————————

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)

——————————

Недостаточно свободной памяти в буферном пуле. (Microsoft SQL Server, ошибка: 802)

——————————

DTExec.exe

Data Transformation Services Execution Utility

При запуске этой задачи вручную:

При выполнении инструкции или пакета Transact-SQL возникло исключение.

——————————

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

Для выполнения этого запроса недостаточно системной памяти в пуле ресурсов «default». (Microsoft SQL Server, ошибка: 701)

Номер ошибки: 701

Серьезность: 17

Состояние: 1

Процедура: sp_get_composite_job_info

Номер строки: 131

Во время начала задачи проц занят на 10%, ОЗУ где-то на 30-40%. После ошибки в SQL не могу попасть до перезапуска процесса, соответственно информация не сохраняется. В этот момент проц загружен на 40-45%, ОЗУ — около 50-60% (по диспетчеру задач). Устанавливал и настраивал SQL не я. Работало несколько лет без проблем. Помогите разобраться. Чего не хватает?

  • Remove From My Forums

 none

Ошибка при выполнении плана обслуживания создания резервной копии БД.

  • Вопрос

  • Ошибка при выполнении плана обслуживания создания резервной копии DB.

    Microsoft SQL Server 2016 (SP2-CU12) (KB4536648) — 13.0.5698.0 (X64)   Microsoft Corporation  Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )  память:
    65373 МБ, физические процессоры: 12

    При выполнении плана обслуживания по расписанию Агентом SQL Server периодически возникает ошибка на команде DBCC CHECKDB.

    «Ошибка:(-1073548784) Сбой выполнения запроса «DBCC CHECKDB(N’DoctorEleks’)  WITH  PHYSICAL_ONLY…» со следующей ошибкой: «Недостаточно свободной памяти в буферном пуле.
    Проверка отменена. В процессе сбора фактов была обнаружена ошибка. Возможно, база данных tempdb достигла предела памяти, или системная таблица не согласована. Проверьте предыдущие ошибки.
    Результаты DBCC для «DoctorEleks».
    CHECKDB обнаружил 0 ошибок размещения и 0 ошибок согласованности в базе данных «DoctorEleks».». Возможные причины сбоя: проблемы с этим запросом, свойство «ResultSet» установлено неправильно, параметры
    установлены неправильно или соединение было установлено неправильно.»

    Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 6

    Process/System Counts                         Value
    —————————————- ———-
    Available Physical Memory                7005704192
    Available Virtual Memory                 140661293142016
    Available Paging File                    83132284928
    Working Set                              58335838208
    Percent of Committed Memory in WS                99
    Page Faults                                60970537
    System physical memory high                       1
    System physical memory low                        0
    Process physical memory low                       0
    Process virtual memory low                        0

    После перезапуска экземпляра БД процесс проходит без ошибок.

Ответы

  • Привет,

    Посмотрите статью внизу:

    DBCC CHECKDB error

    Скорее всего как и указано в ошибке, у Вас было мало памяти на tempdb


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется «как есть» без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные,
    если они Вам помогли.

    • Предложено в качестве ответа

      27 апреля 2020 г. 8:38

    • Помечено в качестве ответа
      Иван ПродановMicrosoft contingent staff, Moderator
      28 апреля 2020 г. 20:54

  • Remove From My Forums
  • Question

  • SQL 2016 SP1 Standard.

    a. Ram available to SQL: 117GB

    b. BPE was limited to 536GB (900gb is available) 

    /* Attempted to initialize buffer pool extension of size 981467136 KB, but maximum allowed size is 536345016 KB. */

    c. The code in question is a series of temp tables (10-100gb each) which did not have issues. When joining the temp tables together to produce the final physical table it stopped with this error and did not populate the table. (select into with multiple
    left joins). The final table is about 100GB

    ERROR:

    Msg 802, Level 17, State 0, Line 1673
    There is insufficient memory available in the buffer pool.

    Submitted as bug in the meantime:

    https://connect.microsoft.com/SQLServer/Feedback/Details/3138664

    • Edited by

      Wednesday, August 2, 2017 4:31 PM

Answers

  • Disabled it for now and submitted a bug ticket. A few simple requests went from 15minutes to 5+ hours even if you turn down cost threshold for parallelism to 15 or lower (no queries had a cost < 15 either)

    https://connect.microsoft.com/SQLServer/feedback/details/3138664

    • Marked as answer by
      xxjergerxx
      Thursday, August 3, 2017 10:59 PM

We have bunch of SQL Server 2012 Standard and SQL Server 2014 Standard database instances running on Windows 2012, each have different storage and memory. We are getting

Error Code: 802; There is insufficient memory available in the buffer pool

from 3 database servers when we build large SQL Server indexes, and it’s happening intermittently, once in 3 or 4 months. The same indexes run fine on servers with same version of SQL Server and only 1/3 of memory and CPU.

SQL Server 2012 Standard

Server1: memory — 110GB allocated out of 128 GB version 11.0.6 — «Error Code: 802; There is insufficient memory available in the buffer pool.» reported when we run heavy index.

Server2: memory -78GB allocated to SQL out of 96GB version 11.0.6 — «Error Code: 802; There is insufficient memory available in the buffer pool.» reported when we run heavy index.

Server: memory allocated 18GB out of 24GB. VM. No indexing error — 11.0.5

Server : memory 24GB out of 32GB. Physical. No indexing error — 11.0.5

SQL Server 2014 Standard

Server 1 : memory 56GB out of 64GB physical memory version 12.0.5 — «Error Code: 802; There is insufficient memory available in the buffer pool.» reported when we run heavy index.

Server 2: memory 18GB out 24GB- VM – no indexing error — version 12.0.5.

Понравилась статья? Поделить с друзьями:
  • Ошибка субд не удалось найти объект
  • Ошибка субд не удалось выделить место для объекта
  • Ошибка субд не удается получить ресурс lock
  • Ошибка субд не удается место для объекта
  • Ошибка субд компоненты ole db провайдера не найдены cocreateinstance