Страница 1 из 2

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

Добавлено: 11 апр 2006, 09:56
sim
Конвертация 711-712 обваливается с ошибкой изменения таблицы PLPOR.
Как решить проблему?

Добавлено: 11 апр 2006, 11:25
sim
И еще вопрос: как полечить таблицу средствами MS SQL?

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

Добавлено: 11 апр 2006, 11:59
WiRuc
sim писал(а):Конвертация 711-712 обваливается с ошибкой изменения таблицы PLPOR.
Как решить проблему?
Какая конкретно ошибка?
Полечить таблицу можно с помощью DBCC CHECKTABLE.
Можно проверить всю БД с помощью DBCC CHECKDB.
За подробностями в BOL.

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

На второй вопрос
DBCC CheckDB
DBCC CheckAlloc
DBCC CheckTable
команды могут применяться как для проверки, так и с различными ключами ребилда. Подробнее - в контекстном хелпе

Добавлено: 11 апр 2006, 12:25
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.

Добавлено: 11 апр 2006, 12:28
sim
alter.log

Ошибка изменения таблицы PLPOR
Ошибка выполнения [311]

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

З.Ы. Запускать процесс заново после перезагрузки компа пробовали?

Добавлено: 11 апр 2006, 14:58
sim
WiRuc писал(а):1.Версия MSSQL? Какие стоят сервиспаки?
2. Конфигурация железа, особенно памяти.?
сервер, на котором проводится конвертация:
win2000server без сервис-паков
SQL Server 2000 Service Pack 4
pIV-2.4 , RAM 500 Mb
WiRuc писал(а): З.Ы. Запускать процесс заново после перезагрузки компа пробовали?
нет, не пробовали, а с какого места надо начать?

Добавлено: 11 апр 2006, 14:59
sim
а что за ошибка - 311?

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

Месяца полтора назад коннвертация проходила без проблем на этой же конфигурации

Добавлено: 11 апр 2006, 15:14
WiRuc
sim писал(а):а что за ошибка - 311?
Тут важна не ошибка Галактики (это стандартная ошибка, когда происходит ошибка ODBC), а та, что возвращает ODBC драйвер. А драйвер вам говорит, что MSSQL не может получить LOCK. Самое примитивное решение проблемы - увеличить память на сервере, хотя бы до 1Гб. Добавьте памяти и запустите процесс конвертации заново.

Добавлено: 11 апр 2006, 15:24
WiRuc
Гляньте еще логи MSSQL и Windows нет ли там еще каких ошибок.

Добавлено: 11 апр 2006, 15:30
thor
Согласен с WiRuc - самое простое решение - заапгрейдить сервер или найти машину с большим ресурсом.
По умолчанию SQL Server динамически выделяет память под блокировки. Можно это изменить и указать количество блокировок вручную
Почитайте описание параметра LOCKS процедуры sp_configure.
Правда, на каждую блокировку отводится 96 байт, и при прямом указании возможно получение сообщений о достижении предельного количества доступных блокировок, и в конечном итоге, все это ведет к тому же продложению об увеличении оперативки на сервере.

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

запускать видимо придется с 0 - в этот момент словарь уже исправлен, а табла еще нет.

Добавлено: 11 апр 2006, 15:39
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.
Данные: