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

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

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

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

Вход

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


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

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

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

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

Вопросы
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
Материал прочитан: 11042 раз(а)
[ Назад ]



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

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