powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Репликация. Слегка разошлась
25 сообщений из 25, страница 1 из 1
Репликация. Слегка разошлась
    #32563326
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASA 9.0.0 build 1108
одна база консолидированная, две удаленные.
две удаленные одинаково не получили одни и те же данные, но дальше репликация продолжается
уже пошел за патчем (build 1312):

авторAny transactions applied with a connection, say X, may not be replicated
by SQL Remote in the next replication, if the message receiving thread (or
phase) of SQL Remote had received, applied, and committed all the incoming
messages on connection X and the online transaction log was renamed before
connection X was terminated. This has now been fixed.

Как бы теперь вопрос, кто как решает подобные проблемы?
З.Ы. Стоит ли переезжать на 9.0.1?

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32563505
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВАЙ ... ВАЙ ... ВАЙ не есть карашо с ехней стороны ...

Смотря какие изменения не передались.
Если INSERT ..., то надо в консолидированной эти данные удалить и снова вставить с теми же значениями. На удаленных удалаять будет нечего (ну ругнется там ремоут пару раз ...), зато новые вставятся.
Если UPDATE ... , то соответственно надо повторить эти изменения.

Другого выхода не вижу ...
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32563531
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПереВставлять не пойдет - слишком сложная логика.
Пока базы небольшие сделаю заново extract.
Просто такая вещь как передача данных из лога в мессаги должна работать сверхнадежно, а тут такое...
Вобщем разочарован...
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32563882
L0cat0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если лог не резался можно попробовать заново установить точку синхронизации для определенных юзверей ремоута,
мне помогло и выгружать начал заново (правда на 8)
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564008
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли лог не резался можно попробовать заново установить точку синхронизации для определенных юзверей ремоута,


Для этого нужно SYS таблицы править, надо под SYS логиниться. Locator, вы как-то писали, что вам это удалось. А как?
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564248
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий КотКак бы теперь вопрос, кто как решает подобные проблемы?
1) Я брал бекапы удаленных баз сделаные ДО возникновения проблемы, и собственно говоря все. :) Дальше оно автоматом все перепошлет заново.
2) Не уверен, но может помочь команда Synchronize отданная на одном из концов репликации (не на обоих!). Тогда та база на которой выдана эта команда начнет перепосылать все начиная с ПОДТВЕРЖДЕННЫХ точек репликации. Если авария произошла слишком давно и подтверждение о наложении репликационных сообщений было после ошибки - synchronize не сработает.

Рыжий КотЗ.Ы. Стоит ли переезжать на 9.0.1?
я переехал, не жалею.
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564283
L0cat0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае под SYS не обязательно
(т.к. этого можно достичь только создавая базу специфическим образом)
реально Вам должно помочь следующее
SYS.sa_setremoteuser !
и посмотрите еще SYS.sa_setsubscription
их можно запустить из под DBA
они делают необходимые апдейты

Удачи !
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564296
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем.
пока наложу ebf, и отныне буду держать backup удаленных баз возрастом до 2-х недель (а может и больше) :)

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564358
repl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дык уже давно есть 9.0.1.1862, что ж вы на голеньком 9.0.0.1108 работаете
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564648
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
побаиваюсь
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32564865
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To synchronize a subscription, a copy of the data in the publication at the consolidated database is sent to the remote database. The SYNCHRONIZE SUBSCRIPTION statement does this through the message system. It is recommended that where possible you use the database extraction utility instead to synchronize subscriptions without using a message system.

если подписка небольшая - поможет
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567118
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) Я брал бекапы удаленных баз сделаные ДО возникновения проблемы, и собственно говоря все. :) Дальше оно автоматом все перепошлет заново.

Я попробовал проиграть подобный сценарий.
Вытащил remote базу 2-дневной давности и заменил.
Запустил, теперь имею вот это:

Код: plaintext
1.
2.
I.  06 / 18   12 : 45 : 27 . Received message from "publisher_ge" ( 0 - 0731021238 - 0731023136 - 0 )
W.  06 / 18   12 : 45 : 27 . This message does not belong to me.
                   Log offset sent to user 'publisher_ge' is '0000652282', but the message header indicates user 'publisher_ge' has received log offset '0001713344'.

Это повторяется уже больше часа. И похоже дело никуда не двигается.
Если не трудно, проясните пожалуйста, что делать дальше?


dbremote сканирует раз в минуту, публикация высылает обновления также раз в минуту.
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567334
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вряд ли "перепослать" получится. Смотрите сами: ремотная база 2-х дневной давности считает, что должна отправлять данные со смещения, допустим, 100.
В это же время конс. база имеет подтверждения получения данных от этой ремотной со смещения, допустим, 120.

Таким образом, ремотная отправить данные со смещения 120 не может, ибо их в ней ЕЩЕ НЕТ. Конс. соответственно, будет ждать со смещения 120, а получать от ремотной со смещения 100, а они у нее уже есть=>она будет посылать пакеты "давай со 120, зараза! че ты всякое старье шлешь".

В общем, ничего не должно получиться
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567413
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 mustlive,
согласен, что интересно ответит White Owl на это.
Может тогда стоит изменить точку в консолидированной базе? Просто не знаю как это делается.

То есть глобальный вопрос стоит так: Как мне быстро восстановить систему в случае отказа винта на удаленной базе, например. Заново выгружать базу не хочется :(. Подразумевается что есть в наличии N-дневый backup базы.

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567509
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L0cat0r если лог не резался можно попробовать заново установить точку синхронизации для определенных юзверей ремоута,
мне помогло и выгружать начал заново (правда на 8)

Не подскажете как?

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567608
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное, что приходит на ум - накатить на бэкапные базы все логи, которые образовались после бэкапа (надеюсь, лог режешь, не ведешь один длинный - предлинный), причем на обоих сторонах, и попытаться засинхронизироваться через репликацию.

Я вот до сих пор не могу понять, для чего нужен SYNCHRONIZE SUBSCRIPTION
если он фактически не работает, т.е. не выполняет поставленной задачи засинхронизировать базы.
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567620
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть глобальный вопрос стоит так: Как мне быстро восстановить систему в случае отказа винта на удаленной базе, например.

Наверное, в этом случае поможет только "зеркалка". И резервный блок питания на сервере на всякий случай.
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567672
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕдинственное, что приходит на ум - накатить на бэкапные базы все логи, которые образовались после бэкапа (надеюсь, лог режешь, не ведешь один длинный - предлинный), причем на обоих сторонах, и попытаться засинхронизироваться через репликацию.

Это конечно вариант, но нет гарантий, что лог останется целым...
Все-таки вариант с точкой (offset) мне больше понравился.

Зеркало купили только на консолидированную, больше не дают.

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567799
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 mustlive

а с чего взяли что SYNCHRONIZE SUBSCRIPTION не выполняет поставленной задачи засинхронизировать базы?

эта команда удаляет все данные с удаленной базы и заливает наново с центральной.

полная сихронизация
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567958
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем корректно выразился. Хотел сказать, что если можно было бы всегда сделать синхронизацию двух баз, это было бы здорово.
А вариант, предлагаемый этой командой, мало применим на практике. Уж проще базу заново вылить :(
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32567987
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня просьба, не мог бы кто-нить из присутствующих показать пример с использованием.
SYS.sa_setremoteuser

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32568162
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий Кот2 mustlive,
согласен, что интересно ответит White Owl на это.
Может тогда стоит изменить точку в консолидированной базе? Просто не знаю как это делается.

Чего отвечу, чего отвечу... Я отвечу: А вот теперь и дай команду Synchronize на удаленной базе. Тогда она потребует от консолидированной убить все изменения сделанные между 100 и 120, и откатить до точки 100.
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32568164
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий Кот L0cat0r если лог не резался можно попробовать заново установить точку синхронизации для определенных юзверей ремоута,
мне помогло и выгружать начал заново (правда на 8)
Не подскажете как?

Первичная точка синхронизации устанавливается в момент выдачи коман:
grant connect to SomeUser;
grant remote .... to SomeUser;
Дальше объяснять? :) То есть если ты уверен что базы сейчас синхронизированы по данным (любым способом), то просто убиваешь удаленных юзеров на обоих концах. Создаешь их заново (точки синхронизации обнулены). Стартуешь подписку и с первого же сеанса точки синхронизации будут установленны в текущие значения лога. В промежутке можно даже логи поубивать!
...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32568343
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, спасибо за дельные советы :), буду пробовать

...
Рейтинг: 0 / 0
Репликация. Слегка разошлась
    #32568344
L0cat0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Рыжий Кот]У меня просьба, не мог бы кто-нить из присутствующих показать пример с использованием.
SYS.sa_setremoteuser

sa_setremoteuser правит данные в SYS.SYSREMOTEUSER
в которой хранятся точки смещения лога, от них отталкивается
ремоут для баз, задествованных в репликации (по remote user).
1. Выгрузить(переписать) содержимое этих таблиц обеих баз.
2. Создать посылку допустим от удаленной базы.
3. Запускаем принятие ее в консолидированной с логированием в файл.

смотрим на ошибку видим точку смещения, которую передает удаленная,
и которую требует консолидированная

знакомимся с структурой SYSREMOTEUSER - названия достаточно информативны и видим эти точки. Смотрим текст sa_setremoteuser,
определяемся, что и какими параметрами он апдейтит.

Для того, чтобы правильно определить точку смещения, которую можно использовать надо ретранслировать лог.
здесь самое главное то, что на этой точке д.б. COMMIT !
если точка в удаленной базе более поздняя - ищем в логе точку, которая хранится в консолидированной (более раннюю)
если на ней COMMIT -
то используя setremoteuser выставляем в удаленной значение консолидированной : при создании посылки он оттолкнется от нее и выгрузит по новой данные.
если не COMMIT - то придется искать ближайший commit, руками вносить(удалять) изменения / в логе это видно /
и править соответствующие точки уже в двух базах

на разборку со всем этим у меня ушло около часа и это сработало.

Не знаю, сколько бы сливал/синхронизировал 1G оперативки с 3G консолидированной .. а еще хранилище .

Удачи !
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Репликация. Слегка разошлась
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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