powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при реорганизации индекса базы
13 сообщений из 13, страница 1 из 1
Ошибка при реорганизации индекса базы
    #39788648
eduard rogov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте
Сделал ежедневный план обслуживания базы 1с с первым шагом по реорганизации индекса. Спустя 15 минут после запуска получаю ошибку:

Сбой выполнения запроса "ALTER INDEX [_AccRgE1396_ByRecorder_RNN] ON [dbo]....
Сбой выполнения запроса "ALTER INDEX [_AccRgE1396_ByRecorder_RNN] ON [dbo]...." со следующей ошибкой: "Операционная система возвратила ошибку 21(Устройство не готово.) в SQL Server при прочитать в смещении 0x000000063f2000 файла "F:\\SQLData\\upp_udmsib.mdf". Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка системного уровня, которая угрожает целостности базы данных, поэтому она должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server.". Возможные причины сбоя: проблемы с этим запросом, свойство "ResultSet" установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.


Естественно, первым делом делаю DBCC CHECKDB сначала возможностями платформы, а потом и средствами SQL. В обоих случаях никаких ошибок. Запускаю заново свой план. 15 минут и снова ошибка:
Сбой выполнения запроса "ALTER INDEX [_Accum25402_ByDims_TRRRRRRLRLN] ON [d..."
Сбой выполнения запроса "ALTER INDEX [_Accum25402_ByDims_TRRRRRRLRLN] ON [d..." со следующей ошибкой: "Операционная система возвратила ошибку 1167(Устройство не подключено.) в SQL Server при прочитать в смещении 0x00000647332000 файла "F:\\SQLData\\upp_udmsib.mdf". Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка системного уровня, которая угрожает целостности базы данных, поэтому она должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server.". Возможные причины сбоя: проблемы с этим запросом, свойство "ResultSet" установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.


После и первой, и второй ошибки получаю недоступную базу для пользователей пока не перезапущу службы SQL и 1С Сервер.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788657
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard rogov,

снимите свежую копию базы,
попробуйте удалить и создать индекс
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788664
eduard rogov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критикeduard rogov,

снимите свежую копию базы,
попробуйте удалить и создать индекс

Не особый умелец в работе с sql, но все же нашел, что удалить все индексы на копии базы могу запросом:

USE AdventureWorks2012;
GO
-- delete the IX_ProductVendor_BusinessEntityID index
-- from the Purchasing.ProductVendor table
DROP INDEX IX_ProductVendor_BusinessEntityID
ON Purchasing.ProductVendor;
GO


так?
а как потом создать индекс? И вообще как это повлияет на работу пользователей и самой базы?
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788674
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard rogovтак?Да.

eduard rogovа как потом создать индекс?Сделайте сначала скрипт инедкса, сохраните.

Потом запустите этот скрипт, после удаления инедкса.

eduard rogovИ вообще как это повлияет на работу пользователей и самой базы?На время отсутствия индекса запросы могут выполняться медленнее.
Кроме того, кесли индекс уникальный, то на время отсутствия индекса не будет выполняться проверка уникальности.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788684
eduard rogov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Правильно ли я понял вас? Мне необходимо на КОПИИ проблемной базы сделать:
1. "Сервис/Параметры/Браузер объектов SQL Server/Скрипты/Внести в скрипт индексы" ставлю в "Истинный", значения остальных вносимых данных в скрипт оставляю по умолчанию.
2. На копии базы Создать скрипт для базы данных/Используя CREATE/Файл... Выгружаю в файл.
3. С помощью запроса выше на копии удаляю индексы.
4. На копии запускаю созданный в п.2 скрипт
5. На копии пробую сделать реорганизацию индекса?

Поправьте, пожалуйста, если что-то не так сказал.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788687
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788727
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard rogovalexeyvg,

Правильно ли я понял вас? Мне необходимо на КОПИИ проблемной базы сделать:
1. "Сервис/Параметры/Браузер объектов SQL Server/Скрипты/Внести в скрипт индексы" ставлю в "Истинный", значения остальных вносимых данных в скрипт оставляю по умолчанию.
2. На копии базы Создать скрипт для базы данных/Используя CREATE/Файл... Выгружаю в файл.
3. С помощью запроса выше на копии удаляю индексы.
4. На копии запускаю созданный в п.2 скрипт
5. На копии пробую сделать реорганизацию индекса?

Поправьте, пожалуйста, если что-то не так сказал.Насчёт копии - как я понял, Критик просто напомнил о необходимости иметь свежий бакап.
А так вообще никакой копии не нужно.

Так что всё проще:
1. Находите в дереве объектов SSMS своюб таблицу, раскрываете, ищете индексы, ищите свой индекс.
2. ПКМ на индексе, выбираете "Script Index as". Т,о. вы сохранили скрипт инедкса для будущего создания.
3. Выполняете скрипт удаления индекса
4. Выполняете скрипт создания индекса, созданный в п. 2

Реорганизицию делать не надо, индекс же свежий.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788743
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь показаться банальным, но "при прочитать в смещении 0x000000063f2000 файла "F:\\SQLData\\upp_udmsib.mdf"" доктор должен советовать не промывание желудка, а клизму.

Причем тут "пересоздание индексов и DBCC"? Когда вам толсто намекают на проблему чтения из файла.

chkdsk /F/R f:

вот правильная таблетка.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39788803
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Боюсь показаться банальным, но "при прочитать в смещении 0x000000063f2000 файла "F:\\SQLData\\upp_udmsib.mdf"" доктор должен советовать не промывание желудка, а клизму.

Причем тут "пересоздание индексов и DBCC"? Когда вам толсто намекают на проблему чтения из файла.

chkdsk /F/R f:Да, что то текст ошибки я и не прочитал, отвечал на вопрос "как пересоздать индекс" :-(
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39789085
eduard rogov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chkdsk /F/R f: никаких ошибок проблемного диска не выявил. все-таки делать процедуру создания скрипта на индексы и удалять-загружать их снова? описанный метод
1. Находите в дереве объектов SSMS своюб таблицу, раскрываете, ищете индексы, ищите свой индекс.
2. ПКМ на индексе, выбираете "Script Index as". Т,о. вы сохранили скрипт инедкса для будущего создания.
3. Выполняете скрипт удаления индекса
4. Выполняете скрипт создания индекса, созданный в п. 2

не совсем мне понятен. ибо таблиц в базе 1с по раскрытию соответствующего списка много, индексов в каждой таблице тоже не мало. по одному индексу доставать я бесконечно долго буду...Может быть правда что-то не понимаю...
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39789240
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard rogov,

Я бы посоветовал сначала убедиться, что если база завтра окончательно умрет, то вы сможете ее восстановить. Для начала поднимете последний бэкап при возможности на другом сервер и дисковой системе. Потом DBCC CHECKDB, а потом пробуйте пересоздать там индекс.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39789247
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard rogovописанный метод
1. Находите в дереве объектов SSMS своюб таблицу, раскрываете, ищете индексы, ищите свой индекс.
2. ПКМ на индексе, выбираете "Script Index as". Т,о. вы сохранили скрипт инедкса для будущего создания.
3. Выполняете скрипт удаления индекса
4. Выполняете скрипт создания индекса, созданный в п. 2

не совсем мне понятен. ибо таблиц в базе 1с по раскрытию соответствующего списка много, индексов в каждой таблице тоже не мало. по одному индексу доставать я бесконечно долго буду...Ну. надо смотреть, сколько таких мест.
Озвучено пока 2, может, больше нет?

Если есть, то получается, что в файле данных повреждено множество фрагментов, и наверняка некоторые из них попадают не на обычные инедксы, которые можно пересоздать, а на кластерные или кучи.
И в таком случае базу можно считать пропавшей.

Можно, как уже советовали, восстановить базу из бакапов, и проверить её - но не факт, что в бакапах не лежит та же испорченная база.

Вообще говоря, можно считать, что у вас есть бакап, когда он не только успешно сделан, но и восстановлен, на тестовом сервере, а востсановленная база проверена checkdb.

Так что хорошо, что у вас есть бакап, селанный средствами 1С.
eduard rogovchkdsk /F/R f: никаких ошибок проблемного диска не выявилВозможно, это был разовый сбой подсистемы IO. Возможно, перенос уже испорченной базы с другого сервера.
...
Рейтинг: 0 / 0
Ошибка при реорганизации индекса базы
    #39789344
eduard rogov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,
спасибо за ответы. проблема решилась.

Дело в том, что .ldf и .mdf лежали на разных ФИЗИЧЕСКИХ дисках. Как раз на том, где лежал .ldf по смарту диска у видел в C5:

[C5] Current Pending Sector Count: 200/Always OK, Worst: 200 (Data = 3,0)

Предупреждение. Сделал полный бэкап базы и восстановил .ldf файл на физический диск к .mdf файлу. Теперь реорганизация проходит корректно, проверка на целостность тоже.
Вовремя получается заметил как начал сыпаться винт, пока предупреждение было лишь в C5.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при реорганизации индекса базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]