|
Informix 7.31, blobs & HDR
|
|||
---|---|---|---|
#18+
Доброго дня! Имеется небольшая база под СУБД 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.
Исполнение предложенного oncheck -cD 4194335 выдает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В af-файле, тоже ничего внятного нет. Как следствие не отрабатывается запрос: Код: plsql 1.
Код: plaintext 1. 2. 3. 4. 5.
Причем, в остальных полях, не связанных с BLOB все хорошо. Так же, как я уже упоминал, при рабочем HDR читаем эту табличку вышеприведенным запросом нормально. Никто с такой ситуацией не сталкивался? Просто, не знаю как быть в такой ситуации в дальнейшем. Данные в BLOB не являются критическими, т.е. их потеря - не смертельна. Иначе, просто смысла в HDR не было бы (разработчики вкурсе того, что на вторичный сервер репликации BLOB нет). После перехода в standard режим, делал принудительную ротацию лога, ну мало ли, чтоб типа принять изменения внутри BLOB DBSpace. У меня опыта с BLOB практически никакого. Возможно не доконца его понимаю. С удовольствием выслушаю мнения и рекомендации тех, кто работал с этими данными в связке HDR. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 18:37 |
|
Informix 7.31, blobs & HDR
|
|||
---|---|---|---|
#18+
н-да, с блобами эт все стандартно в свое время мы по этойже причине использовали SBLOBspace Стандартных путей вроде как нет, так как это явно оговоренное ограничение + на 7.31 репликация работала так себе разве что попробовать выгрузить все поля без блоба в текст и пересоздать таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 23:50 |
|
Informix 7.31, blobs & HDR
|
|||
---|---|---|---|
#18+
яфшуеі, Так, вроде же как 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ами. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 09:04 |
|
Informix 7.31, blobs & HDR
|
|||
---|---|---|---|
#18+
vvt1, а после перевода в стенделоун "апдейт тейбл сет блобполе = нал" не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 23:49 |
|
Informix 7.31, blobs & HDR
|
|||
---|---|---|---|
#18+
АнатоЛойvvt1, а после перевода в стенделоун "апдейт тейбл сет блобполе = нал" не пробовали? Нет, не пробовали. А уточнить синтаксис можно? Я правильно понял: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2013, 12:04 |
|
|
start [/forum/topic.php?fid=44&msg=38297057&tid=1607045]: |
0ms |
get settings: |
25ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
195ms |
get tp. blocked users: |
2ms |
others: | 305ms |
total: | 596ms |
0 / 0 |