Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Создание "суперконсолидированной" базы / 3 сообщений из 3, страница 1 из 1
04.12.2006, 10:51
    #34173903
Andyn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание "суперконсолидированной" базы
ASA 8.0.2

Есть сеть филиалов, некоторые из которых обмениваются данными с головным офисом (репликация через файлы), в то время как другие живут своей отдельной жизнью. Структура БД везде одинаковая. Назрела необходимость создания "суперконсолидированной" БД, которая бы являлась главной как по отношению к независимым сейчас филиалам, так и к уже действующей сети репликации.

Возможно ли такое сделать без остановки текущего обмена данными и какие могут встретиться проблемы?
...
Рейтинг: 0 / 0
04.12.2006, 11:22
    #34174024
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание "суперконсолидированной" базы
Такое возможно.
У нас такая задача решалась двумя путями: перегрузкой данных из филиалов в центр(односторонний слив информации), созданием самописной репликации (т.к. встроенная по определенным причинам не годилась; двухсторонний обмен). Причем штатная реплкиация, если где-то была, оставалась жить дальше.
Чтобы не закидали тапками, скажу сразу, что в нашем случае ставились такие условия, при которых штатную репликацию применять нельзя. Условия такого плана: разные структуры таблиц и вообще схемы БД, необходимость в более гибкой настройке и перестройки реп.системы и т.д. и т.п.
...
Рейтинг: 0 / 0
04.12.2006, 18:29
    #34175784
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание "суперконсолидированной" базы
AndynВозможно ли такое сделать без остановки текущего обмена данными и какие могут встретиться проблемы?
Запросто.

1) Останавливаешь филиал
2) Выгружаешь из него все данные из реплицируемых таблиц. Что-то в духе:
Код: plaintext
1.
2.
for loop1 as crsr1 cursor for SELECT Table_Name FROM SYS.SYSARTICLES where Publication_Name='AAA' for read only
    execute immediate 'unload table ' || Table_Name || ' to ''c:\\' || Table_Name || '.dat'';';
end for
3) Создаешь в филиале консолидированного юзера, подписываешь его и стартуешь репликацию:
Код: plaintext
1.
2.
grant consolidate to ConsDB type FTP address 'ConsDB';
create subsciption to AAA for ConsDB;
start subscription to AAA for ConsDB;
4) Запускаешь филиал работать, но пока не стартуешь там dbremote!
5) Забираешь все *.dat из филиала в центр, загружаешь их в консолидированую базу.
6) Создаешь в консолидированой удаленного юзера для филиала.
Код: plaintext
1.
2.
grant remote to NewSite type FTP address 'NewSite';
create subsciption to AAA for NewSite;
start subscription to AAA for NewSite;
Сразу после этого dbremote в центре (которая не останавливалась) сможет принимать сообщения из филиала.
7) Запускаешь dbremote в филиале.
И все.

Условия подписки добавь по вкусу, и проследи за сохранностью внешних ключей когда заливаешь начальные данные филиала в консолидированную базу.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Создание "суперконсолидированной" базы / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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