|
|
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Есть основная база - 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 10:32 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Самому с репликацией работать не доводилось. Не Ваш случай? Есть записи в таблицах, которые(таблицы) есть в osago или есть таблицы которых нет в osago ?:) Если второй вариант то можно было бы, на крайний случай, вылить таблицы, залить дамп, залить таблицы. P.S. Чета сегодня день погубленной репликации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:31 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
SQLMantisP.S. Чета сегодня день погубленной репликации. это два админа одной системы с разных сторон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:52 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
komrad, я конечно догадался, но теплилась надежда :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 16:00 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
SQLMantisСамому с репликацией работать не доводилось. Не Ваш случай? да, похоже на мой. В общих чертах, нужно определить минимальный log_sent удаленных юзеров, найти лог с минимальным смещением, опредлить, что они отличаются. Но не поняла фразы, о том, что делать дальше: Код: plaintext 1. есть записи в таблицах, которых (записей) нет в osago:) SQLMantisЕсли второй вариант то можно было бы, на крайний случай, вылить таблицы, залить дамп, залить таблицы. крайний случай уже реализовала. Но надо восстановить репликацию. Как я поняла из статьи, можно залить "вручную" данные из основной базы в удаленную, после этого сбросить контрольные REMOTE RESET? SQLMantisP.S. Чета сегодня день погубленной репликации. да, я заметила ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 19:52 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
komradSQLMantisP.S. Чета сегодня день погубленной репликации. это два админа одной системы с разных сторон очень смешно;) Я его даже не знаю. И админ у своих баз я одна со всех сторон;) и если вы внимательно прочитали, у него другие симптомы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 19:53 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Lily V. Как я поняла из статьи, можно залить "вручную" данные из основной базы в удаленную, после этого сбросить контрольные REMOTE RESET? Да. Но нужно сделать аккуратно: 1) Остановить sql-remote на обоих сторонах 2) Удалить оставшиеся remote-message на обоих сторонах (если это SMTP - почистить ящик, FTP или file system - соответствующие директории) 3) выполнить REMOTE RESET на обоих сторонах 4) запустить sql-remote ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 20:23 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
AntonXZ, понятно, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 20:29 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
остановила подписку, выполнила remote reset для пользователя, стартанула подписку, но при отправке реплик снова ругается на отсуствующий файл лога (ошибка сохранилась). Видимо, еще что-то надо сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 07:31 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Lily V.остановила подписку, выполнила remote reset для пользователя, стартанула подписку, но при отправке реплик снова ругается на отсуствующий файл лога (ошибка сохранилась). Видимо, еще что-то надо сделать 1) Попробуй убрать старые логи. 2) Если не поможет, то после убирания старых логов сделай повторно REMOTE RESET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 09:30 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
не помогло. удалила логи, запускаю скрипт: Код: plaintext 1. 2. 3. 4. 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-ов Что-то делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 10:00 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Lily V., Проблема в том, что кто-то удалил кусок вашего лога, который не успел обработать dbremote. Можно попытаться следующее, но это связано с потерей в репликации данных, которые были занесены в базу и должны быть реплицированы, но в связи с потерей логи про них dbremote ничего не узнает. Запоминаем точку смещения в логе, начиная с которой идет ругань, останавливаем dbremote, делаем backup с обрезанием лога, останавливаем сервер, убираем имеющийся лог, а затем запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения... Есть еше системная процедура, которая позволяет изменять многие параметры репликации, в том числе и смещение, с которого начинает работать dbremote: call SYS.sa_setremoteuser(). Поищите в инете... Через нее можно установить нужное вам смещение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 11:39 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovLily V., ...скип... запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения... глупый вопрос: в <смещение> что указывать? CHECKPOINT в последнем логе или то, что возвращает Select min(log_sent) from SYS.sysremoteusers? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 13:32 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Lily V., Lily V.не помогло. удалила логи, запускаю скрипт: Код: plaintext 1. 2. 3. 4. 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 Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 17:02 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
AntonXZ, Спасибо! кажется, помогло. помимо твоего совета предварительно остановила все подписки у всех удаленных пользователей, потом выполнила reset с явным коммитом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 22:37 |
|
||
|
Восстановить репликацию
|
|||
|---|---|---|---|
|
#18+
Lily V.Sergey OrlovLily V., ...скип... запускаем dblog -z<смещение> <имя базы>, создается новый лог, который начинается с нужного вам смещения... глупый вопрос: в <смещение> что указывать? CHECKPOINT в последнем логе или то, что возвращает Select min(log_sent) from SYS.sysremoteusers? При чем здесь checkpoint, у вас не обработан лог между 049851659653 и 050955494699, вот с 049851659653 и надо начать было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2009, 13:06 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36099816&tid=2010971]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 533ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...