powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Восстановить репликацию
16 сообщений из 16, страница 1 из 1
Восстановить репликацию
    #36097961
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть основная база - osago, есть удаленная база - osago_consolidate (пусть название вас не смущает, она именно является удаленной базой). Между ними настроена односторонная репликация от osago к osago_consolidate. Произошел сбой в репликации по причине:
Missing transaction log(s) before file "D:\osago\base\090706AA.LOG" (starting at offset 049851659780).
Действительно логов за несколько дней уже физически нет. Скажите, есть надежда как-то восстановить репликацию между этими базами, кроме как сделать заново выгрузку из основной базы? Синхронизацию делать нельзя, т.к. в osago_consolidate есть записи, которых нет (и не должно быть) в osago.

ASA 8.0.2.4424
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36098854
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самому с репликацией работать не доводилось.
Не Ваш случай?

Есть записи в таблицах, которые(таблицы) есть в osago или есть таблицы которых нет в osago ?:)
Если второй вариант то можно было бы, на крайний случай, вылить таблицы, залить дамп, залить таблицы.

P.S. Чета сегодня день погубленной репликации.
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36098902
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLMantisP.S. Чета сегодня день погубленной репликации.

это два админа одной системы с разных сторон
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36098928
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,
я конечно догадался, но теплилась надежда :)
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36099455
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLMantisСамому с репликацией работать не доводилось.
Не Ваш случай?
да, похоже на мой.
В общих чертах, нужно определить минимальный log_sent удаленных юзеров, найти лог с минимальным смещением, опредлить, что они отличаются. Но не поняла фразы, о том, что делать дальше:

Код: plaintext
1.
Revoking remote from all users with a log_sent that is less than the SQL Remote truncation point, 
SQLMantisЕсть записи в таблицах, которые(таблицы) есть в osago или есть таблицы которых нет в osago ?:)
есть записи в таблицах, которых (записей) нет в osago:)
SQLMantisЕсли второй вариант то можно было бы, на крайний случай, вылить таблицы, залить дамп, залить таблицы.
крайний случай уже реализовала. Но надо восстановить репликацию.
Как я поняла из статьи, можно залить "вручную" данные из основной базы в удаленную, после этого сбросить контрольные REMOTE RESET?

SQLMantisP.S. Чета сегодня день погубленной репликации.
да, я заметила
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36099458
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komradSQLMantisP.S. Чета сегодня день погубленной репликации.

это два админа одной системы с разных сторон

очень смешно;) Я его даже не знаю. И админ у своих баз я одна со всех сторон;)
и если вы внимательно прочитали, у него другие симптомы)
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36099491
AntonXZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lily V.
Как я поняла из статьи, можно залить "вручную" данные из основной базы в удаленную, после этого сбросить контрольные REMOTE RESET?

Да.
Но нужно сделать аккуратно:
1) Остановить sql-remote на обоих сторонах
2) Удалить оставшиеся remote-message на обоих сторонах (если это SMTP - почистить ящик, FTP или file system - соответствующие директории)
3) выполнить REMOTE RESET на обоих сторонах
4) запустить sql-remote
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36099502
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonXZ,
понятно, спасибо
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36099816
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
остановила подписку, выполнила remote reset для пользователя, стартанула подписку, но при отправке реплик снова ругается на отсуствующий файл лога (ошибка сохранилась). Видимо, еще что-то надо сделать
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36099936
AntonXZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lily V.остановила подписку, выполнила remote reset для пользователя, стартанула подписку, но при отправке реплик снова ругается на отсуствующий файл лога (ошибка сохранилась). Видимо, еще что-то надо сделать

1) Попробуй убрать старые логи.
2) Если не поможет, то после убирания старых логов сделай повторно REMOTE RESET
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36100016
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не помогло.
удалила логи, запускаю скрипт:
Код: plaintext
1.
2.
3.
4.
stop subscription to hq_user.agent_pub2 for cons_rep;
REMOTE RESET cons_rep;
start subscription to hq_user.agent_pub2 for cons_rep;
commit
Получаю сообщения:
I. 07/21 11:40:37. Scanning logs starting at offset 049851659653
I. 07/21 11:40:37. Processing transaction logs from directory "d:\Bases\osago\osago\"
E. 07/21 11:40:37. No off-line transaction log file found and on-line transaction log starts at offset 050955494699.
I. 07/21 11:40:37. We are looking for a transaction log file starting at offset 049851659653.
I. 07/21 11:40:38. Execution completed

Сообщение dbtran базиного лога:
--CHECKPOINT-0000-050955498820-2009/jul/19 02:03

т.е. налицо различие checkpoint-ов
Что-то делаю не так?
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36100297
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V.,

Проблема в том, что кто-то удалил кусок вашего лога, который не успел обработать dbremote.
Можно попытаться следующее, но это связано с потерей в репликации данных, которые были занесены в базу и должны быть реплицированы, но в связи с потерей логи про них dbremote ничего не узнает.
Запоминаем точку смещения в логе, начиная с которой идет ругань, останавливаем dbremote, делаем backup с обрезанием лога, останавливаем сервер, убираем имеющийся лог, а затем запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения...
Есть еше системная процедура, которая позволяет изменять многие параметры репликации, в том числе и смещение, с которого начинает работать dbremote: call SYS.sa_setremoteuser(). Поищите в инете... Через нее можно установить нужное вам смещение...
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36100709
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey OrlovLily V.,
...скип...
запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения...

глупый вопрос: в <смещение> что указывать? CHECKPOINT в последнем логе или то, что возвращает Select min(log_sent) from SYS.sysremoteusers?
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36101354
AntonXZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lily V.,

Lily V.не помогло.
удалила логи, запускаю скрипт:
Код: plaintext
1.
2.
3.
4.
stop subscription to hq_user.agent_pub2 for cons_rep;
REMOTE RESET cons_rep;
start subscription to hq_user.agent_pub2 for cons_rep;
commit


1) Если у тебя отключен autocommit, то COMMIT нужно сразу после REMOTE RESET !
2) Нет нужды (а может это вред?) делать stop subscription

Попробуй такой сценарий:
1) start subscription to hq_user.agent_pub2 for cons_rep;
2) REMOTE RESET cons_rep (проверь нет ли других remote-пользователей, если есть для них нужно сделать тоже самое);
Из доки: "This statement starts all subscriptions for a remote user in a single transaction. It sets the log_sent and confirm_sent values in ISYSREMOTEUSER table to the current position in the transaction log. It also sets the created and started values in ISYSSUBSCRIPTION to the current position in the transaction log for all subscriptions for this remote user. The statement does not do a commit. You must do an explicit commit after this call."
См. еще http://groups.google.com/group/sybase.public.sqlanywhere.replication/browse_thread/thread/6e592dd9d04f7ace/0474d2fab93d5c43?lnk=gst&q=REMOTE+RESET#0474d2fab93d5c43

там проблема была решена именно эксплисит COMMITом.
3) COMMIT;
4) run dbremote

Удачи
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36101860
Lily V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonXZ,
Спасибо! кажется, помогло. помимо твоего совета предварительно остановила все подписки у всех удаленных пользователей, потом выполнила reset с явным коммитом
...
Рейтинг: 0 / 0
Восстановить репликацию
    #36102759
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lily V.Sergey OrlovLily V.,
...скип...
запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения...

глупый вопрос: в <смещение> что указывать? CHECKPOINT в последнем логе или то, что возвращает Select min(log_sent) from SYS.sysremoteusers?
При чем здесь checkpoint, у вас не обработан лог между 049851659653 и 050955494699, вот с 049851659653 и надо начать было...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Восстановить репликацию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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