Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Были в вашей практике проблемы с целостностью баз данных Каше?
Да, неоднократно
37,5%
 (6)
Когда-то давно пришлось исправлять
43,8%
 (7)
Не приходилось заниматься, но коллега сталкивался
0,0%
 (0)
Не сталкивался
12,5%
 (2)
Что это?
6,3%
 (1)
Голосование открыто только для зарегистрированных пользователей.
Проголосовало: 16  

Сабж
21 июл 17, 17:42    [20665528]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Интересные конечно результаты. Хотя с учетом того что не так много пока проголосовавших, значит не так и много. Скажем так, отвечают только те у кого были проблемы с целостностью баз, а у кого проблем не было те сюда и не ходят вообще, и их может быть значительно больше. И наверно еще интересны варианты, о предполагаемых причинах которые привели к нарушению целостности. Хотя бы в комментариях, и на каких версиях Caché случалось, чтобы примерно понять расклад по новым версиям.
24 июл 17, 10:40    [20668935]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Декабрь 2015. Cache 2012.2.5, CentOS 6.x. Файл БД был "грязно" скопирован на другой сервер.

Возникли ошибки типа 21, 25 и 26.

Случай заинтересовал ISC, и они провели расследование, пытаясь выявить как вероятные причины порчи БД, так и разобраться в некоторых внутренних вопросах (в основном их, конечно, интересовало второе). Однозначно признали, что из-за грязного копирования могла возникнуть лишь ошибка типа 26. Отчёт о ней выглядел примерно так:

Error of type 26 while processing pointer block 5318955
which has a left neighbor pointer block of 4966846
The error occurred while processing node 8
00163","000D",153,"uAtACLА","000","@XHRS
Svid","") pointing to the lower level block 5187262
The lower level block specifies a right link block of 6018052.
That doesn't match the next pointer node in the pointer block, which is 5187264

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

Случай отчасти поучительный для тех, кто не верил, что при грязном копировании (т.е., при копировании смонтированной БД) целостность может пострадать, но как говорится учёба прошла за чужой счёт.
24 июл 17, 12:31    [20669402]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
DAiMor,

месяца два назад я бы выбрал второй вариант, а сейчас первый. Творится какая-то мистика и ересь, каждую неделю обнаруживаются новые ошибки, вплоть до "The lower level block is degraded and can't be parsed". Но но в основном ошибка правой ссылки, но такая, что просто поправить ее нельзя, потому что в этом случае по сортировке следующий блок будет меньше, чем последняя запись сбойного. Приходится блок удалять.
Админы, как водится, в отказ.
Катастрофы с сервером случались, но в основном с сервером ничего не происходит, но даже не перезапускается между проверками. После исправления ошибок глобала сразу же проверяю его, т.е. вылазят не недоисправленные ошибки, а новые. Ломаются данные в индексных глобалах, где частое расщепление блоков. Я в недоумении.

Последнее, что удивило - было сообщение об ошибке, но лог глянул не в день окончания проверки, посмотрел через пару дней, ошибку глазами в REPAIR не увидел. Перепроверил через INTEGRIT - нет ошибки. Сейчас смотрю логи новой проверки целостности - в глобале две ошибки, и одна из них в том же блоке, что и показало в предыдущий раз. Глазами пока еще не смотрел.
24 июл 17, 22:03    [20671364]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Блок А.Н.,

Ого, тут явно что-то не так с сервером. Просто останавливать сервер в разгар рабочего дня, пиная на админов, что у них проблемы с железом. Так часто просто не может происходить, тут точно внешняя причина. Но способы выявления этого конечно зависят от конфигурации сервера, ну и конечно ОС.
24 июл 17, 22:43    [20671419]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Мне довольно сложно представить себе частого появления ошибок. На моей практике проблемы возникали в основном по вине неправильного выклчения сервера, либо разрушений диска. Даже база в несколько терабайт, с ежедневным ростом по несколько гигабайт, где одних журналов на 100Гб в день набегает. И не было проблем с целостностью.
24 июл 17, 22:55    [20671433]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Случай с исчезновением ошибки перестал был мистическим, ошибка просто переместилась в другой блок (видимо, произошло расщепление ошибочного блока)
25 июл 17, 07:07    [20671681]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.
...произошло расщепление ошибочного блока...
Такое возможно при ошибке в блоке указателей. При ошибке в блоке данных - вряд ли: если у него неверная правая связь, или последний узел, Cache просто откажется работать с этим блоком: <DATABASE>, и отстаньте.

Мне случалось видеть "исчезающие ошибки" такого рода: БД > 1TB не удаётся проверить за ночь, и часть проверки неизбежно идёт в параллель с пользователями. При этом есть вероятность словить незавершённую запись. В Cache 2015.1 эти ошибки проявляются так: счётчик ошибок, записанный в начало протокола проверки, > 0, а в самом протоколе ошибок-то и нет. Что удобно, начиная с этой версии, в настройках задачи проверки целостности в качестве имени протокола можно указать каталог, куда будут складываться файлы протоколов проверки, не затирая друг друга. Количество хранимых файлов можно ограничить.
25 июл 17, 10:27    [20672122]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Не понимаю некоторых ошибок и причин их возникновения.
Почему, например, Pointer Reference может не совпадать с первой записью в блоке (блок данных) и как это исправить. Была ушибочная запись в родительском блоке, удалил и заново вставил. В родительском поправилось, а в дочернем Pointer Referense так и остался старым.
Или, почему Next Pointer Rereferense вообще может быть не похож ни на что: ни что - ни на первую запись следующего узла, ни на ссылку на следующий узел в родительском узле? Часто такое бывает, если нарушена сортировка глобала, запись в следующем блоке раньше по сортировке, чем последняя запись в предыдущем, но не только. И опять, как исправить?
27 июл 17, 05:31    [20678411]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
По-моему, Pointer Reference в блоке может не совпадать с первой записью просто потому, что обрезан. Число при этом округляется.
Next Pointer Referense вроде бы удалось изменить повторной установкой Link-а. Странно, в другой ошибке это сделать не получилось (кажется)
27 июл 17, 09:44    [20678710]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Блок А.Н.
Почему, например, Pointer Reference может не совпадать с первой записью в блоке (блок данных) и как это исправить.
Это ошибка, на которую указывает проверка целостности?
вообще заголовок блока не хранит такую информацию, так что Pointer Reference и Next Pointer Reference это чисто информационные данные и на них можно повлять только изменив первый узел блока. Заголовок всего то 28 байт, не так много информации можно туда вместить. А список узлов хранится как данные этого блока.
27 июл 17, 10:45    [20678885]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
DAiMor,

нет, ошибка в Next Pointer Referense, просто меня самого сбивает, что у самого блока Pointer Referense хрен знает что. И если Next Pointer Referense - вычисляемый параметр, то почему в нем может быть ошибка? Не в Link-е, а именно в Next Pointer Referense.

The lower block has a right link global reference that doesn't
Match what was expected in the next pointer node's global reference.
We would expect them to be equal.

Я логически понимаю, что это избыточная информация, а блок всего 8Кб, да и я не работал с блоками на низком уровне в отличии от вас, но пока у меня создается ощущение, что Link и Next Pointer Referense хранятся отдельно. Может быть разные длины для вычисления Pointer Referense и Next Pointer Referense, из-за этого вычисляется неправильно? Но тогда это вообще тупо.
27 июл 17, 11:13    [20678974]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.
Link и Next Pointer Referense хранятся отдельно...
Так и есть, только Link хранится в заголовке блока, а Next Pointer Referense берётся из блока указателя предыдущего уровня (нижнего уровня, если ошибка в блоке данных).

Могли разойтись, например, так: при выполнении расщепления блока данных блок указателей нижнего уровня был перезаписан с учётом сего факта, а блоки данных - почему-то нет.
27 июл 17, 11:26    [20679033]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov,

Т.е. достаточно исправить указатель в родительском блоке? А то, что он, например, где-то отображается обрезанным, это не ошибка? А Способы поменять этот указатель какие? Я делал удаление и вставку записи в родительском блока, но при этом у меня получалось, что Link предыдущего блока автоматом сам не проставлялся. Еще можно удалять и добавлять первую запись в самом блоке, но из-за обрезки указателя меня смутило, что они не совпадаеют с данными.
27 июл 17, 11:44    [20679120]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
* не указателя, а Pointer Referense
27 июл 17, 11:45    [20679127]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Блок А.Н.,

Ссылки на блоки могут идти из разных мест, и поэтому есть возможность проверить

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

верхний блок
1. ссылка на блок 50
2. ссылка на блок 51

блок: 50
должна быть ссылка на блок 51

блок: 51
если в родительском это последний узел, то ссылки не будет
27 июл 17, 11:45    [20679129]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.,

написал и подумал, что возможна другая причина ошибки типа 24: изменился первый узел в некотором блоке данных (удалили узел глобала), а в блоке указателей осталась старая запись. Такой сценарий более вероятен, т.к. при ошибке расщепления скорее всего разбежались бы правый указатель блока данных и указатель на следующий блок в блоке указателей, что привело бы к ошибке типа 26:

The lower level block specifies a right link block of 4653.
That doesn't match the next pointer node in the pointer block, which is 4054.

Нашёл у себя рецепты по ремонту БД при некоторых типах ошибок, конкретно: 9, 13, 14, 24, 26. Могу выложить куда-нибудь, если интересно.
27 июл 17, 11:52    [20679183]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.
Я делал удаление и вставку записи в родительском блоке...
Именно так это и лечится согласно моим шпаргалкам; сам не лечил ошибку типа 24 уже давно, и не могу это подтвердить.

Блок А.Н.
...при этом у меня получалось, что Link предыдущего блока автоматом сам не проставлялся
Возможно, были ещё ошибки. Integrity может и не показать все ошибки с первого раза.

Про обрезку указателя: не могу прокомментировать, не слышал о таком.
27 июл 17, 12:03    [20679247]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Нет, вы меня обманываете
Если все вычисляется, скажите, откуда берется у блока 160685934 Next Pointer Referense = ^EnsHL7.Segment(7432,35)?
+


**********Global EnsHL7.Segment is Not OK**********
Error of type 24 while processing pointer block 157514517
which has a left neighbor pointer block of 157514516
The error occurred while processing node 651
which is ^EnsHL7.Segment(7428,2330146) pointing to the lower level block 160685934
The lower block has a right link global reference that doesn't
Match what was expected in the next pointer node's global reference.
We would expect them to be equal.
The lower block's right link reference is ^EnsHL7.Segment(7432,35)
The pointer block's next reference is ^EnsHL7.Segment(7428,2330247).
***We will continue checking with the next pointer block at this level.

**********Global EnsHL7.Segment is Not OK**********
Error of type 24 while processing pointer block 157514517
which has a left neighbor pointer block of 157514516
The error occurred while processing node 654
which is ^EnsHL7.Segment(7428,2330449) pointing to the lower level block 160685938
The lower block has a right link global reference that doesn't
Match what was expected in the next pointer node's global reference.
We would expect them to be equal.
The lower block's right link reference is ^EnsHL7.Segment(7432,""...)
The pointer block's next reference is ^EnsHL7.Segment(7428,2330550).
***We will continue checking with the next pointer block at this level.

Block #: 157514517
Block # 157514517 Type: 6 BOTTOM POINTER
Link Block: 157514518 Offset: 6148
Count of Nodes: 746 Collate: 5
First Node: ^EnsHL7.Segment(7428,2264477)
Last Node: ^EnsHL7.Segment(7428,2339747)

--more--

# Node POINTER
1 ^EnsHL7.Segment(7428,2264477) 160685052
2 ^EnsHL7.Segment(7428,2264578) 160685054
*****
649 ^EnsHL7.Segment(7428,2329944) 160685932
650 ^EnsHL7.Segment(7428,2330045) 160685933
651 ^EnsHL7.Segment(7428,2330146) 160685934
652 ^EnsHL7.Segment(7428,2330247) 160685935
653 ^EnsHL7.Segment(7428,2330348) 160685937
*****
745 ^EnsHL7.Segment(7428,2339646) 160686046
746 ^EnsHL7.Segment(7428,2339747) 160686049

-----------------------------------------------------------------------------------------------------------
Block # 160685934 Type: 8 DATA
Link Block: 160685935 Offset: 7760
Count of Nodes: 257 Collate: 5 Big String Nodes: 0
Pointer Length:24 Next Pointer Length:21 Diff Byte:Hex 3F
Pointer Reference: ^EnsHL7.Segment(7428,2330146)
Next Pointer Reference: ^EnsHL7.Segment(7432,35)
Next pointer stored? Yes


--more--

# Node Data
1 ^EnsHL7.Segment(7428,2330146) |^~\&ERR|||0|I
2 ^EnsHL7.Segment(7428,2330146,0,33744131)
3 ^EnsHL7.Segment(7428,2330147) |^~\&MSH|^~\&|||MOLISVT|LABOR|20170723170537||ACK^R01^ACK|00000000000016872143|P|2.4
****
256 ^EnsHL7.Segment(7432,34) |^~\&MSH|^~\&|||MOLISVT|LABOR|20170325053813||ACK^R01^ACK|00000000000014746399|P|2.4
257 ^EnsHL7.Segment(7432,34,0,29492664)


-----------------------------------------------------------------------------------------------------------
Block # 160685935 Type: 8 DATA
Link Block: 160685937 Offset: 6068
Count of Nodes: 202 Collate: 5 Big String Nodes: 0
Pointer Length:24 Next Pointer Length:24 Diff Byte:Hex 4C
Pointer Reference: ^EnsHL7.Segment(7428,2330247)
Next Pointer Reference: ^EnsHL7.Segment(7428,2330348)
Next pointer stored? Yes


--more--

# Node Data
1 ^EnsHL7.Segment(7428,2330247) |^~\&MSA|AA|6448760969403
2 ^EnsHL7.Segment(7428,2330247,0,33744199)
***
201 ^EnsHL7.Segment(7428,2330347) |^~\&ERR|||0|I
202 ^EnsHL7.Segment(7428,2330347,0,33744269)

Хотя тут жесть в том, что порядок сортировки нарушен, в конце блока 160685934 данные по сортировке выше, чем в блоке 160685935
И как такие ошибки исправлять, кроме как удалять данные целыми блоками? Чистить несколько сотен записей в блоке 160685934
тоже как-то не хочется
27 июл 17, 17:16    [20680578]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.,

да где уж мне вас обмануть! :) Тем более, что-то ведь означают эти пункты меню:

...
10) Blpntlen4 - Change
11) Blnextpntlen4 - Change
12) Blnextpntvalue4 - Change
13) Blnextpntoff - Change
...


Но ни разу (ни устно, ни письменно) мне не попадались советы что-то делать с ними.

Когда ошибок много, то наверное да, удалять целыми блоками. При таком высоком проценте ошибок наверняка нарушена и логическая структура данных.

Нарушение порядка сортировки в пределах одного блока данных может означать, что его образ испортился уже в памяти (в кэше глобалов), но здесь умолкаю. А техподдержка (WRC) на эту тему что говорит?
27 июл 17, 18:37    [20680808]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Блок А.Н.
Хотя тут жесть в том, что порядок сортировки нарушен, в конце блока 160685934 данные по сортировке выше, чем в блоке 160685935
Я смею предположить, что такое могло произойти по причине того, произошла ошибка при разбиении блока, новый блок записался, а разбитый не успел и остался в прежнем состоянии. И это полагаю может приводить к дальнейшим ошибкам, при попытке разместить новые данные, которые будут помещатся не в тот блок.
27 июл 17, 19:53    [20680897]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Судя по номерам блоков, база у вас не маленькая, сколько времени занимает проверка целостности?
Думаю, стоит присмотрется к исходникам утилит REPAIR, Integrity, можно понять и алгоритмы проверки и как вообще устроена база. Тем более что этот код весь открыт, разве что $view с его магическими комбинациями понять не так просто. Только свое с примением функции $view на важной базе очень не рекомендую ничего делать, только на отдельной специальной базе для опытов. Чревато, на себе испытал, я таким образом удалил самый первый блок в базе со смещением, как так получилось я не знаю. Но чинил потом почти вручную, так как REPAIR меня послал.
И со знаниями внутренностей Integrity, получить возможность быстро отсканировать проблемную ветку, очень полезно.
27 июл 17, 20:06    [20680918]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
DAiMor,

проверка занимает чуть меньше суток. Ошибки проявляются с завидной регулярностью в разных глобалах, кроме еженедельной проверки я делаю еще проверку в середине недели. Не помню, чтобы полная проверка базы чего-нибудь не выявила. Ну и после исправления, конечно, тоже проверяю глобал.
У меня конспирологическая теория, что данные внутри блоков уже много где с кривой сортировкой, которую проверка целостности не проверяет, а при разбиении блоков это проявляется. Нет подтверждения, что такое возможно, но вообще мало что могу придумать для объяснения того, что происходит.
27 июл 17, 20:39    [20680960]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov,

С Интерсистемс интересная история. Они отказываются поддерживать организацию, по крайней мере официально. Такая странная правовая коллизия, софт куплен в сторонней фирме, и лицензия на Каше идет вместе с софтом от этой фирмы, с Интерсистемс официальных отношений нет, на поддержку они поставить не могут, потому что организация ничего у них не покупала. Я могу, конечно спросить у инженеров что-то, и они мне отвечают, к ним претензий нет. Но такие серьезные вещи скорее всего нужно решать через спецов, более приближенных "к телу", обычно они работают на рубежом, личных контактов у меня с ними нет, а через WRC, как понимаете, задачу я поставить не могу.

Blpntlen4 - block header pointer length field
Blnextpntlen4 - header next pointer length field
Blnextpntvalue4 - block header Discriminator byte
Blnextpntoff - header indicator of stored next pointer

Я так понимаю, Blpntlen4 и Blnextpntlen4 - длины Pointer Reference и Next Pointer Reference. Непонятно, зачем длины хранить в блоке, если сами значения не хранятся (или все-таки хранятся?) Не понимаю логику этих значений, смотрел, на мой взгляд, не совпадает ни с чем. Менять не понимая страшновато.
Blnextpntvalue4 - нет догадок, о том, что это.
Blnextpntoff - признак, что Link есть. Странно, это по Link-у нельзя понять?
27 июл 17, 20:53    [20680971]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Полезно иногда заглядывать все таки в исходники
не помню такого раньше. Но есть возможность запустить REPAIR для удаленной базы через ECP
хотя судя по коду различия в работе минимальны, используется тот же набор команд для работы с блоками
27 июл 17, 21:55    [20681044]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
DAiMor
Но есть возможность запустить REPAIR для удаленной базы через ECP
Пробую (Cache 2015.1.2):

%SYS>zn "^TDB01^QMSRELEASE-GLOBALS"

^TDB01^QMSRELEASE-GLOBALS> ; чтобы никто не сомневался, что такая удалённая БД есть

^TDB01^QMSRELEASE-GLOBALS> zn "%SYS" d ^REPAIR

***Block Repair/Examine Program***


Directory: : /vol/cachesys/mgr/ => ^TDB01^QMSRELEASE-GLOBALS
%SYS>

наверное, среагировала на ^; если ввести без него, говорит: Directory 'TDB01^QMSRELEASE-GLOBALS' does not exist
28 июл 17, 12:28    [20682272]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.,

не хочу сыпать соль на раны, но вы наверное и сами поняли, что "сторонняя фирма" вас серьёзно подставила. Правильнее было бы разрулить вопрос с лицензией, у вас ведь и обновлений нет. Насчёт иностранных инженеров: в WRC сильнее Николая Жохова никого сегодня нет, по крайней мере я не встречал.

По поводу упомянутых 4-х полей Bl*: даже спецы WRC боятся в них лазить, не рискну гадать, что они делают. Некоторая избыточность для доп.контроля точно есть.

Неверной сортировки внутри блока в вашем примере я не увидел (вздохнув с облегчением), а насчёт нарушения сортировки в цепочке блоков объяснение DAiMor-а прозвучало правдоподобно. Такие ошибки Integrity всегда видит.

Соглашусь и с тем, что причина столь частых ошибок может быть только внешняя, Cache так сбоить просто не умеет.
28 июл 17, 12:49    [20682353]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Alexey Maslov,

Точка входа для ECP другая
%SYS>d ECP^REPAIR

***ECP Client Cache Block Repair/Examine***


Remote directory? (h for help, ? for a list, Q to quit):


из раннего что есть под рукой, тоже работает
Cache for UNIX (Apple Mac OS X for x86-64) 2014.1.4 (Build 803_2U) Tue Aug 11 2015 16:54:11 EDT
28 июл 17, 13:02    [20682412]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
DAiMor,

вот оно как, спасибо, будем знать. Хотя мне трудно представить себе админа в здравом уме и трезвой памяти, который станет чинить БД, предварительно не отключив всех клиентов (включая ECP).
28 июл 17, 13:37    [20682607]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Попробовал d ECP^REPAIR любопытства ради. Выдала список удалённых баз на СБД, включив в него даже такую: "^TDB01^/vol/cachesys/mgr/cachetemp/", которая, конечно, не описана в конфигурации удалённых баз на СП. Но при попытке перейти в любую базу ответ один: "The database is not mounted".

Хотя все они, конечно, mounted, ECP работает, и на СБД видно, что все базы смонтированы (они "белые", а не "розовые").

В любом случае, хотя бы имеем утилиту командной строки для просмотра списка удалённых баз. Её иногда не хватало, приходилось либо лезть в Портал, либо вызывать SHOW^%NSP и вытаскивать спецификацию БД из её выдачи.
28 июл 17, 13:53    [20682649]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Alexey Maslov
В любом случае, хотя бы имеем утилиту командной строки для просмотра списка удалённых баз.
У меня нету сейчас под рукой настроеного ECP.
Но вот команду нашел
do ##class(SYS.ECP).DisplayDatabases()

а ECP^REPAIR
использует такую
s sfn=##class(SYS.ECP).AskUserForRemoteDir()
28 июл 17, 14:53    [20682988]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
DAiMor,

"d ECP^REPAIR" короче, чем "do ##class(...)...()"
28 июл 17, 15:07    [20683054]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2342
Alexey Maslov
DAiMor,

"d ECP^REPAIR" короче, чем "do ##class(...)...()"
тоже верно
28 июл 17, 15:14    [20683090]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
DAiMor,

подумал было, что класс путается с зеркальной (mirror) конфигурацией, и попробовал на другом, тоже работающем СП, но без зеркала. Результат тот же. И в общем-то имеет право не работать: публикации в Release Notes ещё не было. Мне ради этой мелочи лень разворачивать ECP-"кластер" на 2017.1; будут ещё задачи, заодно посмотрю и это.
28 июл 17, 15:44    [20683216]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov
не хочу сыпать соль на раны, но вы наверное и сами поняли, что "сторонняя фирма" вас серьёзно подставила.
Это политика Интерсистемс в первую очередь, что она позволяет продавать свои лицензии сторонним фирмам и оставляет поддержку на их совести.
Alexey Maslov
Правильнее было бы разрулить вопрос с лицензией, у вас ведь и обновлений нет.
Ээм. А что делать с лицензией, софт то не самописаный. Никто ведь гарантий, что он будет работать на другой версии Каше не даст, а просто потому что круто в здравом уме тоже мало кто согласится эпгрейдиться.
Alexey Maslov
Насчёт иностранных инженеров: в WRC сильнее Николая Жохова никого сегодня нет, по крайней мере я не встречал.
Не могу судить, меня почти всегда переводили в итоге на англоязычных специалистов.
Alexey Maslov
Неверной сортировки внутри блока в вашем примере я не увидел (вздохнув с облегчением), а насчёт нарушения сортировки в цепочке блоков объяснение DAiMor-а прозвучало правдоподобно. Такие ошибки Integrity всегда видит.
Ну ошибка то внутри блока в любом случае до рассечения, тут мы уже ничего не увидим, даже если что-то было.
29 июл 17, 07:28    [20684550]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov
вот оно как, спасибо, будем знать. Хотя мне трудно представить себе админа в здравом уме и трезвой памяти, который станет чинить БД, предварительно не отключив всех клиентов (включая ECP).
Уверяю вас, таки есть, как минимум один .
Ошибки обычно в индексах, пример, который я привел, скорее исключение. Останавливать всю систему ради того, чтобы поправить один индекс, не вижу особого смысла. Система работает по многим российским часовым поясам, чем в какой момент занимается - я не знаю. После исправления логики целостности я просто перестраивают индекс без удаления (кроме одной таблицы, ее вообще не перестраиваю, потому что это порождает несколько десятков гигабайт журналов и такое же распухание CACHETEMP). Явная коллизия за все время была только одна, просто пришлось еще раз исправить ошибку. На случая предположения, что я сам же эти ошибки и делаю - нет, они в разных глобалах происходят.
29 июл 17, 07:38    [20684552]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.
Это политика Интерсистемс в первую очередь, что она позволяет продавать свои лицензии сторонним фирмам и оставляет поддержку на их совести
Вообще-то, нормальная практика продаж через VARов. Если в "цепочке -вендор - партнёр(VAR) - клиент" последний оплачивает техподдержку, а партнёр не платит вендору и лишает тем самым клиента т/п вендора, значит, он кидает клиента, и вполне может за это ответить, разве нет? Впрочем, вариантов развития событий здесь много, и я отнесусь с пониманием, если вы не захотите вдаваться в подробности. Это на вашей новой работе происходит?

Насчёт ремонта БД на ходу: это на самом деле опасно, можно огрести новых ошибок, и вполне возможно, что это ваш случай. Кроме того, остановив работу, вы привлекаете внимание руководства к проблемам:
- БД рушится => нестабильная работа железа
- нет зеркального сервера; что если основной сервер совсем станет?

Ремонтируя БД на ходу, вы превращаетесь в "героя, спасающего мир", из которого в любой момент могут сделать стрелочника ("плохо починил" и т.д.).
30 июл 17, 22:33    [20686389]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov
а партнёр не платит вендору и лишает тем самым клиента т/п вендора, значит, он кидает клиента
Из чего вы сделали такие выводы?
Alexey Maslov
Это на вашей новой работе происходит?
Да, на новой.
Alexey Maslov
Насчёт ремонта БД на ходу: это на самом деле опасно, можно огрести новых ошибок, и вполне возможно, что это ваш случай. Кроме того, остановив работу, вы привлекаете внимание руководства к проблемам:
Я не "владелец" системы, если я ее остановлю без согласования, то в первую очередь привлеку внимание к себе. Внимание руководства к проблеме я привлек обычными способами, но версий ни у кого нет, и что делать никому не понятно. Зеркального сервера нет, это проблема, о ней тоже знают, но в случае такого разрушения не факт, что оно поможет.
По поводу новых ошибок. Как вы представляете механизм появления ошибки в одном глобале при правке связности в другом? Я не представляю. Самый вероятный случай: при правке линка одного узла модифицируется родительский блок, при этом в родительский блок на живой системе добавляется подузел, который после сохранения правленого родительского узла видно не будет. Ошибка отлично видится и элементарно исправляется. Ситуации типа расщепления родительского блока, понижения или повышения уровня дерева и подобные штуки на тех объемах и том времени, в котором это находится, крайне маловероятны, и в любом случае это будет видно.

Alexey Maslov
Ремонтируя БД на ходу, вы превращаетесь в "героя, спасающего мир", из которого в любой момент могут сделать стрелочника
Мне уже приходилось экстренно разбираться с прикладными проблемами, отчасти с вопросами "а не из-за твоих ли проблем они возникли?" (в некоторых ситуациях перестало хватать памяти процесса). А кому сейчас легко?

Пара деталей еще:
1. сервера находятся у хостера, за время моего наблюдения хостер сменился, проблемы остались;
2. сервера находятся под VMWare. У меня нет опыта эксплуатации систем подобного объема под виртуалкой (многопроцессорные системы, терабайтные объемы данных).
31 июл 17, 08:15    [20686746]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov
Нашёл у себя рецепты по ремонту БД при некоторых типах ошибок, конкретно: 9, 13, 14, 24, 26. Могу выложить куда-нибудь, если интересно.
Выложите. Если есть описание номеров, то тоже, это даже более желательно. Мне номера ошибки ничего не говорят, каждый раз текстом читаю.
31 июл 17, 08:44    [20686782]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
Блок А.Н.
зеркала нет...но в случае такого разрушения не факт, что оно поможет...
Поможет. Как вы хорошо знаете, зеркало работает через журнал, а его целостность не зависит от целостности БД. Испорченный журнал я вроде бы видел 1 раз за 15 лет, и то до конца не уверен, что видел :)
Блок А.Н.
По поводу новых ошибок. Как вы представляете механизм появления ошибки в одном глобале при правке связности в другом? Я не представляю.
Я тоже, имел в виду появление ошибок в том же самом глобале.
Блок А.Н.
2. сервера находятся под VMWare. У меня нет опыта эксплуатации систем подобного объема под виртуалкой (многопроцессорные системы, терабайтные объемы данных).
У меня тоже нет опыта настройки такого хозяйства в целом, однако разворачивать и запускать систему (Linux + Cache) под vSphere приходилось. На нашем крупнейшем объекте БД подобного объёма; 2.5 года в строю без серьёзных нареканий. Эксплуатирует всё, включая Cache, сторонняя организация.
31 июл 17, 12:13    [20687503]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
Alexey Maslov
Как вы хорошо знаете, зеркало работает через журнал, а его целостность не зависит от целостности БД.
да, но база то будет все равно с нарушенной целостностью, максимум, что можно сделать - это переключиться на целый узел зеркала, а кривой пересоздать. При скорости возникновения ошибок около двух в неделю - это вообще не вариант.

Alexey Maslov
Я тоже, имел в виду появление ошибок в том же самом глобале.
Тот же самый глобал после исправления целостности я проверяю. Не всегда удается поправить ошибку с первого раза, был как минимум один случай, когда мои действия породили ошибку целостности. Но в итоге глобал я выправляю. Что не мешает появлению новых ошибок.
31 июл 17, 14:55    [20688404]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
kalin
Member

Откуда:
Сообщений: 176
Alexey Maslov,

Вот писал когда-то здесь
http://www.sql.ru/forum/1011743/postroenie-otkazoustoychivogo-klastera-dlya-cache?hl=drbd

Технология работает уже лет 7 24 часа в сутки. Никаких проблем с целостностью данных.
Вероятность падения базы на двух серверах близка к 0. Для повышения надежности в сетевой рейд можно включить любое количество серверов.
3 авг 17, 10:09    [20697036]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
kalin
Member

Откуда:
Сообщений: 176
https://ru.wikipedia.org/wiki/DRBD
3 авг 17, 10:14    [20697052]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
kalin,

В моем случае операционка - винда. Но с ней обычно тоже все достаточно стабильно.
3 авг 17, 14:14    [20697908]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1410
kalin
Технология работает уже лет 7 24 часа в сутки. Никаких проблем с целостностью данных.
Рад это слышать :) Написали бы заметку на community, чтобы аксакалы из ISC за вас тоже порадовались, а может, и присоветуют что. С нас-то спрос невелик.
3 авг 17, 15:55    [20698409]     Ответить | Цитировать Сообщить модератору
 Re: Были в вашей практике проблемы с целостностью баз данных Каше?  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3522
24 ошибка оказалась не такой уж простой для исправления руками. Либо удалять море узлов, либо весь блок целиком.
Николай Жохов написал программу для исправления, и мы поправили один глобал (он правил - я смотрел).
В общем, я еще раз порекомендую техподдержку Интерсистемс, там крутые специалисты и она отзывчивая.
(Да, организация в которой происходят эти проблемы, не на поддержке, но получилось так, что немножечко поддержать оказалось можно)

С причиной ошибок пока ничего не ясно.
вчера, 23:50    [20740134]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Caché Ответить