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

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

Ну или пример приведите.
Пожалуйста:
авторОшибка типа 25 при обработке блока указателя 160234
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #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
Коды ошибок проверки целостности.
    #36652318
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На это может уйти несколько часовК тому же, часть данных в поломанной БД всегда потеряна. Так что ремонт - это на самый-самый "крайняк".
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795171
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем исправляются ошибки целостности?
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795194
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
%SYS> Do ^REPAIR
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795225
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovНа это может уйти несколько часовК тому же, часть данных в поломанной БД всегда потеряна. Так что ремонт - это на самый-самый "крайняк".

кстати, это не всегда верно
мне удавалось восстанавливать поврежденные базы, без потерь
все зависит от самих повреждений, например когда с линками на подузлы проблема, это решаеется проще
в вот когда с линками на данные тут уже сложнее
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795406
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде нашел из программы
^STURECOV
Запускается
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #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
Коды ошибок проверки целостности.
    #36795808
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не видел ваш ответ, когда писал, окошко не обновил.
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795864
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorнапример когда с линками на подузлы проблема, это решается прощеСлышал от коллег, что в этой ситуации, если исправна первая цепочка указателей (от вершины глобала до первого блока данных), то глобал можно экпортировать с помощью ^%GOF (либо Портал, формат Cache Block), удалить и импортировать обратно.
Кто-нибудь пробовал такое?
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795898
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С восстановлением программой у меня с первого раза не получилось, вроде структуру и навигацию худо-бедно понял, но где найти потерянные данные - непонятно.

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

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

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

От исходной базы есть бэкап, буду тренироваться.
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36795941
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот про правые указатели я как раз не уверен, может попробовать как раз пройти по данным $order(,-1), подтянутся данные по левым указателям.
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #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
Коды ошибок проверки целостности.
    #36796914
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вам просто у блока 801617, нужно поменять правую ссылку на ноль,
либо можно еще так, скопировать данные из этого блока простым merge или set, в другой глобал
в ^REPAIR, в блоке 775900, удалить узел 859, с проверкой всех задействованных блоков
а после вернуть скопированные данные обратно
...
Рейтинг: 0 / 0
Коды ошибок проверки целостности.
    #36797272
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, что там тоже какие-то данные, и удалять их неохота.
Та часть, которую я вижу как нормальну, на мой взгляд содержит только половину данных.
В общем, пока каким-то тыканьем на двух копиях баз у меня стало без ошибки, и вроде на первый взгляд данные есть и контрольные суммы по ним сходятся, при том что делал разными способами.

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


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