powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / практич. вопрос по реплике
3 сообщений из 3, страница 1 из 1
практич. вопрос по реплике
    #34694294
rplc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два вопроса по репликации (юзаю ASA 8.0):

1.
Итак. Создаю тестовую базу.
Теперь делаю Extract Database в Sybase Central с автоматической генерацией базы. В ней удаляем из SQL Remote\Publication публикацю (для того чтобы база не посылала данные обратно, чтобы вообще ничего ничего не посылала).
Вставляем данные на консолидированной, запускаем dbremote -c "dbn=?;uid=dba;pwd=?"
Запускаем dbremote -c .... для удаленной и получаем, что он пытается создавать файлы в папке с:\1\rep_data_00\rep_data_01.xxx.
Почему он это делает? Ведь вроде ж удалили публикацию.

-- скриты для теста, только нужно проверить ПАПКИ
CREATE TABLE fuel (
fuel_id integer NOT NULL,
fuel_name varchar(20) NULL
)
go
ALTER TABLE fuel ADD CONSTRAINT fuel_pk PRIMARY KEY (fuel_id)
go

-- настройка
CREATE REMOTE MESSAGE type file address 'c:\1\rep_data_00'
go
grant connect to usr_00 identified by pwd
go
grant publish to usr_00
go
select current publisher
go
grant connect to usr_01 identified by pwd
go
grant remote to usr_01 type file address 'c:\1\rep_data_01'
go
grant connect to usr_02 identified by pwd
go
grant remote to usr_02 type file address 'c:\1\rep_data_02'
go
create publication PublicateDicts(
table fuel
)
go
create subscription to PublicateDicts for usr_01
go
create subscription to PublicateDicts for usr_02
go
START SUBSCRIPTION TO DBA.PublicateDicts FOR usr_01
go
START SUBSCRIPTION TO DBA.PublicateDicts FOR usr_02
go

=========================================================================

2. Если пытаться создавать удаленную базу вручную ( и также создавать консолидир.), то принятие данных вообще не работает. можно ли объяснить почему?

GRANT CONNECT TO "usr_00" IDENTIFIED BY 'pwd'
go
GRANT CONNECT TO "usr_01" IDENTIFIED BY 'pwd'
go
commit work
go
CREATE REMOTE TYPE "FILE" ADDRESS 'c:\1\rep_data_01'
go
GRANT PUBLISH TO "usr_01"
go
GRANT CONSOLIDATE TO "usr_00" TYPE "FILE" ADDRESS 'c:\1\rep_data_00'
go
commit work
go


Огромное спасибо.

зы. второй вопрос конечно предпочтительней.
ззы. доки читал, но послать можно и вероятно нужно (надеюсь, что когда пути резал не ошибся)
...
Рейтинг: 0 / 0
практич. вопрос по реплике
    #34694361
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rplcТеперь делаю Extract Database в Sybase Central с автоматической генерацией базы. В ней удаляем из SQL Remote\Publication публикацю (для того чтобы база не посылала данные обратно, чтобы вообще ничего ничего не посылала).Не стоит. Чтобы сделать однонаправленную репликацю можно пойти двумя путями: Первый запускать dbremote с ключами -a, -r и -s (не принимать измения, только принимать и ничего не отправлять, или только отправлять). Второй, остановить подписку, дать команду stop subsription to ... либо из Централа, тыкаешься в подписку и там в диалоге будет кнопка соответвующая. Мне больше нравится второй подход - он позволяет при необходимости включить двустороннюю репликацию, сделать изменения в обычно только принимающей базе, отправить изменения и выключить двусторонюю репликацию опять.

rplcВставляем данные на консолидированной, запускаем dbremote -c "dbn=?;uid=dba;pwd=?"
Запускаем dbremote -c .... для удаленной и получаем, что он пытается создавать файлы в папке с:\1\rep_data_00\rep_data_01.xxx.
Почему он это делает? Ведь вроде ж удалили публикацию.Кроме собственно реплицирующих пакетов принимающая сторона всегда (если не запрещено соотвествющим ключом при старте dbremote) будет отправлять обратно подтверждение что мол получены изменения между таким-то и таким-то чекпоинтами. Или пропущены изменения между чекпоинтами пошлите мне их опять.

rplc2. Если пытаться создавать удаленную базу вручную ( и также создавать консолидир.), то принятие данных вообще не работает. можно ли объяснить почему?Объястнить то можно, но нужно смотреть на оба скрипта, на обоих сторонах. Вообще-то, я когда-то много лет тому назад пытался писать краткий faq на эту тему он даже где-то здесь лежит... Но если суммировать то получается так - если ты считаешь что в данный момент данные в базах синхронизированы (любым способом) то в данный момент можно стартовать репликацию при помощи этих скриптов:
Для консолидированой выполняешь ОДИН раз:
Код: plaintext
1.
2.
grant connect to Cons;
grant remote dba to Cons;
grant publish to Cons;
Для каждого нового удаленного сайта выполняешь на консолидированой:
Код: plaintext
1.
2.
3.
4.
grant connect to Site1;
grant remote dba to Site1;
grant remote to Site1 type FILE address 'Site1' send every '01:00';
create subscription to DBA.MyPublication('Site1') for Site1;
start subscription to DBA.MyPublication('Site1') for Site1;
А на каждой из удаленных баз делаешь:
Код: plaintext
1.
2.
3.
4.
5.
grant connect to Site1;
grant publish to Site1;
grant connect to Cons;
grant consolidate to Cons type FTP address 'Cons';
create subscription to DBA.MyPublication('Site1') for Cons;
start subscription to DBA.MyPublication('Site1') for Cons;
Подправь имена и адреса по вкусу. И если хочешь одностороннюю репликацию не делай start subscription на принимающей базе.
Обе базы должны иметь publisher юзера и хотя бы одна должна получить команды create subscription и start subscription.


rplcззы. доки читал, но послать можно и вероятно нужно (надеюсь, что когда пути резал не ошибся)Кстати о путях. Очень и очень не советую использовать абсолютные пути. Они будут работать на тестовой машине, но в реальной жизни будут бессмысленны - удаленная база никак не сможет получить доступ до C: машины на которой крутится консолидированая :)
Зато можно каждая из баз может использовать свой собственный протокол, как я показываю. Например консолидированая находится в одной LAN с собственным FTP сервером и использовать FILE протокол будет предпочтительнее - проще конфигруировать файрволы. А удаленые базы ходят к тому-же самому серверу по FTP...
...
Рейтинг: 0 / 0
практич. вопрос по реплике
    #34694426
rplc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за хороший ответ. фак поищу.

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


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