Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Восстановить репликацию / 16 сообщений из 16, страница 1 из 1
20.07.2009, 10:32
    #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
20.07.2009, 15:31
    #36098854
SQLMantis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановить репликацию
Самому с репликацией работать не доводилось.
Не Ваш случай?

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

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

это два админа одной системы с разных сторон
...
Рейтинг: 0 / 0
20.07.2009, 16:00
    #36098928
SQLMantis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановить репликацию
komrad,
я конечно догадался, но теплилась надежда :)
...
Рейтинг: 0 / 0
20.07.2009, 19:52
    #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
20.07.2009, 19:53
    #36099458
Lily V.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановить репликацию
komradSQLMantisP.S. Чета сегодня день погубленной репликации.

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

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

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

1) Попробуй убрать старые логи.
2) Если не поможет, то после убирания старых логов сделай повторно REMOTE RESET
...
Рейтинг: 0 / 0
21.07.2009, 10:00
    #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
21.07.2009, 11:39
    #36100297
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановить репликацию
Lily V.,

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

глупый вопрос: в <смещение> что указывать? CHECKPOINT в последнем логе или то, что возвращает Select min(log_sent) from SYS.sysremoteusers?
...
Рейтинг: 0 / 0
21.07.2009, 17:02
    #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
21.07.2009, 22:37
    #36101860
Lily V.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановить репликацию
AntonXZ,
Спасибо! кажется, помогло. помимо твоего совета предварительно остановила все подписки у всех удаленных пользователей, потом выполнила reset с явным коммитом
...
Рейтинг: 0 / 0
22.07.2009, 13:06
    #36102759
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановить репликацию
Lily V.Sergey OrlovLily V.,
...скип...
запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения...

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


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