powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Informix 7.31, blobs & HDR
6 сообщений из 6, страница 1 из 1
Informix 7.31, blobs & HDR
    #38296794
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!

Имеется небольшая база под СУБД Informix 7.31 (так повелось, что такой старый).
Есть два сервера Sun V125 (тоже старые, так повелось).
Informix на них связан в HDR режиме.

Blobs - не реплицируется, таковой механизм, с ним все понятно. Таблица у разработчиков имеет поле, данные которого хранятся в BLOB DBSpace. Остальные данные таблицы хранятся в обычном DBSpace. Обновления состояния данных в BLOB DBSpace осуществляется, периодическим дерганьем из крона принудительной ротации лога, т.е. исполнения onmode -l. Это для принятия изменений внутри BLOB пространства, т.н. а-ля commit. Ну тут как бы все тоже ясно.

При обычном режиме работы, у нас, если читать данные на вторичном сервере, то поле ссылающееся на BLOB DBSpace покажет null данные, что понятно. Смысл в том, что ошибок нет...

Теперь ситуация.
Пропадает первичный сервер в HDR связке, остается у нас только вторичный.
Переводим вторичный сервер в состояние Standard (onmode -d standard).
Все вроде бы хорошо, но... появляются ошибки.

online.log:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
13:12:59  Checkpoint Completed:  duration was 0 seconds.
13:12:59  Checkpoint loguniq 19, logpos 0x299018

13:18:00  Checkpoint Completed:  duration was 0 seconds.
13:18:00  Checkpoint loguniq 19, logpos 0x29a018

13:20:46  DR: ping timeout
13:20:46  DR: Receive error
13:20:48  DR: Turned off on secondary server
13:20:48  Process exited with return code 1: /bin/sh /bin/sh -c /usr/informix/etc/log_full.sh 3 15 "Data Replication failure." "DR: Turned off on secondary server" 
15:15:17  Assert Failed: Incorrect BLOB stamps.
15:15:17  IBM Informix Dynamic Server Version 7.31.FD10   
15:15:17   Who: Session(25, informix@blob2, 24423, 170615784)
                Thread(71, sqlexec, 10a27ede8, 1)
                File: rsdebug.c Line: 1864
15:15:17   Results: BLOBSpace letterspace, BLOB addr: 0x601804, BLOB stamp -616

15:15:17   Action: Run 'oncheck -cD 4194335'
15:15:17  stack trace for pid 945 written to /tmp/af.42fa9c4
15:15:35   See Also: /tmp/af.42fa9c4


Исполнение предложенного oncheck -cD 4194335 выдает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TBLspace data check for letter:u001139.sdbo_attmsg

ERROR:bpg_bstamp (fffffe30) on BLOBpage 60000a != expected (fffffb17) for rowid 6401
ERROR:bpg_bstamp (320c) on BLOBpage 600000 != expected (ffff9b10) for rowid 6701
ERROR:bpg_bstamp (320f) on BLOBpage 600001 != expected (ffffa2f7) for rowid 6901
ERROR:bpg_bstamp (3211) on BLOBpage 600002 != expected (ffffa3ab) for rowid 6a01
ERROR:bpg_bstamp (fffffd98) on BLOBpage 600003 != expected (ffffa7c1) for rowid 6b01
ERROR:bpg_bstamp (fffffded) on BLOBpage 600007 != expected (686e) for rowid 7101
ERROR:bpg_bstamp (fffffdfe) on BLOBpage 600008 != expected (68b0) for rowid 7201
ERROR:bpg_bstamp (fffffe1e) on BLOBpage 600009 != expected (6918) for rowid 7301

В af-файле, тоже ничего внятного нет.

Как следствие не отрабатывается запрос:
Код: plsql
1.
SELECT * FROM sdbo_attmsg;


Код: plaintext
1.
2.
3.
4.
5.
  604: Cannot read blob.

  164: ISAM err: Blob stamp is incorrect
Error in line 1
Near character position 25

Причем, в остальных полях, не связанных с BLOB все хорошо. Так же, как я уже упоминал, при рабочем HDR читаем эту табличку вышеприведенным запросом нормально.

Никто с такой ситуацией не сталкивался?
Просто, не знаю как быть в такой ситуации в дальнейшем.

Данные в BLOB не являются критическими, т.е. их потеря - не смертельна. Иначе, просто смысла в HDR не было бы (разработчики вкурсе того, что на вторичный сервер репликации BLOB нет). После перехода в standard режим, делал принудительную ротацию лога, ну мало ли, чтоб типа принять изменения внутри BLOB DBSpace.

У меня опыта с BLOB практически никакого. Возможно не доконца его понимаю.
С удовольствием выслушаю мнения и рекомендации тех, кто работал с этими данными в связке HDR.
...
Рейтинг: 0 / 0
Informix 7.31, blobs & HDR
    #38297057
яфшуеі
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
н-да, с блобами эт все стандартно
в свое время мы по этойже причине использовали SBLOBspace
Стандартных путей вроде как нет, так как это явно оговоренное ограничение + на 7.31 репликация работала так себе
разве что попробовать выгрузить все поля без блоба в текст и пересоздать таблицу.
...
Рейтинг: 0 / 0
Informix 7.31, blobs & HDR
    #38297307
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
яфшуеі,

Так, вроде же как BLOB не реплицируем. В logical log сохраняется указатель на текущее состояние BLOB, которое изменяется только при ротации журнала. Журнал - реплицируем. И вот тут, мое мнение, и получаем ссылку на состояние BLOB DBSpace не соответствующее состоянию на первичном сервере. И пока действует связка HDR, в RO-запросах к БД, это состояние не учитывается. А как только перевели сервер в Standard mode, оно и всплывает.

Т.е., получается, что имея таблицу с одним полем в BLOB DBSpace, чтобы как-то привести БД в состояние более-менее работоспособное на вторичном сервере, после перехода к Standard mode, надо сделать UNLOAD SELECT по полям таблицы, которые не ссылаются на BLOB DBSpace, дропнуть табличку, пересоздать ее в аналогичном контексте, но с переделкой проблемного поля из BLOB-объекта в стандартное, CHAR, если позволит размерность?
Или, после дропа, дропнуть BLOB DBSpace, пересоздать его по-новой, ротировать логический журнал (иначе BLOB DBSpace будет не доступен, какбудто его и нет) и восстановить структуру таблицы, загрузить в нее все данные, кроме BLOB (которые мы и так не имеем на вторичном сервере) и продолжить работу.

Как-то сложно все с BLOBами.
...
Рейтинг: 0 / 0
Informix 7.31, blobs & HDR
    #38298804
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvt1, а после перевода в стенделоун "апдейт тейбл сет блобполе = нал" не пробовали?
...
Рейтинг: 0 / 0
Informix 7.31, blobs & HDR
    #38298931
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойvvt1, а после перевода в стенделоун "апдейт тейбл сет блобполе = нал" не пробовали?

Нет, не пробовали.
А уточнить синтаксис можно?
Я правильно понял:
Код: plsql
1.
UPDATE sdbo_attmsg SET myblobfield = null
...
Рейтинг: 0 / 0
Informix 7.31, blobs & HDR
    #38299000
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvt1, да, правильно, пардон за мой французский. Но это идея, на практике не проверял.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Informix 7.31, blobs & HDR
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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