Конвертация MSSQL-базы. Ошибка модификации таблицы

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Конвертация MSSQL-базы. Ошибка модификации таблицы

Сообщение sim »

Конвертация 711-712 обваливается с ошибкой изменения таблицы PLPOR.
Как решить проблему?
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

И еще вопрос: как полечить таблицу средствами MS SQL?
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Re: Конвертация MSSQL-базы. Ошибка модификации таблицы

Сообщение WiRuc »

sim писал(а):Конвертация 711-712 обваливается с ошибкой изменения таблицы PLPOR.
Как решить проблему?
Какая конкретно ошибка?
Полечить таблицу можно с помощью DBCC CHECKTABLE.
Можно проверить всю БД с помощью DBCC CHECKDB.
За подробностями в BOL.
thor
Местный житель
Сообщения: 289
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Saint-Petersburg
Контактная информация:

Сообщение thor »

варианты могут быть разные, вплоть до экзотических.
Нужно знать, что писалось при возникновении ошибки в логи, в т.ч. в ms70drv.log, в лог приложений системы.

На второй вопрос
DBCC CheckDB
DBCC CheckAlloc
DBCC CheckTable
команды могут применяться как для проверки, так и с различными ключами ребилда. Подробнее - в контекстном хелпе
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

ms70drv.log

05.04.2006 14:43:56:
DROP TABLE T$PLPOR#
05.04.2006 14:43:56:
HY000: [Microsoft][ODBC SQL Server Driver][SQL Server]The SQL Server cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users or ask the system administrator to check the SQL Server lock and memory configuration.
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

alter.log

Ошибка изменения таблицы PLPOR
Ошибка выполнения [311]
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

1.Версия MSSQL? Какие стоят сервиспаки?
2. Конфигурация железа, особенно памяти.

З.Ы. Запускать процесс заново после перезагрузки компа пробовали?
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

WiRuc писал(а):1.Версия MSSQL? Какие стоят сервиспаки?
2. Конфигурация железа, особенно памяти.?
сервер, на котором проводится конвертация:
win2000server без сервис-паков
SQL Server 2000 Service Pack 4
pIV-2.4 , RAM 500 Mb
WiRuc писал(а): З.Ы. Запускать процесс заново после перезагрузки компа пробовали?
нет, не пробовали, а с какого места надо начать?
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

а что за ошибка - 311?
vist
Сообщения: 15
Зарегистрирован: 11 апр 2006, 15:01
Откуда: Penza city

Сообщение vist »

WiRuc писал(а):З.Ы. Запускать процесс заново после перезагрузки компа пробовали?
Если ты имеешь в виду всю процедуру с самого начала с новой базой
- то много раз.

Месяца полтора назад коннвертация проходила без проблем на этой же конфигурации
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

sim писал(а):а что за ошибка - 311?
Тут важна не ошибка Галактики (это стандартная ошибка, когда происходит ошибка ODBC), а та, что возвращает ODBC драйвер. А драйвер вам говорит, что MSSQL не может получить LOCK. Самое примитивное решение проблемы - увеличить память на сервере, хотя бы до 1Гб. Добавьте памяти и запустите процесс конвертации заново.
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

Гляньте еще логи MSSQL и Windows нет ли там еще каких ошибок.
thor
Местный житель
Сообщения: 289
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Saint-Petersburg
Контактная информация:

Сообщение thor »

Согласен с WiRuc - самое простое решение - заапгрейдить сервер или найти машину с большим ресурсом.
По умолчанию SQL Server динамически выделяет память под блокировки. Можно это изменить и указать количество блокировок вручную
Почитайте описание параметра LOCKS процедуры sp_configure.
Правда, на каждую блокировку отводится 96 байт, и при прямом указании возможно получение сообщений о достижении предельного количества доступных блокировок, и в конечном итоге, все это ведет к тому же продложению об увеличении оперативки на сервере.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

311 это - Внутренняя ошибка драйвера
могет возникнуть в разных случаях , например в запросе не находиться ни одной записи и так далее.
можно выгрузить в dbf, удалить все, пройти alter, а потом сразу залить обратно - до запуска фейсов конвертации галки.

запускать видимо придется с 0 - в этот момент словарь уже исправлен, а табла еще нет.
vist
Сообщения: 15
Зарегистрирован: 11 апр 2006, 15:01
Откуда: Penza city

Сообщение vist »

WiRuc писал(а):Гляньте еще логи MSSQL и Windows нет ли там еще каких ошибок.
В обоих логах похожие описания
Тип события: Ошибка
Источник события: MSSQL$PRO
Категория события: (2)
Код события: 17052
Дата: 10.04.2006
Время: 12:04:19
Пользователь: RF\kvv
Компьютер: DELTA
Описание:
Error: 1204, Severity: 19, State: 1
The SQL Server cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users or ask the system administrator to check the SQL Server lock and memory configuration.
Данные:
Ответить