|
v7: ошибки в sql при DBCC CHECKDB | ☑ | ||
---|---|---|---|---|
0
lucifer
02.03.12
✎
11:42
|
Стоит sql 2000, в sql query analyzer выполняю DBCC CHECKDB
и кое где есть ошибки такого типа: Server: Msg 2511, Level 16, State 1, Line 1 Table error: Object ID 2137058649, Index ID 2. Keys out of order on page (1:138448), slots 31 and 32. Server: Msg 8928, Level 16, State 1, Line 1 Object ID 2137058649, index ID 3: Page (1:462439) could not be processed. See other errors for details. похожий вопрос уже поднимался Рушится база там предлагалось снести индексы, но я в sql запросах вообще валенок, дайте пож рабочий код который снесет все индексы в таблицах. Вообще все началось из-за того что ночью (когда перепроводится система) 2-й день подряд прерывается из-за ошибки, в логах такое: Тип события: Ошибка Источник события: MSSQLSERVER Категория события: (2) Код события: 17052 Дата: 02.03.2012 Время: 2:18:45 Пользователь: Н/Д Компьютер: UVSER Описание: Error: 7987, Severity: 22, State: 2 A possible database consistency problem has been detected on database 'Uvservice'. DBCC CHECKDB and DBCC CHECKCATALOG should be run on database 'Uvservice'. P.S. вчера попробовал создать новую bd выгрузил backup и загрузил в новую bd, проблему это не решило. |
|||
1
dk
02.03.12
✎
11:47
|
через maintaince plan запусти полную переиндексацию
если дело только в индексах, то все нормуль будет |
|||
2
lucifer
02.03.12
✎
11:51
|
(1) это где "maintaince plan"
|
|||
3
lucifer
02.03.12
✎
11:55
|
(1) нашел
|
|||
4
Sh1ko
02.03.12
✎
11:55
|
В enterprise manager - management - database maintaince plan
|
|||
5
Sh1ko
02.03.12
✎
11:55
|
Можно так же через QA
|
|||
6
lucifer
02.03.12
✎
11:58
|
(5) в смысле кодом?
|
|||
7
Sh1ko
02.03.12
✎
11:59
|
(6) да
|
|||
8
lucifer
02.03.12
✎
12:00
|
(7) это предпочтительней, есть код?
|
|||
9
Sh1ko
02.03.12
✎
12:03
|
DBCC DBREINDEX
|
|||
10
ЧеловекДуши
02.03.12
✎
12:03
|
--Переиндексация БД
USE <название БД> EXEC _1sp_DBReindex --Проверка на битость самой БД DBCC CHECKDB ('<название БД>',REPAIR_REBUILD) --Установка монопольного доступа к БД sp_dboption '<название БД>','single user',true sp_dboption '<название БД>','single user',false --Смена владельца БД use <название БД> EXEC sp_changedbowner 'SA' |
|||
11
Lionee
02.03.12
✎
12:03
|
ИНДЕКСАЦИЯ
sp_dboption 'имябазы','single user',true USE имябазы EXEC _1sp_DBReindex sp_dboption 'имябазы','single user',false ВОССТАНОВЛЕНИЕ БАЗЫ ДАННЫХ 1С DBCC CHECKDB ('NEW_DATABASE',REPAIR_REBUILD) ВОССТАНОВЛЕНИЕ БАЗЫ ДАННЫХ 1С только с исправлением глобальных огшибок может быть частичная потеря инфомации sp_dboption 'имябазы','single user',true DBCC CHECKDB('имябазы',REPAIR_ALLOW_DATA LOSS) sp_dboption 'имябазы','single user',false ДЕФРАГМЕНТАЦИЯ ИНДЕКСОВ БАЗЫ ДАННЫХ 1С USE имябазы DECLARE @MyTable varchar (32) DECLARE @MyIndex varchar (32) DECLARE MyCursor CURSOR FOR SELECT o.name,i.name FROM sysobjects o INNER JOIN sysindexes i ON o.id=i.id WHERE (o.xtype='U') AND (INDEXPROPERTY(i.id,i.name,'isStatistics')=0) AND (i.dpages>0) ORDER BY o.name, i.indid OPEN MyCursor FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex WHILE @@FETCH_STATUS=0 BEGIN PRINT 'ДЕФРАГМЕНТАЦИЯ ИНДЕКСА'+@MyIndex+'из таблицы'+@MyTable DBCC INDEXDEFRAG (0,@MyTable,@MyIndex) FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex END CLOSE MyCursor DEALLOCATE MyCursor |
|||
12
lucifer
02.03.12
✎
17:05
|
(11) хм... QA пишет ошибку
Server: Msg 170, Level 15, State 1, Line 4 Line 4: Incorrect syntax near 'Uvservice'. Uvservice - это bd выполняю этот код sp_dboption 'Uvservice','single user',true USE Uvservice EXEC _1sp_DBReindex sp_dboption 'Uvservice','single user',false |
|||
13
lucifer
02.03.12
✎
17:14
|
просто так
USE Uvservice EXEC _1sp_DBReindex работает |
|||
14
lucifer
02.03.12
✎
17:47
|
прервалось с ошибкой:
CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 1. Most significant primary key is '76343'. The statement has been terminated насколько я понял ругается на какой-то дубликат, как можно поудалять эти дубликаты? |
|||
15
lucifer
02.03.12
✎
17:56
|
(12) надо было EXECUTE перед sp_dboption
|
|||
16
lucifer
02.03.12
✎
18:16
|
(9) ругается на неправельный синтаксис, в google не нашел
|
|||
17
Ёпрст
02.03.12
✎
18:22
|
||||
18
Ёпрст
02.03.12
✎
18:22
|
скажем так, ты и не искал вовсе.
|
|||
19
lucifer
02.03.12
✎
18:29
|
(18) а ну эт я видел.
Я имел ввиду код для выполнения DBCC DBREINDEX что бы имя таблицы вставало само. я ради интереса попробовал для одной таблицы DBCC DBREINDEX _1SACCS ругается Line 1: Incorrect syntax near '_1SACCS'. |
|||
20
Ёпрст
02.03.12
✎
18:33
|
(19) так ты еще и читать не умеешь ?
Там даже пример есть готовый, не говоря уже о синтаксисе всей конструкции |
|||
21
lucifer
02.03.12
✎
18:36
|
(20) извиняюсь, счас буду пробовать
|
|||
22
lucifer
02.03.12
✎
18:37
|
а вот как сделать что бы автоматом пройтись по всем таблицам BD
|
|||
23
Ёпрст
02.03.12
✎
18:38
|
(22) либо запустить готовую хранимку, либо написать её самому.
|
|||
24
Ёпрст
02.03.12
✎
18:38
|
ЗЫ: тебе выше уже написали её имя, если че..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |