powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / репликация vs federated
11 сообщений из 11, страница 1 из 1
репликация vs federated
    #37115516
db2replic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день.
db2 luw 8.2 64х на redhat.
клиент-серверное приложение с толстым клиентом.
в среднем 100-120 активных пользователей в течении раб.дня.
основные задачи - oltp, ввод-апгрейд данных.
постепенно растет кол-во отчетных запросов к бд (большие объемы выборки с сортировками-группировками)
есть возможность выделить под отчетные задачи сервер, чтобы разгрузить основной.
в отчетных запросах используется примерно 160 таблиц.
в течении ближайших 2-х лет кол-во используемых таблиц может увеличиться до 200.
как лучше организовать копирование данных на "отчетный" сервер?
задержка появления данных на отчетном сервере желательна в пределах 12-15 минут (но чем меньше, тем лучше).
пока на вскидку 3 варианта:
1 - репликация. очень уж муторно настраивать и сопровождать репликацию на все нужные таблицы.
еще муторнее сделать это более чем на 1-м объекте.
2 - сделать на отчетном сервере federated объекты на основной сервер.
реализация и распространение по разным объектам внедрения проще, чем п.1.
3 - постоянный он-лайн инкрементный бэкап основного сервера с накатыванием обновлений на "отчетном".
что-то экзотическое и может потребовать знач. времени.

главный вопрос - что даст меньшую нагрузку на основной сервер?
...
Рейтинг: 0 / 0
репликация vs federated
    #37120623
я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
я
Гость
db2replic,
а может объедитнить эти две железки в кластер?
...
Рейтинг: 0 / 0
репликация vs federated
    #37120787
db2replic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я, у заказчиков некому этим заниматься (из числа своих сотрудников).
нанимать никого не будут (экономят).
я сам тоже не в состоянии это сделать даже одному заказчику,
тем более распространять такое решение.

по идее, затраты сервера-источника на репликацию д.б. на порядок ниже (в части I\O),
чем затраты на выборку и передачу данных в варианте federated-схемы.
есть ли для db2 luw 8.2 утилиты быстрой настройки односторонней репликации для всех таблиц указанной схемы?
или шаблоны скриптов?
база-источник и база-приемник полностью идентичны.
...
Рейтинг: 0 / 0
репликация vs federated
    #37123531
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Федерация, мне кажется, вообще не вариант - из-за сетевых тормозов.

Инкрементальный бекап... даже не могу представит, как он может вам помочь.

Настройка репликации для N таблиц должна быть очень простым делом. Особенно через GUI. Казалось бы, IBM сделано всё нужное. Я, в общем-то, довольно часто этим занимался, правда, в основном реплицировал Oracle в DB2. Выбираешь несколько сот таблиц, проверяешь для порядка маппинги, щёлкаешь кнопку, генерируется скрипт, щёлкаешь ещё раз - он выполняется, и всё работает. Теоретически.

Перед этим, правда, придётся штудировать огромное руководство.

А в процессе выясняется, что всё глючит. Ну ладно - когда глючит Java GUI, это как-то даже привычно, как будто так положено. Когда мне это надоело, решил не пользоваться GUI, использовать command line interface. Написал скрипт на REXX'е, скормил ему список таблиц и сделал скрипты для asnclp. Ха, это глючит тоже. Выясняется, кстати, что и эта часть написана на Java (легко видно по распечаткам стека при выбросе исключений). Причины понять не удаётся, причём один и тот же скрипт может сработать или не сработать. И при таком выполнении скрипта легко может создаться такой коннект, который ест 100% CPU, убить невозможно и даже db2stop force не действует. Случалось также, что я что-то мог сделать только через GUI, но не asnclp. Ну, и утилита "Apply" легко может зависнуть (при не очень хорошей связи с Oracle), а управление ею - отдельный разговор.

Это у меня в 9.1/win32 с разными фикспаками. 8-ка так не выделывалось, но тоже была не ахти (например, "Apply" не желал работать сервисом). Может, это просто я такой невезучий, но, судя по тому, как в руководстве описано, как устроена DB2-шная репликация (dспомогательные таблицы, утилиты, генерируемые скрипты - всё можно видеть, всё можно пощупать) эта штука должна быть проще пареной репы, и откуда столько проблем, совершенно непонятно. Меня аж подмывало сделать свой вариант, но всегда оказывалось недосуг. Судя по APAR'ам, IBM-еры репликацию чинят, чинят и чинят...

Таки у меня работает как-то, хотя за apply надо глаз да глаз и перезапускать в случае чего.

Ну, при DB2 -> DB2 и с хорошей связью, наверное, вам больше повезёт.
...
Рейтинг: 0 / 0
репликация vs federated
    #37143798
A.Panskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
db2replic,

db2replicосновные задачи - oltp, ввод-апгрейд данных.
постепенно растет кол-во отчетных запросов к бд (большие объемы выборки с сортировками-группировками)


Здесь задача понять, что в первую очередь нагружает систему и от чего хотим избавиться. В смешанной среде транзакции друг другу могут мешать:

а) блокировками
б) olap вымывает пулы и грузит диск
с) olap грузит память-проц (+диск) - сортировки, временные таблицы и пр.


db2replicесть возможность выделить под отчетные задачи сервер, чтобы разгрузить основной.
в отчетных запросах используется примерно 160 таблиц.
в течении ближайших 2-х лет кол-во используемых таблиц может увеличиться до 200.


При таком количестве таблиц репликация будет весьма тяжелой сама по себе. Тут опять вопрос - что, все 200 оперативные? Или 190 - статичные справочники и реально нужно реплицировать 10?

Если все 200, то тут уже использование второго сервера только MPP, при чем нужно будет продумать правильное разделение по партициям. А если у вас одна большая таблица с суррогатом типа счетчик - все, не вариант.

db2replic2 - сделать на отчетном сервере federated объекты на основной сервер.


И что это даст??? Запросы все равно будут отрабатывать на основном сервере. Если только сегментировать таблицу на оперативную-архивную часть и размазывать ее между 2-мя серверами (через view & instead of trigger) . Только тогда наоборот, скорее с основного на архивный будут никнеймы. Плюс еще нужно будет сделать процедуры по перезаливке.

db2replic3 - постоянный он-лайн инкрементный бэкап основного сервера с накатыванием обновлений на "отчетном"


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

db2replicглавный вопрос - что даст меньшую нагрузку на основной сервер?


Главный вопрос - что делать? Это покажет детальный анализ, я показал основные точки, куда пилить.

Действия:

Выявляем тяжелые запросы и анализируем их, если есть возможность - улучшаем. Строим/удаляем индексы, меняем уровень изоляции для olap на UR. Смотрим на пулы, перемещаем tbs между дисками и подкручиваем прочие ручки. Оптимизируем все, что можем. Может реально использовать summary, кластеризацию или MDT, если отклик для insert/update/delete будет приемлемым. Не хватает, думаем дальше. Если множество таблиц для отчетности достаточно статично и у самой системе отчетности можно поменять источник данных - тогда задумываемся о репликации части таблиц на второй сервер. Честно говоря, я плохо представляю OLAP прям весь такой оперативный.

У меня для sas/dwh 2 сценария используются: и регулярная песочница каждое утро и репликация определенного множества таблиц с небольшой задержкой. Итого 3 базы: Оперативная - Песочница - МиниРеплика. Для ряда старых приложений деление через никнеймы тоже сделано.

Andy
...
Рейтинг: 0 / 0
репликация vs federated
    #37146533
db2replic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A.Panskikh
db2replic2 - сделать на отчетном сервере federated объекты на основной сервер.


И что это даст??? Запросы все равно будут отрабатывать на основном сервере. ...
Andy
Andy , может я не правильно понял, но по-моему,
сервер А ("OLAP") посылает серверу Б(OLTP) запрос, получает план, на основе плана делает
выборки только нужных данных, и уже сам делает финальные группировки-сортировки.
В этом случае с сервера OLTP снимается часть нагрузки с проца и ОП.
Также вместо множества агентов на обслуживание каждого из клиентов
(пользователей подсистемы отчетов),
получаем обслуживание только клиента "OLAP-сервера".
Нагрузка на диски в принципе тоже может уменьшиться за счет снижения нагрузки на темпспейсы.
Не так?

з.ы. подсистему отчетности в перспективе можно считать независящей от меня,
без возможности значительно влиять на нее.
при этом стабильную работу системы в части OLTP я должен обеспечить.
репликация по-моему будет выгоднее, но времени пока нет.
(да и постоянного доступа к серверам заказчика у меня нет).
на разворачивание federated-варианта меньше времени потребуется.

да, и спасибо Victor и Andy за отклик.
...
Рейтинг: 0 / 0
репликация vs federated
    #37146681
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
db2replicз.ы. подсистему отчетности в перспективе можно считать независящей от меня,
без возможности значительно влиять на нее.
при этом стабильную работу системы в части OLTP я должен обеспечить.
репликация по-моему будет выгоднее, но времени пока нет.
(да и постоянного доступа к серверам заказчика у меня нет).
на разворачивание federated-варианта меньше времени потребуется.

Если есть возожность "вычислять дельты" т.е. определять добавленные/измененные записи, то можно было бы попробовать загрузку в отчетную базу через те же никнеймы, хотя если " в отчетных запросах используется примерно 160 таблиц ", то есть риск не успеть за " 12-15 минут (но чем меньше, тем лучше) " .
Ну и 8.2 все-таки, наверное, пора апгрейдить, а в 9.7.1 и выше есть reads on HADR standby :)

HINT: если с вашей OLTP-базы будут "кормиться" разработчики OLAP-системы, то, как говорится, "cледите за их руками" :)
...
Рейтинг: 0 / 0
репликация vs federated
    #37148164
A.Panskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
db2replicможет я не правильно понял, но по-моему,
сервер А ("OLAP") посылает серверу Б(OLTP) запрос, получает план, на основе плана делает
выборки только нужных данных, и уже сам делает финальные группировки-сортировки.


Нет. Никаких чужих "планов" он не смотрит. При создании никнеймов есть возможность сделать index definintion на никнейм (на однородные сервера db2 автоматом создаются существующие на источнике). Можно туда залить статистику, которую использует компилятор. Есть даже возможность кэширования - я уже не помню точно, но мы от нее отказались, надо наморщить ум почему. Что в итоге за запрос пойдет по никнейму - нужно смотреть в эксплейне, очень часто получаем безпредикативный full select.

db2replicВ этом случае с сервера OLTP снимается часть нагрузки с проца и ОП.
Также вместо множества агентов на обслуживание каждого из клиентов
(пользователей подсистемы отчетов), получаем обслуживание только клиента "OLAP-сервера".


С чего бы, ведь все данные лежат на сервере исходном. Из-за особенностей использования никнеймов вместо быстрого пересечения двух множеств локально, например, получим два full-select'а и их объединение на olap-server'е. Если таблицы маленькие, а запросы наоборот - да, реально можно получить выигрыш. Но это исключение, когда задача решена не теми средствами...

Если клиент использует никнейм - ему выделяется коннект на удаленный сервер. Количество коннектов останется прежним.

Еще раз - разберитесь, что конкретно не устраивает. Хотелки и их реализации должны быть адекватными. "Оперативный olap" - это явно неправильно понятая и также неправильно решенная задача.

Andy
...
Рейтинг: 0 / 0
репликация vs federated
    #37150540
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тяжёлая репликация или нет - дело, конечно, не в количестве таблиц. Как вообще устроена репликация DB2-> DB2:

1. Когда включаем репликацию, размер логов увеличивается (увеличивается нагрузка на то место в дисковой подсистеме, где хранятся эти логи).

2. Программа "Capture" читает эти логи (нагрузка на дисковую подсистему увеличивается ещё, плюс какая-то дополнительная нагрузка на процессор)

3. Программа "Capture" куда-то складывает полученные данные, в таблицах на промежуточном пункте хранения. Если он совпадает с исходной базой, это означает - новые логи и новая нагрузка на диски на ней. В противном случае - дополнительный сетевой трафик.

(Потом одна или несколько "Apply" берут данные из промежуточного пункта и прикладывают к целям).

Насколько это существенно в каком-то конкретном случае - надо тестировать и измерять.
...
Рейтинг: 0 / 0
репликация vs federated
    #37150938
A.Panskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю к сказанному Виктором (кстати, привет! 2:5020/1.21 :) )

Victor MetelitsaТяжёлая репликация или нет - дело, конечно, не в количестве таблиц.


скажем так - не только в количестве. Просто чем больше таблиц, тем сложнее поддерживать. И одному capture может быть тяжело.

Victor Metelitsa1. Когда включаем репликацию, размер логов увеличивается (увеличивается нагрузка на то место в дисковой подсистеме, где хранятся эти логи).


Увеличивается за счет того, что в лог пишется при апдейте строка целиком, а если включена опция capture before image - то, соответственно, и записывается исходная строка. Плюс потом Capture (при SQL-репликации) будет писать в stage-таблицы (1 или 2 записи, если включить режим передачи изменений как пару delete/insert). Может потребоваться увеличить размеры журналов. Плюс при массовых апдейтах - дисковое пространство.

Victor Metelitsa3. Программа "Capture" куда-то складывает полученные данные,


При Q-репликации, будет использоваться транспорт MQ. При SQL - исходная база.
Плюс свою нагрузку при SQL-репликации создадут подписчики.

Таблицы, в которые могут писать без журналирования, напрямую для репликации не подходят, следует это учесть.

Andy
...
Рейтинг: 0 / 0
репликация vs federated
    #37151059
ппм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa2. Программа "Capture" читает эти логи (нагрузка на дисковую подсистему увеличивается ещё, плюс какая-то дополнительная нагрузка на процессор)

Так Capture из буферов логов читает, не из самих логов, если в нормальном режиме.
А если запустили после простоя, то да, надо будет ей догнаться по логам до текущего места, после чего уходит на чтение из буфера.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / репликация vs federated
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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