Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Коды ошибок проверки целостности. / 20 сообщений из 20, страница 1 из 1
25.05.2010, 06:51
    #36646586
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
День добрый.
Подскажите пожалуйста где можно почитать о кодах ошибок, которые возникают при проверки целостности.
...
Рейтинг: 0 / 0
27.05.2010, 09:42
    #36651962
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Похоже темный вопрос, и форум IS-овский не работает.
...
Рейтинг: 0 / 0
27.05.2010, 09:52
    #36651980
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Не понимаю я что такое коды ошибок при проверке целостности.
Для меня это ассоциируется с инструкцией по выживанию в эпицентре ядерного взрыва.

Ну или пример приведите.
...
Рейтинг: 0 / 0
27.05.2010, 11:02
    #36652159
nvp
nvp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Блок А.Н.Не понимаю я что такое коды ошибок при проверке целостности.
Для меня это ассоциируется с инструкцией по выживанию в эпицентре ядерного взрыва.

Ну или пример приведите.
Пожалуйста:
авторОшибка типа 25 при обработке блока указателя 160234
...
Рейтинг: 0 / 0
27.05.2010, 11:30
    #36652276
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Посмотрите в отчете, там должны быть подробные пояснения, e.g.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
**********Global Q is Not OK**********
 Error of type  25  while processing pointer block  90461 
  which has a left neighbor pointer block of  89943 
 The error occurred while processing node  157  
  which is ^Q( 1 ,"s15","III-ГИd") pointing to the lower level block  90474 
 The pointer node's global reference doesn't match
 the 1st node of the lower block.
 Since it is a big database data block it should match
 the first blpntlen4 bytes of the first node, which is ^Q( 1 ,"s15","II").
К сожалению, лишь в документации на очень старые версии Cache можно найти описание БД старого формата (2К-блоки). Формат 8К-блоков отличается. Что-то начинаешь понимать, когда хоть раз отремонтируешь базу. Первый раз рекомендуется это делать под чутким руководством специалиста тех.поддержки вашего вендора или ISC. На это может уйти несколько часов. Если ошибок > 10 (условно говоря), да еще и разбросаны по БД, лучше не связывайтесь, а сразу восстанавливайте BACKUP.
...
Рейтинг: 0 / 0
27.05.2010, 11:41
    #36652318
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
На это может уйти несколько часовК тому же, часть данных в поломанной БД всегда потеряна. Так что ремонт - это на самый-самый "крайняк".
...
Рейтинг: 0 / 0
17.08.2010, 12:19
    #36795171
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
А чем исправляются ошибки целостности?
...
Рейтинг: 0 / 0
17.08.2010, 12:26
    #36795194
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Код: plaintext
%SYS> Do ^REPAIR
...
Рейтинг: 0 / 0
17.08.2010, 12:35
    #36795225
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Alexey MaslovНа это может уйти несколько часовК тому же, часть данных в поломанной БД всегда потеряна. Так что ремонт - это на самый-самый "крайняк".

кстати, это не всегда верно
мне удавалось восстанавливать поврежденные базы, без потерь
все зависит от самих повреждений, например когда с линками на подузлы проблема, это решаеется проще
в вот когда с линками на данные тут уже сложнее
...
Рейтинг: 0 / 0
17.08.2010, 13:22
    #36795406
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Вроде нашел из программы
^STURECOV
Запускается
...
Рейтинг: 0 / 0
17.08.2010, 13:42
    #36795459
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Что в лоб, что по лбу. См. фрагмент STURECOV.INT, opt=6:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	if opt= 1  d jrnerrdisp g jrnmenu
	if opt= 2  d jrnreplay g jrnmenu
	if opt= 3  d jrnstu g jrnmenu
	if opt= 4  d MOUNT^DATABASE() g jrnmenu
	if opt= 5  d DISMOUNT^DATABASE() g jrnmenu
	if opt= 6  d ^REPAIR g jrnmenu
	if opt= 7  d ^INTEGRIT g jrnmenu
...
Рейтинг: 0 / 0
17.08.2010, 15:36
    #36795808
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Я не видел ваш ответ, когда писал, окошко не обновил.
...
Рейтинг: 0 / 0
17.08.2010, 15:55
    #36795864
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
DAiMorнапример когда с линками на подузлы проблема, это решается прощеСлышал от коллег, что в этой ситуации, если исправна первая цепочка указателей (от вершины глобала до первого блока данных), то глобал можно экпортировать с помощью ^%GOF (либо Портал, формат Cache Block), удалить и импортировать обратно.
Кто-нибудь пробовал такое?
...
Рейтинг: 0 / 0
17.08.2010, 16:03
    #36795898
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
С восстановлением программой у меня с первого раза не получилось, вроде структуру и навигацию худо-бедно понял, но где найти потерянные данные - непонятно.

Ситуация такая - есть блок, на который ругается INTEGRIT, как ругается - из дома не скажу.
В общем, когда на него смотрю - это блок с данными. Выхожу на блок выше - это блок указателей, причем в блоке указателей указатель на этот блок данных последний. Правого блока для этого блока с ошибкой нет, в блоке указателей он последний и у блока указателей тоже нет правого блока.

То есть получается, что это последний блок глобала, но это не так, пропала половина глобала.
Сейчас сижу и думаю, что нужно бы выйти выше блока указателей и поглядеть, что там, но то ли мне что-то помешало это сделать, то ли там уже другие глобалы, то я ли просто не догадался.
В общем, вторую половину глобала я пока не нашел.
...
Рейтинг: 0 / 0
17.08.2010, 16:04
    #36795903
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Другое необходимое условие успешной выгрузки %GOFом: корректность всех правых указателей в блоках данных глобала, и, конечно, блоков длинных данных, если они в глобале есть.
...
Рейтинг: 0 / 0
17.08.2010, 16:11
    #36795925
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Попробую, но что-то у меня сомнения, а не восстановится ли он также криво.

Кстати, при прямом указании идешников каше видит "потерянные" части.
Пока (ко стыду) решил, пройти весь глобал ордером, а потом пройти его же простым "тыком" и там где есть данные сохранил в другой глобал, они оказались по размеру в два раза разными.
Удалил исходный и слил два этих глобала на место исходного. На первый взгляд данные есть, точнее попросил проверить.

От исходной базы есть бэкап, буду тренироваться.
...
Рейтинг: 0 / 0
17.08.2010, 16:17
    #36795941
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Вот про правые указатели я как раз не уверен, может попробовать как раз пройти по данным $order(,-1), подтянутся данные по левым указателям.
...
Рейтинг: 0 / 0
18.08.2010, 06:42
    #36796848
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
Кажется, я тормоз, левых же указалей нет, уход налево идет просто через родитеский узел.
Ага, в общем я по неопытности до самой ошибки не дошел, узел был еще ниже.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
//это дамп узла  775900 
....
 851   ^Contract.CalcPOD( 101000000010497815 )  801082 
 852   ^Contract.CalcPOD( 101000000010497865 )  801104 
 853   ^Contract.CalcPOD( 101000000010497915 )  801208 
 854   ^Contract.CalcPOD( 101000000010497965 )  801224 
 855   ^Contract.CalcPOD( 101000000010498015 )  801347 
 856   ^Contract.CalcPOD( 101000000010498065 )  801408 
 857   ^Contract.CalcPOD( 101000000010498115 )  801513 
 858   ^Contract.CalcPOD( 101000000010498165 )  801572 
 859   ^Contract.CalcPOD( 101000000010498217 )  801617 
 
 
Block Repair Function (Current Block  775900 ): right
No link block
 
Block Repair Function (Current Block  775900 ):  801617 
Block #  801617            Type:  8  DATA
Link Block:  703977        Offset:  7288 
Count of Nodes:  76        Collate:  5              Big String Nodes:  0 
Pointer Length: 27         Next Pointer Length: 27   Diff Byte:Hex  60 
Pointer Reference:      ^Contract.CalcPOD( 101000000010498217 )
Next Pointer Reference: ^Contract.CalcPOD( 101000000010498200 ...)
Next Pointer Reference stored at end does not match!

В узле 801617 какая-то лажа: во первых, если правая ссылка, хотя в родительском он последний.
У идущих выше блоков правой ссылки нет ни у кого.
Вот иерархия блоков:
Код: plaintext
1.
2.
 3  levels
Directory block:  3  =>  55073  =>  775900  =>  801617 
Права сслыка от 801617 указывает на блок 703977, у него иерархия
Код: plaintext
1.
 3  levels
Directory block:  3  =>  55073  =>  590271  =>  703977 

У узла 775900 правой сслыки нет
Дамп узла 55073
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Block Repair Function (Current Block  775900 ):  55073 
Block #  55073             Type:  66  TOP POINTER
Link Block:  0             Offset:  236 
Count of Nodes:  20        Collate:  5 
First Node: ^Contract.CalcPOD
Last Node:  ^Contract.CalcPOD( 101000000010050000 )
 
--more--
 
#    Node                    POINTER
 1     ^Contract.CalcPOD        375900 
 2     ^Contract.CalcPOD( 101000000000120963 )  375898 
 3     ^Contract.CalcPOD( 101000000000188384 )  444043 
 4     ^Contract.CalcPOD( 101000000000255980 )  506243 
 5     ^Contract.CalcPOD( 101000000000344580 )  140870 
 6     ^Contract.CalcPOD( 101000000000768109 )  375917 
 7     ^Contract.CalcPOD( 101000000000786059 )  310366 
 8     ^Contract.CalcPOD( 101000000000852601 )  428095 
 9     ^Contract.CalcPOD( 101000000001017104 )  196793 
 10    ^Contract.CalcPOD( 101000000001736047 )  447792 
 11    ^Contract.CalcPOD( 101000000002630098 )  588183 
 12    ^Contract.CalcPOD( 101000000003421811 )  610586 
 13    ^Contract.CalcPOD( 101000000004122366 )  610751 
 14    ^Contract.CalcPOD( 101000000005471935 )  590271 
 15    ^Contract.CalcPOD( 101000000007090000 )  704123 
 16    ^Contract.CalcPOD( 101000000008083100 )  586741 
 17    ^Contract.CalcPOD( 101000000008503993 )  732166 
 18    ^Contract.CalcPOD( 101000000009065842 )  775304 
 19    ^Contract.CalcPOD( 101000000009477828 )  775323 
 20    ^Contract.CalcPOD( 101000000010050000 )  775900 

Ну и соотвественно при попытке уйти налево из блока 703977:
Код: plaintext
1.
2.
3.
4.
5.
Block Repair Function (Current Block  703977 ): left
Searching for block to the left of  703977  ...
 
 Блок  703977  не используется ни в одном глобале
 
Block Repair Function (Current Block  703977 ):
...
Рейтинг: 0 / 0
18.08.2010, 08:19
    #36796914
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
вам просто у блока 801617, нужно поменять правую ссылку на ноль,
либо можно еще так, скопировать данные из этого блока простым merge или set, в другой глобал
в ^REPAIR, в блоке 775900, удалить узел 859, с проверкой всех задействованных блоков
а после вернуть скопированные данные обратно
...
Рейтинг: 0 / 0
18.08.2010, 11:11
    #36797272
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коды ошибок проверки целостности.
В том то и дело, что там тоже какие-то данные, и удалять их неохота.
Та часть, которую я вижу как нормальну, на мой взгляд содержит только половину данных.
В общем, пока каким-то тыканьем на двух копиях баз у меня стало без ошибки, и вроде на первый взгляд данные есть и контрольные суммы по ним сходятся, при том что делал разными способами.

Обошелся без поблочной корректировки, но все равно было интересно :-)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Коды ошибок проверки целостности. / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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