Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
практич. вопрос по реплике
|
|||
|---|---|---|---|
|
#18+
Есть два вопроса по репликации (юзаю 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 Огромное спасибо. зы. второй вопрос конечно предпочтительней. ззы. доки читал, но послать можно и вероятно нужно (надеюсь, что когда пути резал не ошибся) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2007, 23:55 |
|
||
|
практич. вопрос по реплике
|
|||
|---|---|---|---|
|
#18+
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. Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. Обе базы должны иметь publisher юзера и хотя бы одна должна получить команды create subscription и start subscription. rplcззы. доки читал, но послать можно и вероятно нужно (надеюсь, что когда пути резал не ошибся)Кстати о путях. Очень и очень не советую использовать абсолютные пути. Они будут работать на тестовой машине, но в реальной жизни будут бессмысленны - удаленная база никак не сможет получить доступ до C: машины на которой крутится консолидированая :) Зато можно каждая из баз может использовать свой собственный протокол, как я показываю. Например консолидированая находится в одной LAN с собственным FTP сервером и использовать FILE протокол будет предпочтительнее - проще конфигруировать файрволы. А удаленые базы ходят к тому-же самому серверу по FTP... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2007, 01:33 |
|
||
|
|

start [/forum/topic.php?fid=55&tid=2011984]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 304ms |

| 0 / 0 |
