Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA. Исправление ошибок в репликации. / 8 сообщений из 8, страница 1 из 1
18.01.2006, 20:22
    #33490387
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
При получении некоторых изменений по репликации удаленная база не смогла их приложить из-за элементарных ляпов, типа нарушения ссылочной целостности с таблицей, не участвующей в репликации. Ошибка устранена, дальнейшие изменения проходят, но таблицы остались в несинхронизированном состоянии. Отличаются как раз на те самые ошибки.

Как это лучше всего исправить в удаленной базе (добавить нужные записи, удалить ненужные), ничего не меняя в консолидированной? Через PASSTHROUGH ONLY FOR userid со стороны консолидированной базы?
...
Рейтинг: 0 / 0
18.01.2006, 22:18
    #33490486
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
Самое простое, остановить репликацию, сделать изменения, стартовать репликацию опять.
На удаленой:
Код: plaintext
1.
2.
Stop subscription aaa for ConsolidatedUser;
..... insert/delete/update для удаленой
start subscription aaa for ConsolidatedUser;
И однвременно на консолидированной:
Код: plaintext
1.
2.
Stop subscription aaa for RemoteUser;
..... insert/delete/update для консолидированой
start subscription aaa for RemoteUser;
Единственная сложность - нужно быть увереным, что в это время никто ничего подлежащего репликации в базу не кинет :)
...
Рейтинг: 0 / 0
18.01.2006, 22:19
    #33490487
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
Александр ГoлдунЧерез PASSTHROUGH ONLY FOR userid со стороны консолидированной базы?

скорее всего да.

данные не вставились по причине ограничения внешнего ключа?
кстати, я заметил, что при выгрузке новой копии базы, ASA заменяет внешние ключи таким образом, чтобы они могли быть NULL, наверное как раз для случаев, когда подчиненные строки приехали, а главные нет
...
Рейтинг: 0 / 0
19.01.2006, 00:52
    #33490561
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
Рыжий Кот пишет:

> данные не вставились по причине ограничения внешнего ключа?

Да.

> кстати, я заметил, что при выгрузке новой копии базы, ASA заменяет
> внешние ключи таким образом, чтобы они могли быть NULL, наверное как раз
> для случаев, когда подчиненные строки приехали, а главные нет

Насколько мне известно, в ASA невозможно такое нарушение ссылочной
целостности между таблицами, участвующими в репликации, даже если они
объявлены в разных подписках для одного подписчика. У меня нарушился FK
на таблицу, которая не была в репликации - синхронизировалась другим путем.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
19.01.2006, 10:01
    #33490884
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
Александр Гoлдун

Насколько мне известно, в ASA невозможно такое нарушение ссылочной
целостности между таблицами, участвующими в репликации, даже если они
объявлены в разных подписках для одного подписчика.

к сожалению возможно :(
например у вас уникальный индекс, например на номер документа, и на обоих концах в пределах простоя репликации добавили по одному документу. Нумерация идет по возрастающей. Соответственно на одном из узлов (или даже наобоих) не придет нужный документ, а значит и подчиненные строки вылетят с сообщением в логе dbremote no primary key....
по этой причине я часто не создаю уникальные индексы для потенциально конфликтных таблиц
...
Рейтинг: 0 / 0
19.01.2006, 12:55
    #33491541
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
Рыжий Кот пишет:

> к сожалению возможно :(
> например у вас уникальный индекс, например на номер документа, и на

Нет, я имел в виду ситуацию с нарушением FK между двумя таблицами по
причине того, что нарушится последовательность например вставки. Если
обе таблицы участвую в репликации, пусть даже и в разных подписках, в
какой последовательности были изменения в одной базе, в такой же они и
приложатся в другой.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
19.01.2006, 13:05
    #33491584
Vinogradov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
Александр ГoлдунПри получении некоторых изменений по репликации удаленная база не смогла их приложить из-за элементарных ляпов, типа нарушения ссылочной целостности с таблицей, не участвующей в репликации. Ошибка устранена, дальнейшие изменения проходят, но таблицы остались в несинхронизированном состоянии. Отличаются как раз на те самые ошибки.

Как это лучше всего исправить в удаленной базе (добавить нужные записи, удалить ненужные), ничего не меняя в консолидированной? Через PASSTHROUGH ONLY FOR userid со стороны консолидированной базы?

Я в этой ситуации запрашиваю удаленную БД и через proxy ищу расхождения и добавляю данные. Или ручками из лога репликации вырезать и выполнять, но это муторная работа
...
Рейтинг: 0 / 0
19.01.2006, 17:43
    #33492620
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA. Исправление ошибок в репликации.
А вот такое (см. ниже) не спасет отца русской демократии ?

UPDATE table
PUBLICATION publication
{ SUBSCRIBE BY expression |
OLD SUBSCRIBE BY expression
NEW SUBSCRIBE BY expression }
WHERE search-condition

"PASSTHROUGH ONLY FOR userid" годится только для изменения структуры базы (ИМХО)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA. Исправление ошибок в репликации. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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