По теме из базы знаний
- Автоматизация массовой проверки действительности российских паспортов
- MS SQL Ошибка СУБД: Предоставленный поток статистики разрушен. Как решить проблему с разрушенной статистикой
- Держи данные в тепле, транзакции в холоде, а VACUUM в голоде
- Postgres как предчувствие. Вычисляем процент импортозамещения в режиме Highload от 1С
- Первый день архитектора 1С на новой работе
Найденные решения
Помогло решение на Муркод, автор решения pkarklin (огромная благодарность), тема "Накрылась база 1с после выключения света - классика жанра.", не знаю, можно ли тут вставлять ссылки на сторонние ресурсы.
Может кому-нибудь пригодится, напишу кратко решение здесь:
1) Бекап.
2) На индексах, которые в ошибке checkDB правой кнопкой Script Table As->CREATE
3) Удаляем проблемные индексы через DROP (сначала не кластерные, потом кластерные)
4) Выбираем записи, которых больше 1 (смотрим на количество)
5) Создаем временную таблицу ИмяРегистра_temp переносим туда из таблицы регистра записи, которые больше 1
6) Создаем заново индексы из скриптов в (2) (сначала кластерные, потом не кластерные)
7) Переносим из ИмяРегистра_temp в регистр уникальные записи, их должно быть меньше в 2 раза чем в (4)
CheckDB прошел у меня без ошибок, после этого.
Прилагаю скрипты (нужно изменять название таблиц и столбцов)
Теме 10 лет, а помогла сберечь нервы, пользователи довольные, я в очередной раз пересматриваю ценность актуальных бекапов.
Может кому-нибудь пригодится, напишу кратко решение здесь:
1) Бекап.
2) На индексах, которые в ошибке checkDB правой кнопкой Script Table As->CREATE
3) Удаляем проблемные индексы через DROP (сначала не кластерные, потом кластерные)
4) Выбираем записи, которых больше 1 (смотрим на количество)
5) Создаем временную таблицу ИмяРегистра_temp переносим туда из таблицы регистра записи, которые больше 1
6) Создаем заново индексы из скриптов в (2) (сначала кластерные, потом не кластерные)
7) Переносим из ИмяРегистра_temp в регистр уникальные записи, их должно быть меньше в 2 раза чем в (4)
CheckDB прошел у меня без ошибок, после этого.
Прилагаю скрипты (нужно изменять название таблиц и столбцов)
Теме 10 лет, а помогла сберечь нервы, пользователи довольные, я в очередной раз пересматриваю ценность актуальных бекапов.
Прикрепленные файлы:
Скрипты авария индексов.rar
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Млин, при добавлении индекса вернулся к ошибке с которой начал и с которой CHECKDB не справился.
Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._AccumRg7934" и индекса с именем "_AccumR7934_ByPeriod_TRN". Повторяющееся значение ключа: (май 23 4019 1:28PM, 0x000000d5, 0xbac4ac1f6b33d6b811e97c3ce49401a2, 1).
Сообщение 1505, уровень 16, состояние 1, строка 2
Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._AccumRg7934" и индекса с именем "_AccumR7934_ByRecorder_RN". Повторяющееся значение ключа: (0x00000077, 0xbac4ac1f6b33d6b811e97d0cdc0bd806, 1).
Сообщение 1505, уровень 16, состояние 1, строка 2
Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._AccumRg7934" и индекса с именем "_AccumR7934_ByDims7941_RTRN". Повторяющееся значение ключа: (0x07870080485b879b11e1b1f420445fc8, ноя 1 4019 11:59PM, 0x000000cc, 0xbadfac1f6b33d6b811ea6dba7c6f0ace, 130).
Получается я удалил просто индекс, а записи остались. Как тогда выйти из положения, только записи в регистре удалять? Это регистр накопления ТоварыНаСкладах (УТ 10.3). Если удалить записи, то остатки собьются. А если как сейчас, то при запросе к регистру зависает 1С из-за сбойных индексов.
Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._AccumRg7934" и индекса с именем "_AccumR7934_ByPeriod_TRN". Повторяющееся значение ключа: (май 23 4019 1:28PM, 0x000000d5, 0xbac4ac1f6b33d6b811e97c3ce49401a2, 1).
Сообщение 1505, уровень 16, состояние 1, строка 2
Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._AccumRg7934" и индекса с именем "_AccumR7934_ByRecorder_RN". Повторяющееся значение ключа: (0x00000077, 0xbac4ac1f6b33d6b811e97d0cdc0bd806, 1).
Сообщение 1505, уровень 16, состояние 1, строка 2
Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._AccumRg7934" и индекса с именем "_AccumR7934_ByDims7941_RTRN". Повторяющееся значение ключа: (0x07870080485b879b11e1b1f420445fc8, ноя 1 4019 11:59PM, 0x000000cc, 0xbadfac1f6b33d6b811ea6dba7c6f0ace, 130).
Получается я удалил просто индекс, а записи остались. Как тогда выйти из положения, только записи в регистре удалять? Это регистр накопления ТоварыНаСкладах (УТ 10.3). Если удалить записи, то остатки собьются. А если как сейчас, то при запросе к регистру зависает 1С из-за сбойных индексов.
(3)
Да, верно, индекс создаётся на основе записи.
(3)
Да, надо править записи в регистре, надо найти дубли и посмотреть на них, возможно там действительно дубль, тогда либо исправить документ, который даёт дубль, либо если явный косяк можно удалить. (конечно эксперименты делать на копии БД)
Получается я удалил просто индекс, а записи остались.
Да, верно, индекс создаётся на основе записи.
(3)
Как тогда выйти из положения, только записи в регистре удалять?
Да, надо править записи в регистре, надо найти дубли и посмотреть на них, возможно там действительно дубль, тогда либо исправить документ, который даёт дубль, либо если явный косяк можно удалить. (конечно эксперименты делать на копии БД)
Помогло решение на Муркод, автор решения pkarklin (огромная благодарность), тема "Накрылась база 1с после выключения света - классика жанра.", не знаю, можно ли тут вставлять ссылки на сторонние ресурсы.
Может кому-нибудь пригодится, напишу кратко решение здесь:
1) Бекап.
2) На индексах, которые в ошибке checkDB правой кнопкой Script Table As->CREATE
3) Удаляем проблемные индексы через DROP (сначала не кластерные, потом кластерные)
4) Выбираем записи, которых больше 1 (смотрим на количество)
5) Создаем временную таблицу ИмяРегистра_temp переносим туда из таблицы регистра записи, которые больше 1
6) Создаем заново индексы из скриптов в (2) (сначала кластерные, потом не кластерные)
7) Переносим из ИмяРегистра_temp в регистр уникальные записи, их должно быть меньше в 2 раза чем в (4)
CheckDB прошел у меня без ошибок, после этого.
Прилагаю скрипты (нужно изменять название таблиц и столбцов)
Теме 10 лет, а помогла сберечь нервы, пользователи довольные, я в очередной раз пересматриваю ценность актуальных бекапов.
Может кому-нибудь пригодится, напишу кратко решение здесь:
1) Бекап.
2) На индексах, которые в ошибке checkDB правой кнопкой Script Table As->CREATE
3) Удаляем проблемные индексы через DROP (сначала не кластерные, потом кластерные)
4) Выбираем записи, которых больше 1 (смотрим на количество)
5) Создаем временную таблицу ИмяРегистра_temp переносим туда из таблицы регистра записи, которые больше 1
6) Создаем заново индексы из скриптов в (2) (сначала кластерные, потом не кластерные)
7) Переносим из ИмяРегистра_temp в регистр уникальные записи, их должно быть меньше в 2 раза чем в (4)
CheckDB прошел у меня без ошибок, после этого.
Прилагаю скрипты (нужно изменять название таблиц и столбцов)
Теме 10 лет, а помогла сберечь нервы, пользователи довольные, я в очередной раз пересматриваю ценность актуальных бекапов.
Прикрепленные файлы:
Скрипты авария индексов.rar
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот