Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 HDR и linked (или как это в Информиксе)  [new]
Евгений Фадеев
Member [заблокирован]

Откуда: Russia, Moscow
Сообщений: 2374
Заранее прошу прощения за терминологию, не джедай.

В общем такая проблема:

- есть сервер А (он же - основной)
- есть сервер Б - реплика сервера А по HDR
- сервера линкованы (в том смысле что я на Б могу корректно выполнить запрос вида SELECT * FROM база@A:таблица)

Задача: создать синоним/view (не важно что именно - главное задачу решить) таким образом, чтобы при работе с ним на сервере Б происходило обращение к серверу А (то есть что-то вроде CREATE VIEW X AS SELECT * FROM база@A:таблица).
Засада в том, что он, похоже, при репликации аккуратно выкидывает имя инстанса...
Это можно как-то побороть?
19 окт 07, 19:05    [4817152]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
vasilis
Member

Откуда: Украина, Киев
Сообщений: 2205
А может зайти с другой стороны - зачем это надо ? М.б. есть более простой путь решения проблемы ? HDR ведь предназначен для вполне определенных целей.
19 окт 07, 20:25    [4817509]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
GVF112GVF
Guest
- сервера линкованы (в том смысле что я на Б могу корректно выполнить запрос вида SELECT * FROM база@A:таблица)


Я правильно понимаю, что
на сервера A -> DBSERVERALIASES ifx_server_B
на сервера B -> DBSERVERALIASES ifx_server_A

В SQLHOSTS на обеих серверах В и A:
ifx_server_B ....
ifx_server_A ....

Далее на сервер B можно корректно выполнить
запрос вида SELECT * FROM база@ifx_server_A:таблица) ???

Вы создаете CREATE VIEW X AS SELECT * FROM база@ifx_server_A :таблица) на сервере A и далее
настраиваете репликацию на сервере B (ontape -p ... onmode -d ... ) или пытаетесь создать VIEW на сервере B ????

Можно попробывать использование SPL (storage procedure) или внешней пользовательской функции
(например на java (jdbc) ) и т.д.

С уважением,
Вадим.
19 окт 07, 21:23    [4817578]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
vvg16
Guest
Евгений Фадеев
Заранее прошу прощения за терминологию, не джедай.

В общем такая проблема:

- есть сервер А (он же - основной)
- есть сервер Б - реплика сервера А по HDR
- сервера линкованы (в том смысле что я на Б могу корректно выполнить запрос вида SELECT * FROM база@A:таблица)

Задача: создать синоним/view (не важно что именно - главное задачу решить) таким образом, чтобы при работе с ним на сервере Б происходило обращение к серверу А (то есть что-то вроде CREATE VIEW X AS SELECT * FROM база@A:таблица).
Засада в том, что он, похоже, при репликации аккуратно выкидывает имя инстанса...
Это можно как-то побороть?


Мне кажется, что сервер делает все правильно.
Дело в том, что при HDR таблицы синхронизируются, поэтому
запрос SELECT * FROM база@A:таблица
и запрос SELECT * FROM база@B:таблица
возвращают совершенно одинаковые результаты, как будто выполнялся запрос
SELECT * FROM база:таблица
19 окт 07, 23:02    [4817762]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
vvg16
Guest
vvg16

Дело в том, что при HDR таблицы синхронизируются, поэтому
запрос SELECT * FROM база@A:таблица
и запрос SELECT * FROM база@Б:таблица
возвращают совершенно одинаковые результаты, как будто выполнялся запрос
SELECT * FROM база:таблица

Немного поправлю сам себя. В любом случае будет выполняться запрос
SELECT * FROM база@A:таблица
так как при HDR сервер-репликант Б является доступным только для чтения,
во всяком случае до появления Читы 2.
19 окт 07, 23:21    [4817804]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
GVF112GVF
Guest
...возвращают совершенно одинаковые результаты, как будто выполнялся запрос
SELECT * FROM база:таблица


Вообщем-то - да,
за исключением задержки на передачу буфера репликации на удаленный сервер ... :)

С уважением,
Вадим.
20 окт 07, 00:35    [4818055]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
sysmaster
Member

Откуда: moscow_dbs.dat
Сообщений: 452
автор
В любом случае будет выполняться запрос
SELECT * FROM база@A:таблица


Позволю себе не согласиться.
А как же перенаправление монстроидальных запросов на секондари для облегчения работы праймари?
20 окт 07, 06:42    [4818243]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
vvg16
Guest
sysmaster
А как же перенаправление монстроидальных запросов на секондари для облегчения работы праймари?

Согласен, что сам запрос будет выполняться на секондари сервере.
Для этого он и создается. Хотя результат будет такой же, как будто
он выполнялся на мастере (с учетом вышеприведенного замечания Вадима
о задержке при передачи данных в случае failure)
20 окт 07, 07:53    [4818255]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
cpr
Member

Откуда: Rostov-on-Don
Сообщений: 762
если ХАДР работает в синхронном режиме, то транзакции фиксируется одновременно.
Точнее транзакция на праймэри не будет закомичена пока с секондэри не придет подтверждение фиксации. Так что прямой запрос к таблице на вторичке вполне корректен.
Другое дело, что зачаем это все? Если речь идет о том, чтобы разгрузить первичку, то если курсор будет очень большим вы и первичку пригрузите, а если это еще и массовый запрос, то что вы при этом достигненте?
20 окт 07, 11:47    [4818373]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
GVF112GVF
Guest
... если ХАДР работает в синхронном режиме, ...

Не всегда можно использовать синхронный режим.

На мой взгляд,
проблему можно решить:

1. На уровне сервера приложений.
Сервер приложений может инициировать два пула соединений:
- один на сервер A (write/read)
- другой на сервер B (only read)

Какой из них использовать - решает диспечер приложения.

2. На уровне монитора транзакций.

Например,
если монитор транзакций может выполнять маршрутизацию запросов по его типу I/S/U/D
или еще как-то ...

3. На уровен диспечера запросов и транспортного протокола сервера Informix.

Когда-то проводили тестирование соединенние клиента Informix c использованием групп.
В одну группу - поместили Primary и Secondary серверы репликационной пары.
Дальше, использовали соединение через указанную группу в Control Center (IDS 7.30).
Выполняли SQL- запросы в SQL Editor. Запросы на INSERT, UPDATE - выполнялись на первичном сервере, SELECT - можно было выполнять на любом сервере (отдельно или совместно).

Возможно,
что в новой версии IDS 11.xD1 - Cheetah2 - будет что-то похожее ... :)

С уважением,
Вадим.







4. и т.д.
20 окт 07, 14:46    [4818541]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
nkulikov
Guest
Последние слухи которые я слышал в IBM были про создание некоторого аналогоа WLM (Workload management) который делают в DB2 v9.5 в Informix. Соответсвенно можно предположить, что на основании профилей можно будет перенаправлять запросы по собственному усмотрению
22 окт 07, 08:59    [4820517]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
Евгений Фадеев
Member [заблокирован]

Откуда: Russia, Moscow
Сообщений: 2374
GVF112GVF
...возвращают совершенно одинаковые результаты, как будто выполнялся запрос
SELECT * FROM база:таблица


Вообщем-то - да,
за исключением задержки на передачу буфера репликации на удаленный сервер ... :)

С уважением,
Вадим.
Это ключевое НО!
22 окт 07, 11:16    [4821211]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
Евгений Фадеев
Member [заблокирован]

Откуда: Russia, Moscow
Сообщений: 2374
GVF112GVF
... если ХАДР работает в синхронном режиме, ...

Не всегда можно использовать синхронный режим.

На мой взгляд,
проблему можно решить:

1. На уровне сервера приложений.
Сервер приложений может инициировать два пула соединений:
- один на сервер A (write/read)
- другой на сервер B (only read)

Какой из них использовать - решает диспечер приложения.

2. На уровне монитора транзакций.

Например,
если монитор транзакций может выполнять маршрутизацию запросов по его типу I/S/U/D
или еще как-то ...

3. На уровен диспечера запросов и транспортного протокола сервера Informix.

Когда-то проводили тестирование соединенние клиента Informix c использованием групп.
В одну группу - поместили Primary и Secondary серверы репликационной пары.
Дальше, использовали соединение через указанную группу в Control Center (IDS 7.30).
Выполняли SQL- запросы в SQL Editor. Запросы на INSERT, UPDATE - выполнялись на первичном сервере, SELECT - можно было выполнять на любом сервере (отдельно или совместно).

Возможно,
что в новой версии IDS 11.xD1 - Cheetah2 - будет что-то похожее ... :)

С уважением,
Вадим.

4. и т.д.
В нашем случае - точно нельзя. Я сам могу придумать пару-тройку способов :), но хотелось как-то попроще. Похоже - не судьба.
22 окт 07, 11:19    [4821229]     Ответить | Цитировать Сообщить модератору
 Re: HDR и linked (или как это в Информиксе)  [new]
sysmaster
Member

Откуда: moscow_dbs.dat
Сообщений: 452
cpr
если курсор будет очень большим вы и первичку пригрузите,


А можно поподробнее?
9 ноя 07, 17:15    [4898673]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить