Форум FAQ О команде
Поиск по сайту:
 
Sybase
Sybase ASA  
Sybase ASE  
Sybase IQ  
Sybase PowerDesigner  
Sybase PowerBuilder  

Продукты
Наши продукты  
Продукты партнеров портала  

Сообщества
Alef community  

Меню
Регистрация  
Почта  

Вход

Рассылка
Рассылка 'РСУБД Sybase ASA 9 - мощность, легкость и надежность'
Почтовая рассылка
"Технологии обработки данных компании Sybase"


Статистика
Яндекс цитирования

Rambler's Top100
Находится в каталоге Апорт

Главная -> Статьи
Первые вопросы

Первые вопросы

Вопросы
1. В чем разница между SQL Remote и DBRemote?
2. Можно ли настроить репликацию без dbxtract?
3. А что случится если во время сеанса репликации произойдет обрыв связи?
4. Настраиваю репликацию по FTP, в документации предлагается записать пароль доступа к FTP в регистри, это же кто угодно может прочитать?!

Ответы

1. В чем разница между SQL Remote и DBRemote?

Читая сообщения в различных конференциях посвященным репликации в Sybase базах, часто можно встретить упоминания об SQL Remote и DBRemote. Возникает вопрос, а почему два названия для вроде бы одного и того же? SQL Remote это название технологии репликации при помощи сообщений. А DBRemote это название программы реализующей эту технологию (dbremote.exe).

2. Можно ли настроить репликацию без dbxtract?

Да, можно. На самом деле, в реальной жизни dbxtract даже не рекомендуется. Дело в том, что dbxtract создает удаленную базу на основе списка таблиц перечисленных в публикации. А если в удаленную базу надо отдать еще и набор таблиц справочников? А если удаленная база будет участвовать в нескольких подписках одновременно? Так что лучше всего делать удаленную базу на основе ручного создания. Достаточно проследить за тем, чтобы структура таблиц участвующих в репликации совпадала между двумя базами. А когда ‘пустая’ удаленная база готова запускаем собственно репликацию.
Дальнейшие примеры предполагают что у вас уже существует работающая репликация с несколькими базами, а сейчас мы вручную создаем еще одну удаленную базу. Практически все эти команды делает dbxtract.
a) Сначала на консолидированной базе создаем виртуального пользователя который будет ‘отвечать' за всю работу с удаленной базой. Этому пользователю, кстати, не обязательно иметь возможность подключаться к консолидированной базе напрямую.
grant connect to SiteA;

b) Даем только что созданному пользователю аттрибут ‘удаленный пользователь’ и говорим что все общение с ним будет идти по протоколу FTP, а файлы с сообщениями для него надо будет класть в каталог ‘SiteA’.
grant remote to SiteA type FTP address ‘SiteA’;

c) И наконец подписываем этого пользователя на публикацию. Одновременно указывая что отправлять ему надо будет не все содержимое таблиц, а только часть
start subscription to OrdersPublication(‘SiteA’) to SiteA;

Консолидированная база готова. Далее работаем с удаленной базой:
a) Создаем пользователя ‘владельца’ базы
grant connect to SiteA;

b) Объявляем его владельцем
grant publish to SiteA;

c) Создаем пользователя, владельца консолидированной базы и даем ему соответсвующие права
grant connect to HQ;
grant consolidate to HQ type FTP address ‘HQ’;

d) Теперь осталось только подписать пользователя HQ на публикацию:
start subscription to OrdersPublication(‘SiteA’) to HQ;


3. А что случится если во время сеанса репликации произойдет обрыв связи?

Ничего страшного, не произойдет. dbremote при закачке сообщения пишет его сначала во временный файл с именем ".RemoteUserId" по окончании закачки этот файл переименовывается по шаблону "RemoteUserId.MessageNumber". Соотвественно если произошел сбой связи, то не досланное сообщение пойдет снова и затрет следы от предыдущей неудачной посылки.

4. Настраиваю репликацию по FTP, в документации предлагается записать пароль доступа к FTP в регистри, это же кто угодно может прочитать?!

dbremote читатет реестр только один раз - если оно не нашло настроек подключения к ftp в базе. Если же не найдено настроек ни в базе, ни в реестре - dbremote откроет диалоговое окно в котором можно будет указать все нужные настройки. Последующее изменение этих настроек надо будет делать уже через dbisql командами типа:
set remote FTP option host = 'ftp.my_new_ftp.com';
set remote FTP option password = 'MySuperPassword';

Маленькое резюме - в реестр лазить не нужно! Не смотря на то что написано в документации :)
Обратите внимание, что в самой базе этот пароль хранится в открытом виде, его можно посмотреть через:
select * from SYS.SYSREMOTEOPTIONS;



Дата публикации: Monday 27 March 2006 19:34:54
Материал прочитан: 11701 раз(а)
[ Назад ]



Продвижение сайтов
Биржа ссылок

Copyright©2005 phpMS. Все права защищены.
hosted on pets-tree