Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Добрый день.

Мы имеем сервер: Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) Jun 17 2011 00:57:23 Copyright (c) Microsoft Corporation Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)

Инициализировали объект CLR в базе. Через конфигурацию включили его.

Перезагрузили сервер:
CLR отрабатывает. По запросу select * from sys.dm_clr_properties
Вчера выдавал следующее:
автор
name value
directory C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
version v2.0.50727
state CLR is initialized

Сегодня выдает:
автор
name value
directory
version
state CLR initialization permanently failed

Компания Microsoft советовала переустановить Net Framework 2. Мы так и поступили но положительного результата это не дало.

Текст ошибки из-за которой нам пришлось переустановить Net Framework "Failed to initialize the Common Language Runtime (CLR) v2.0.50727 due to memory pressure. This is probably due to memory pressure in the MemToLeave region of memory. For more information, see the CLR integration documentation in SQL Server Books Online."

Помогите с решением данной проблемы.
21 фев 13, 10:50    [13959338]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
http://support.microsoft.com/kb/2003681/en-us
21 фев 13, 11:41    [13959716]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
invm,

Мы сделали по рекомендации от компании Microsoft. Но это не помогло.
21 фев 13, 13:05    [13960401]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну так может пора это memory preassure уменьшать уже?
21 фев 13, 13:09    [13960433]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Виталий П
invm,

Мы сделали по рекомендации от компании Microsoft. Но это не помогло.

Это следует понимать так, что статью по предложенной ссылке вы не смотрели?
21 фев 13, 13:11    [13960449]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
Виталий П,

http://support.microsoft.com/default.aspx?scid=kb;EN-US;969962
If you had followed the above guidelines but continue to receive the errors mentioned in the symptoms section and cannot immediately migrate to 64 bit severs, you can try giving more memory to SQL CLR by increasing the 'MemToLeave' or 'Non buffer pool memory' to 384 MB. This can be done by adding the -g384 switch to the startup parameters under the Advanced tab of SQL server instance properties (http://msdn.microsoft.com/en-us/library/ms345416(SQL.90).aspx) in SQL Server configuration manager.
21 фев 13, 13:13    [13960462]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
invm
Виталий П,

http://support.microsoft.com/default.aspx?scid=kb;EN-US;969962
If you had followed the above guidelines but continue to receive the errors mentioned in the symptoms section and cannot immediately migrate to 64 bit severs, you can try giving more memory to SQL CLR by increasing the 'MemToLeave' or 'Non buffer pool memory' to 384 MB. This can be done by adding the -g384 switch to the startup parameters under the Advanced tab of SQL server instance properties (http://msdn.microsoft.com/en-us/library/ms345416(SQL.90).aspx) in SQL Server configuration manager.



И этот параметр мы тоже увеличивали от 384 до 768. Эффекта никакого. На текущий момент этот параметр выставлен на 512.
21 фев 13, 13:37    [13960686]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
Виталий П,

Тогда -- 13960433
21 фев 13, 13:41    [13960734]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
invm
Виталий П,

Тогда -- 13960433


И до какого значения ее уменьшить? Или вовсе убрать?
21 фев 13, 13:46    [13960790]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Гавриленко Сергей Алексеевич
Ну так может пора это memory preassure уменьшать уже?


И чем нам это поможет?
21 фев 13, 13:53    [13960847]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Виталий П
Гавриленко Сергей Алексеевич
Ну так может пора это memory preassure уменьшать уже?


И чем нам это поможет?
Тем, что сборки перестанут не загружаться с ошибкой due to memory pressure. Ваш КО.
21 фев 13, 14:04    [13960972]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
Виталий П
И до какого значения ее уменьшить? Или вовсе убрать?
Кого ее?
Вам памяти надо добавить и, в идеале, мигрировать на x64.
21 фев 13, 14:05    [13960975]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
invm
Виталий П
И до какого значения ее уменьшить? Или вовсе убрать?
Кого ее?
Вам памяти надо добавить и, в идеале, мигрировать на x64.


Физической памяти 56Гб.
Миграция на х64 на текущий момент невозможна.

Настройки сервера.
Параметр use AWE to allocate memory включен.
Минимум 0 МБ
Максимум 40000 МБ.
21 фев 13, 14:13    [13961043]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Гавриленко Сергей Алексеевич
Виталий П
пропущено...


И чем нам это поможет?
Тем, что сборки перестанут не загружаться с ошибкой due to memory pressure. Ваш КО.


Попробуем предложенный вами вариант.
21 фев 13, 14:16    [13961067]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Нашел ссылку на то что может помочь http://msdn.microsoft.com/ru-ru/library/ms178529.aspx

Посмотрите и прокомментируйте.
21 фев 13, 14:30    [13961192]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Виталий П
Нашел ссылку на то что может помочь http://msdn.microsoft.com/ru-ru/library/ms178529.aspx

Посмотрите и прокомментируйте.
Вы пытаетесь лечить сиптомы, а не болезнь. Выясняйте, откуда берется memory pressure и фиксайте.
21 фев 13, 14:41    [13961283]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Гавриленко Сергей Алексеевич
Виталий П
Нашел ссылку на то что может помочь http://msdn.microsoft.com/ru-ru/library/ms178529.aspx

Посмотрите и прокомментируйте.
Вы пытаетесь лечить сиптомы, а не болезнь. Выясняйте, откуда берется memory pressure и фиксайте.


У нас есть триггер, который выполняет процедуру в которой вызывается также процедура, обращающиеся к ASSEMBLY [CLRP01] доступа к ее коду мы не имеем. И получить исходный код мы также не можем.
21 фев 13, 14:47    [13961317]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Виталий П
Гавриленко Сергей Алексеевич
пропущено...
Вы пытаетесь лечить сиптомы, а не болезнь. Выясняйте, откуда берется memory pressure и фиксайте.


У нас есть триггер, который выполняет процедуру в которой вызывается также процедура, обращающиеся к ASSEMBLY [CLRP01] доступа к ее коду мы не имеем. И получить исходный код мы также не можем.
Memory pressure - это когда серверу не хватает памяти.

https://www.google.ru/search?q=MSSQL+memory+pressure&aq=f&oq=MSSQL+memory+pressure&aqs=chrome.0.57j0j62.681&sourceid=chrome&ie=UTF-8
21 фев 13, 14:50    [13961327]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4994
Виталий П
вызывается также процедура, обращающиеся к ASSEMBLY [CLRP01] доступа к ее коду мы не имеем. И получить исходный код мы также не можем.

Выгрузите сборку на диск и дизассемблируйте.
21 фев 13, 15:05    [13961446]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
ЕвгенийВ
Виталий П
вызывается также процедура, обращающиеся к ASSEMBLY [CLRP01] доступа к ее коду мы не имеем. И получить исходный код мы также не можем.

Выгрузите сборку на диск и дизассемблируйте.


Подскажите каким образом это сделать?
21 фев 13, 15:34    [13961712]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Виталий П
ЕвгенийВ
пропущено...

Выгрузите сборку на диск и дизассемблируйте.


Подскажите каким образом это сделать?



Я имел ввиду выгрузить сборку.
21 фев 13, 15:38    [13961748]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Виталий П
Виталий П
пропущено...


Подскажите каким образом это сделать?



Я имел ввиду выгрузить сборку.
Зачем это делать, если до выполнения вашей сборки даже дело не доходит? O_o
21 фев 13, 15:39    [13961755]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
Виталий П
Member

Откуда:
Сообщений: 46
Гавриленко Сергей Алексеевич
Виталий П
пропущено...



Я имел ввиду выгрузить сборку.
Зачем это делать, если до выполнения вашей сборки даже дело не доходит? O_o


После перезагрузки сервера отрабатывает нормально, но не долгое время. Потом вызывает переполнение памяти. И отказывается выполнять необходимые операции.
21 фев 13, 15:52    [13961874]     Ответить | Цитировать Сообщить модератору
 Re: CLR выдает ошибку.  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4994
Виталий П
ЕвгенийВ
пропущено...

Выгрузите сборку на диск и дизассемблируйте.


Подскажите каким образом это сделать?

Создаете скрипт создания(правой кнопкой мыши на ней, дальше разберетесь), там будет что то типа FROM 0x4D5A900003000000....
переводите эту строку в массив байт, каждые 2 символа=байт, сохраняете на диск с раширением dll и открываете любым .NET рефлектором.
21 фев 13, 16:30    [13962167]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить