|
Ошибка в базе MS SQL | ☑ | ||
---|---|---|---|---|
0
basily
16.02.21
✎
07:58
|
Невосстановимая ошибка.
Ошибка при выполнении запроса POST к pecypcy /e1cib/logForm: по причине: Ошибка СУБД: Microsoft SQL Server Native Client 11.0: индекс "_InfoRg27882_1" в таблице "InfoRg27882" имеет 65 имен столбцов в списке ключей. Максимально возможное значение для списка ключевых столбцов индекс равно 16. HRESULT=80040E14, SQLSn: SQLSTATE=42000, state=3, Severity=10, native=1904, line=1 Это регистр сведений "Распределение по территориям и условиям труда" в ЗКГУ 3. Таблица пустая и не используется. Как починить базу? |
|||
1
ДенисЧ
16.02.21
✎
07:59
|
Удалить все индексы, всё равно не используются.
|
|||
2
Почему 1С
16.02.21
✎
08:02
|
Это что кто то увлекся индексированием реквизитов? Хотелось мне бы увидеть это чудо в 65 индексов
|
|||
3
ДенисЧ
16.02.21
✎
08:05
|
(2) Да просто 65 колонок в измерения впихнуди...
|
|||
4
basily
16.02.21
✎
08:08
|
(1)(2)(3) Я плохо знаю SQL. Штатными средствами не удаляется - та же ошибка и в SQL. В этой таблице всего 10 полей...!
|
|||
5
Фрэнки
16.02.21
✎
08:12
|
(4) База очень большая? Если нет, то :
Выгрузи ее себе на локальный комп в новый каталог. Выполни нужные обновления. Создай на сервере новую базу. Загрузи туда результат. Увидишь наличие ошибки или ее отсутствие. Возможно, что проблема в ошибках из кэшей. |
|||
6
rphosts
16.02.21
✎
08:12
|
(3) РС с 65 измерениями? Что за жесть!
|
|||
7
Фрэнки
16.02.21
✎
08:13
|
(4) // Штатными средствами не удаляется
А это какие средства были использованы? |
|||
8
basily
16.02.21
✎
08:15
|
(5) База типовая. В файловом варианте ~12гиг. Не выгружается не из SQL не из конфигуратора. Изменить таблицу в конфигураторе не возможно - та же ошибка.
На крайний случай рассматриваю выгрузку-загрузку через ВыгрузкаЗагрузкаДанныхXML83.epf. Но это долго, а время дорого! (7) Через консоль SQL. |
|||
9
basily
16.02.21
✎
08:16
|
(6) Ответил в (4).
|
|||
10
ДенисЧ
16.02.21
✎
08:19
|
"Штатными средствами не удаляется"
"Через консоль SQL" Опять эта вечная дилемма... |
|||
11
basily
16.02.21
✎
08:23
|
(10) Я же написал, что SQL знаю плохо, по этому и обратился.
|
|||
12
Ёпрст
16.02.21
✎
08:24
|
(0) на все измерения/ресурсы/реквизиты индексирование включили ? :)
Поснимай это в пофигураторе и сохрани |
|||
13
Ёпрст
16.02.21
✎
08:24
|
Можешь и в самом скуле явно удалить индексы.
|
|||
14
Ёпрст
16.02.21
✎
08:24
|
мышой
|
|||
15
ДенисЧ
16.02.21
✎
08:25
|
(11) А зачем тогда в "консоль SQL" полез, раз не знаешь?
|
|||
16
Ёпрст
16.02.21
✎
08:27
|
(4) >>>В этой таблице всего 10 полей...!-
truncate table _InfoRg27882_1 |
|||
17
ДенисЧ
16.02.21
✎
08:29
|
(16) Полей, а не записей )))
|
|||
18
Фрэнки
16.02.21
✎
08:30
|
(8) Т.е. у вас даже бакапов базы нет? Нет тестовой копии? Архивных копий прошлых лет?
Это же ЗКГУ - там прошлые года обычно требуют расчетчики, чтоб видеть именно состояния в том виде, как они были актуальны. Если копия есть - затрави на нее ТИИ. На актуальных платформах, соотв. требованиям конфигураций, ТИИ в серверном режиме весьма мощная штука. Но только на копии, чтоб оценить последствия. |
|||
19
Ёпрст
16.02.21
✎
08:31
|
выполни это в скуле.
Если записи нужны, то тупо переименовываешь табличку в скуле (например в _InfoRg27882_1_old), потом на ней пкм - создать сценарий для таблички - create - новое окно запроса, там меняешь имя на старое (_InfoRg27882_1), выполняешь запрос, создастся новая пустая табличка со старым именем. В 1с-ине в пофигураторе сымаешь нахрен индексирование со всех ресурсов, сохраняешь, далее в скуле делаешь запрос insert into _InfoRg27882_1 select * from _InfoRg27882_1_old усё |
|||
20
Ёпрст
16.02.21
✎
08:32
|
(17) думаешь ?
а откуда тогда 65 имён столбцов ? |
|||
21
basily
16.02.21
✎
08:36
|
(14) Мышой не удаляется... та же ошибка.
(15) Так больше некому. Сисадмин администрирующий SQL знает не больше меня. (18) Бекапы есть и они живые - ТИИ проодит. А на текущей нет. Проблема появилась после сбоя в электроснабжении. (19) Попробую. |
|||
22
ДенисЧ
16.02.21
✎
08:37
|
(20) Так это и есть поля.
а записи - "Таблица пустая и не используется" |
|||
23
Ёпрст
16.02.21
✎
08:38
|
(22) Врят ли :), мот у него с терминологией туго ?
|
|||
24
basily
16.02.21
✎
08:38
|
(22) (23) Это таблица индексов, а не записей.
|
|||
25
Ёпрст
16.02.21
✎
08:40
|
(24) ;)
select Count(*) from _InfoRg27882_1 чего возвращает хоть ? |
|||
26
Ёпрст
16.02.21
✎
08:40
|
в пофигураторе, сколько измерений/ресурсов/реквизитов ?
|
|||
27
Ёпрст
16.02.21
✎
08:40
|
у этого РС
|
|||
28
Галахад
гуру
16.02.21
✎
08:43
|
Хм. Может уже скриншоты выложить? Чтобы не было недопонимания.
|
|||
29
basily
16.02.21
✎
08:44
|
(26)(27) Измерений - 5, Ресурсов - 5, Реквизитов - 0. Это без стандартных. Сам регистр - ПУСТОЙ!
|
|||
30
Фрэнки
16.02.21
✎
08:45
|
Если копии базы рабочие, тогда просто подменить базу из СУБД на той записи в кластере, которая нужна для всех пользователей и все.
Сам вопрос с поломкой таблы интересный... наверное... но пользователям нужно где-то в чем-то работать |
|||
31
Ёпрст
16.02.21
✎
08:46
|
(29) ну тогда покажи состав индекса InfoRg27882_1
|
|||
32
Ёпрст
16.02.21
✎
08:47
|
и все столбцы таблички InfoRg27882
|
|||
33
Ёпрст
16.02.21
✎
08:47
|
в скриншоте
|
|||
34
basily
16.02.21
✎
08:49
|
(28)(31) Сейчас нет доступа к базе. Будет через час. Тогда выложу.
|
|||
35
Михаил Козлов
16.02.21
✎
10:19
|
Может вообще РС грохнуть?
|
|||
36
IVAL
16.02.21
✎
10:54
|
Базу на корректность проверяли командой dbcc checkdb?
|
|||
37
Почему 1С
16.02.21
✎
14:49
|
Скриншота так и нет, надеюсь с автором все хорошо
|
|||
38
basily
17.02.21
✎
16:36
|
Извините, за задержку, раньше не мог.
( 33)(37)Итак скриншот при попытке открыть состав индекса и попытке удалить индекс: https://yapx.ru/v/LGkce (36) Да. Даже с аргументом REPAIR_ALLOW_DATA_LOSS получаю ошибку: "Сообщение 1904, уровень 16, состояние 3, строка 2 индекс "_InfoRg27882_1" в таблице "_InfoRg27882" имеет 65 имен столбцов в списке ключей. Максимально возможное значение для списка ключевых столбцов индекс равно 16." |
|||
39
ДенисЧ
17.02.21
✎
16:38
|
написать в консоли drop index _InfoRg27882_1 (или как-то так)?
|
|||
40
basily
17.02.21
✎
16:45
|
(39) drop index _InfoRg27882_1 ON _InfoRg27882 GO
Та же ошибка :( |
|||
41
Ёпрст
17.02.21
✎
16:47
|
(40) переименовать его, тоже не даёт ?
|
|||
42
basily
17.02.21
✎
16:51
|
(41) Что только не пытался сделать с индексом и самой таблицей. Всегда ошибка.
|
|||
43
Ёпрст
17.02.21
✎
16:51
|
А ёпт..он же кластеризованный
|
|||
44
Ёпрст
17.02.21
✎
16:51
|
Саму табличку даёт переименовать хоть ?
|
|||
45
basily
17.02.21
✎
16:55
|
Развернул на другой машине. Результат - ноль.
(44) Таблицу не удалить, не переименовать, не изменить. В конфигураторе пытался удалить регистр сведений - теряется соединение с базой. |
|||
46
Ёпрст
17.02.21
✎
17:10
|
(45)
че пишет ? EXEC sp_rename '_InfoRg27882', '_InfoRg27882_old'; |
|||
47
basily
17.02.21
✎
17:20
|
(46) Ошибка:
Сообщение 1904, уровень 16, состояние 3, процедура sp_rename, строка 310 индекс "_InfoRg27882_1" в таблице "_InfoRg27882" имеет 65 имен столбцов в списке ключей. Максимально возможное значение для списка ключевых столбцов индекс равно 16. Сообщение 596, уровень 21, состояние 1, строка 0 Не удалось продолжить выполнение, поскольку сеанс находится в состоянии завершения. Сообщение 0, уровень 20, состояние 0, строка 0 При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы. |
|||
48
H A D G E H O G s
17.02.21
✎
17:25
|
Какая то фантастика.
|
|||
49
basily
17.02.21
✎
17:33
|
(48) К сожалению реальность.. :(
Думаю создать пустую базу средствами 1С и найти скрипт на sql, который перенесёт данные в пустую базу кроме битой таблицы. |
|||
50
Ёпрст
17.02.21
✎
17:58
|
(49) для этого в 1с ничего делать не надо
а так ? ALTER INDEX _InfoRg27882_1 ON _InfoRg27882 REBUILD или так ALTER INDEX _InfoRg27882_1 ON _InfoRg27882 REORGANIZE WITH (COMPRESS_ALL_ROW_GROUPS = ON) И покажи скриншот таблички _InfoRg27882 с колонками |
|||
51
basily
17.02.21
✎
21:07
|
(50)
Первое: Сообщение 1904, уровень 16, состояние 3, строка 1 индекс "_InfoRg27882_1" в таблице "_InfoRg27882" имеет 65 имен столбцов в списке ключей. Максимально возможное значение для списка ключевых столбцов индекс равно 16. Второе: Сообщение 155, уровень 15, состояние 1, строка 2 COMPRESS_ALL_ROW_GROUPS не является известным параметром ALTER INDEX. При попытке выбрать строки ошибка как в (47) |
|||
52
Itmaint
17.02.21
✎
21:56
|
(3) это не 65 полей. Это поле составного типа, причем есть ощущение, что один из типов - строка.
Платформа так строит индексы. |
|||
53
Itmaint
17.02.21
✎
21:58
|
(52) не прав. фигнбю сморозил.
плохо прочитал... аннулирую (52) |
|||
54
Ёпрст
17.02.21
✎
21:59
|
(51) ну, хотя бы скриншот таблички регистра есть ?
|
|||
55
arsik
гуру
17.02.21
✎
22:14
|
(51) Сами индексы в менеджмент студио дает открыть? Может там поля удалить?
|
|||
56
basily
18.02.21
✎
07:56
|
(54) В 1С при попытке открыть регистр база вылетает.
(55) Если бы давал открыть поудалял бы раньше. Пишет ошибку. |
|||
57
Йохохо
18.02.21
✎
08:12
|
(56) версию мс скл пробовали поднять?
|
|||
58
basily
18.02.21
✎
08:30
|
(57) Работаю на последней версии MS SQL Server 2012 sp3. На других не пробовал.
|
|||
59
Йохохо
18.02.21
✎
08:42
|
(58) попробуйте девелоперс эдишен 2016 и старше, хотя 65 и для них много
|
|||
60
Ёпрст
18.02.21
✎
08:52
|
(56) да не в 1с, а в скуле
|
|||
61
basily
18.02.21
✎
09:04
|
В общем решил проблему средствами SQL через выгрузку и создание новой базы без этой таблицы. Правой мышой по базе - Задачи - Экспортировать данные... Открывается мастер экспорта. Метод нашёл здесь: http://catalog.mista.ru/1c/articles/1106210/. Благо база не большая и всё прошло относительно быстро.
Всем спасибо за участие! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |