Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Репликация. Слегка разошлась / 25 сообщений из 25, страница 1 из 1
16.06.2004, 12:42
    #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
16.06.2004, 13:40
    #32563505
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация. Слегка разошлась
ВАЙ ... ВАЙ ... ВАЙ не есть карашо с ехней стороны ...

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

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


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

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

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

...
Рейтинг: 0 / 0
16.06.2004, 18:30
    #32564358
repl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация. Слегка разошлась
дык уже давно есть 9.0.1.1862, что ж вы на голеньком 9.0.0.1108 работаете
...
Рейтинг: 0 / 0
17.06.2004, 08:01
    #32564648
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация. Слегка разошлась
побаиваюсь
...
Рейтинг: 0 / 0
17.06.2004, 10:40
    #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
18.06.2004, 13:08
    #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
18.06.2004, 14:04
    #32567334
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация. Слегка разошлась
Вряд ли "перепослать" получится. Смотрите сами: ремотная база 2-х дневной давности считает, что должна отправлять данные со смещения, допустим, 100.
В это же время конс. база имеет подтверждения получения данных от этой ремотной со смещения, допустим, 120.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...
Рейтинг: 0 / 0
19.06.2004, 10:43
    #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
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Репликация. Слегка разошлась / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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