powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Возможно ли такое. репликация.
18 сообщений из 18, страница 1 из 1
Возможно ли такое. репликация.
    #32249031
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
У меня вопрос.
Возможно ли настроить автоматическую репликацию через модем (желательно через TCP/IP, но можно и без него) для двух anywhere (8.0) по расписанию.
Т.е. заполняется база пользователями на одной стороне, а каждые n часов БЕЗ ИХ вмешательства модем сам поднимает трубку дозванивается, происходит репликация, затем дисконнект.

P.S. Lotus notes это умеет.

Спасибо.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32249227
chagoserg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно осуществлять репликацию через SMTP, MAPI, FTP или непосредственно через файлы
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32249392
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 -Timka-

Да.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32249394
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 c127;
если не трудно, пожалуйста, объясните, как этого достичь...
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32250760
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача состоит из двух частей: репликация и разговор между машинами для передачи данных. ASA занимается только репликицией, как машины разговаривают между собой его не волнует.
Часть 1. Репликация настраивается в базе данных и выполняется утилитой dbremote. Если репликация уже настроена, то единственное что осталось сделать это заставить dbremote отрабатывать раз в n часов. Есть несколько способов.
1) запускать dbremote периодически стедствами OS;
2) запустить dbremote как демон (ключ -ud в UNIX, в винде тоже вроде есть аналог, я не помню) и сказать ему отабатывать каждые n часов;
3) настроить event в БД и из него запускать dbremote;

Возможно методы 2 и 3 это одно и то же. Я использовал только метод 1, все работает, это по-моему это самый простой способ.

Часть 2. Можно настроить почтовый клиент, например UUPC в NT, можно написать свю звонилку, это не очень сложно. Если репликация настроена как SMTP, то почтовый клиент автоматичеси заберет/примет реплицируемые данные. Наверное это самый простой способ. Если репликация настроена через файлы (shared file link), то нужно делать дополнительные усилия, чтоб они ушли/пришли и легли в нужное место. По-моему тут тоже можно обойтись средствами NT (в UNIX точно можно), например через через отшареные директории, без написания дополнительных программ. Есть третий вид репликации - через лотусовский протокол (VIM). Если лотус у вас насторен и работает, то это возможно лучшее решение, но я им никогда не пользовался, ничего не могу сказать. Вот выдержка из хелпа:
Just as session-based client/server applications rely on network communication protocol stacks, such as TCP/IP or Novell NetWare's SPX, so message-based applications rely on message services such as Internet Simple Mail Transfer Protocol (SMTP), Microsoft's Messaging API (MAPI), Lotus' Vendor Independent Messaging (VIM), or a simple shared file link.

В любом случае нужно смотреть командную строчку dbremote и настройку репликаций в базе.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32252003
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32256463
Aleksey Kh.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, возможно.

Если базы под разными серваками и не в одной локалке - самое простое - через SMTP (e-mail).
Приблизительная схема (если базы одинаковые или одна часть другой (структуры одинаковы))
1. Создаешь пользователя и делаешь его "Publisher", заполняешь "Message Type"
2. В базе создаешь пользователя и делаешь его "Remote User" (указываешь SMTP и его e-mail)
3. Создаешь "Publication" (правила пересылки данных)
4. Подписываешь пользователя на публикации ("Subscriptions")
5. Выгружаешь базу ("extract")
6. Настраиваешь "dbremote"

усе.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32258650
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОГРОМНОЕ СПАСИБО ВСЕМ...)))))
уже что-то заработало. Использую для синхронизации VIM.
у меня остался один вопрос.
если несколько баз крутится на сервере, то как я понял используется несколько портов. как мне указать dbremote, что порт другой?

-c "uid=DBA;pwd=SQL;dbn=db2" - это пример моей строки...
какмне указать что порт, например 30000?
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32259256
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточни вопрос. Какой именно порт, зачем он тебе нужен? База имеет имя и dbremote получает к ней доступ по имени сервера и имени базы, порты его на данном этапе не интересуют:
-c "eng=myserver;dbn=field;uid=sa;pwd=sysadmin"

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

Возможно порты требуются позже при конфигурации VIM, но я с ним не работал, не могу помочь.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32259364
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем, не бейте меня ногами )))
Просто я запустил как бы 2 engine - два сервиса (в каждом по одной базе), соответственно образовалось 2 порта, причем первый 2638 (стандарт), а второй 41ххх, ну так вот.... поменять номер порта у сервера можно
-x TCP(port=xxxx)
А вот dbremote к серверу, у которого порт не 2638, не коннектится... ну вот я и подумал, что нужно dbremote указать номер порта. На текущий момент у меня нет проблем, так как я эту глупость с двумя сервисами убрал, но вопрос как бы остался... - т.е. как указать dbremote тот сервис (тот сервер с базой), который нуна обрабатывать.

P.S. кривоватость рук не сбрасывать со счетов ))))
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32259472
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
))) Все работает )))
остался последний момент...
Данные синхронизируются в обе стороны с задержкой в n минут...
НО если на обоих машинах создаются строки с одинаковым первичным ключом в этот промежуток времени, то строки не обмениваются между собой... Это конфликт? придется использовать глобальные идентификаторы? т.е. например создались строки на обоих БД c полем id = 5. Значения остальных полей так и остаются не изменными.
Я бы просто хотел узнать как обычно следует поступать в таких случаях...
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32259861
andy753
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, можно использовать GUID, можно свои создавать, можно составные ключи... вариантов масса... выбирай, какой нравиться. ASA заботу об ID оставляет за разработчиком. Кстати, совет: лучше не используй Increment, если собираешься потом работать с ASE (или другим старшим братом) для центрального хранилища - сам генери ID в таком случае.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32260218
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Траблы начались... )))
dbremote пашет, только почему-то только при старте СЕРВИСА DBREMOTE пересылаются обновления....позже сообщения накапливаются в ящике и не применяются пока не рестартишь сервис dbremote. Хотя сервис живой - прогрессбар двигается.
После рестарта сообщения из ящика пропадают, т.е. "применяются".
Но это не то...
Может я какой ключик забыл поставить...
вот строчки:
-c "dbn=db1;uid=dba;pwd=sql" -rd 3s
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32260575
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 -Timka-
>Данные синхронизируются в обе стороны с задержкой в n минут...
НО если на обоих машинах создаются строки с одинаковым первичным ключом в этот промежуток времени, то строки не обмениваются между собой... Это конфликт?

Все правильно, это конфликт, в документации он рассмотрен. Стандартный способ решения - использование global autoincrement, ему можно так указать промежуток ключей в каждой БД, что они не будут дублироваться.

А как тебе удалось дбремотом присоединиться к енжину, он вробе бы работает только с сервером? Запусти один сервер на 2 БД и проблемы с портами должны решиться.

Запускай dbremote как scheduled task, все будет работать.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32261007
-Timka-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-- Запускай dbremote как scheduled task, все будет работать.

Это у меня такие проблемы?
Просто хотелось бы чтоб работало как сервис...
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32261748
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сервис не запускал, ничем не могу помочь.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32261822
Aleksey Kh.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Конфликты: у тебя "ремутный" лог ведется? если не ведется - настрой, что бы велся - там хорошо видно, что применяется, а что нет.

2. -rd - это какой-то ключ про задержку, факт. Ща поставлю ASA, посмотрю, что он значит.
...
Рейтинг: 0 / 0
Возможно ли такое. репликация.
    #32264319
Aleksey Kh.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-rd minutes Polling frequency for incoming messages
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Возможно ли такое. репликация.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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