Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
aleksey_fomchenko
Member

Откуда: Москва
Сообщений: 1014
Доброй всем ночи.
Уменя случилась проблнма:
восстанавливал сервер издателя из бекапа, имею выделенного дистрибъютора,
после чего не присоединяется Log Reader агент.
Говорит, что какой то другой логридер уже читает жукнал, и отваливается.

Переразбирать репликацию ичень длительно.
Как заставить заново работать лог ридер агента?



The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.

Another log reader is replicating the database.
(Source: EXCITER2 (Data source); Error number: 18752)
---------------------------------------------------------------------------------------------------------------
The process could not set the last distributed transaction.
(Source: EXCITER2-CashOffice-4 (Agent); Error number: 22017)
---------------------------------------------------------------------------------------------------------------
31 май 05, 00:03    [1582845]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
aleksey_fomchenko
Member

Откуда: Москва
Сообщений: 1014
Пытаюсь удалить и добавить подписчиков в публикацию -
снапшот накатывается, а лог ридер не передает транзакции дистрибьюшен агенту!
Один из нескольких лог ридер агентов с горем пополам завелся (неизвестно как), он читает транзакции но дистриб.агент не передает их подписчику.
С чем тут может быть проблема???
Издатель восстанавливал рабочие базы.
Дистриб не трогали:

Может изменились номера баз данных?

Кто нить сталкивался с таким?

Как пофиксить баг, так как вот вот начну переразберать все , а репликация просто монстроидальная...

Жду любых ответов.
31 май 05, 10:24    [1583285]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Вот это не совсем ваше, но, может быть, наведет на мысли:
PRB: Repl Logreader Fails on Remote Distributor after Cluster Failover
Не обращайте внимание на слово "кластер", почитайте причину ошибки и способ ее решения. В принципе для удаленного дистрибьютора ситуация подмены паблишера другой нодой файловер кластера не сильно отличается от рестора паблишера из бэкапа. Может, у вас тоже "orphaned sessions" остались? В общем, посмотрите workaround, вдруг по теме окажется.
31 май 05, 10:47    [1583371]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
aleksey_fomchenko
Member

Откуда: Москва
Сообщений: 1014
Что то я не очень врубился в смысл статьи, которую вы предлагали...
Объясните, если можно.

Вот еще одна засада:
Создаю первую публикацию в какой либо базе данных (лог-ридер агента до этого небыло) и сразу же еще до подписания подписчика - лог-ридер начинает зачитывать постоянно, метадично по одной транзакции в 2-3 секунды. Транзакции видимо пустые, так как данные закладываютсмя только в MSrepl_transactions, в комманд не добавляются.
Оттрейсить практически невозможно, так как рабочая база данных.

Из-за чего такое может происходить.
Никак не могу отловить причину (вчера был Restore издателя).

Как это можно побороль?
Может удалить дисттрибъютора, предварительно удалив все внутри?
31 май 05, 15:02    [1584769]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
К сожалению, у меня нет серьезного опыта работы с транзакционной репликацией, поэтому посоветовать особо ничего не могу.

Разве что воспроизвести ситуацию в тестовой среде и оттрейсить там, что именно происходит.
31 май 05, 15:07    [1584788]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
andsm
Member

Откуда: Москва
Сообщений: 1319
Блог
Я получал похожее сообщение - "The process could not execute 'sp_repldone/sp_replcounters'". Но сообщения про another log reader не было. Лечилось это выполнением sp_repldone с опцией @reset=1. Делалось это конечно не на production, на тестовой БД.
31 май 05, 16:09    [1585136]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
aleksey_fomchenko
Member

Откуда: Москва
Сообщений: 1014
Ребята, еще информации пожалуйста.
Непонятно, почепу repldone не сбрасывает состояние LSN и агент лог ридер не заводится.
31 май 05, 16:27    [1585221]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Explanation
This error can be raised in a number of circumstances during transactional replication processing, such as when the Log Reader Agent executes sp_replcmds (The process could not execute 'sp_replcmds') or sp_repldone (The process could not execute 'sp_repldone').

User Action
If this error is raised in a database that you have just restored from backup, ensure you have followed the steps outlined in the backup and restore documentation, including executing sp_replrestart if appropriate. For more information, see Strategies for Backing Up and Restoring Snapshot and Transactional Replication.

This error is an internal processing error and if it is raised in circumstances other than a restore, it typically indicates that replication must be removed and reconfigured. For more information, see Removing Replication. If it is not possible to remove replication, contact customer support for assistance.
31 май 05, 20:21    [1586053]     Ответить | Цитировать Сообщить модератору
 Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Можно ещё попробовать провести анализ, что же мешает логридеру успешно выполнить sp_replcmds или sp_repldone/sp_replflush. Для этого почитайте про следующие системные процедуры:

  • sp_browsereplcmds
  • sp_replshowcmds
  • sp_repltrans
  • sp_replflush
  • DBCC OPENTRAN

    Не забывайте также про параметр агента -SkipError, который может помочь избавиться от не существенных проблем.

    Было бы здорово, увидеть здесь все сообщения хистори агента, с максимальным уровнем детализации ошибок, а также тот текст, который агент может сохранять в файл, журналируя совю работу.
    Ещё, рекомендуется устанавливать в единицу на время поиска проблем параметры:
    -ReadBatchSize
    -CommitBatchSize
  • 31 май 05, 20:48    [1586094]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    Александр Гладченко
    Member

    Откуда:
    Сообщений: 10752
    Блог
    Могут помочь вот эти статьи:

    http://www.informit.com/articles/article.asp?p=170748&f1=nl;44;2004-04-27&rl=1
    http://www.replicationanswers.com/Transactional.asp
    http://support.microsoft.com/kb/315642/EN-US/
    31 май 05, 21:33    [1586138]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    Я пробовал sp_replrestart, но так и не дождавшись конца, отменил.
    Непонятно - что именно она делает.

    Так как в BOL она не описана.
    1 июн 05, 15:08    [1588331]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    И во время того как она работала - полезла куча ошибок в лог паблишера по поводу номеров LSN...
    1 июн 05, 15:26    [1588412]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    Александр Гладченко
    Member

    Откуда:
    Сообщений: 10752
    Блог
    Used by transactional replication during backup and restore so that the replicated data at the Distributor is synchronized with data at the Publisher. This stored procedure is executed at the Publisher on the publication database.

    sp_replrestart

    Return Code Values

    0 (success) or 1 (failure)

    Remarks

    sp_replrestart is an internal replication stored procedure and should only be used when restoring a database published in a transactional replication topology.

    sp_replrestart is used when the highest LSN value at the Distributor does match the highest LSN value at the Publisher.

    Permissions

    Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_replrestart.
    1 июн 05, 18:45    [1589493]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    iuyuiiuyu
    Guest
    Execute sp_replrestart. This stored procedure can be used to force the Log Reader Agent to ignore all the previous replicated transactions in the publication database log. Transactions applied after the completion of the stored procedure will be processed by the Log Reader Agent. You can restart the Log Reader Agent after the stored procedure executes successfully.


    Important The sp_replrestart system stored procedure should be used only with log shipping. It can also be used under controlled circumstances if you need to restore the publication database are you are not using the sync with backup option. This option should be used only when the Log Reader fails to process replicated transactions in the publication database log and there are no other ways to resolve the problem.
    1 июн 05, 18:53    [1589525]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    Александр Гладченко
    Member

    Откуда:
    Сообщений: 10752
    Блог
    Кстати, после восстановления мог остаться мусор в системных таблицах базы MSDB:
    MSdistpublishers
    MSdistributiondbs
    1 июн 05, 19:21    [1589610]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    Удалил Паблишера со всеми публикациями и подписками,
    теперь другая проблема - не подписывается сервер, который раньше был подписан!
    Это сам же центральный сервер, который и является публикатором.

    [url=http://]Server: Msg 20032, Level 16, State 1, Procedure sp_changesubstatus, Line 959
    'EXCITER2' is not defined as a Subscriber for 'EXCITER2'.
    Server: Msg 14070, Level 16, State 1, Procedure sp_changesubstatus, Line 993
    Could not update the distribution database subscription table. The subscription status could not be changed.
    Server: Msg 14057, Level 16, State 1, Procedure sp_addsubscription, Line 971
    The subscription could not be created.[/url]

    Как корректно удалить подписчика?
    1 июн 05, 22:26    [1589830]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    После удаления всех публикаций с подписчиками (в мастере Enable none), не получается запово созданные публикации подписать на существовавших ранее подписчиков.
    На дистрибьюторе не оказалось этих подписчиков в таблицах MSsubscriber_info, и как говорят ошибки оттрецсеной процедуры:

    [url=http://] -- Check if subscriber exists
    if @subscriber is null
    begin
    select @subscriber_id = @virtual
    -- The following 2 variables are hardcoded in sp_MSget_repl_cmds_anonymous
    select @subscriber_db = 'virtual'
    select @subscription_type = 0
    end
    else
    select @subscriber_id = srvid from master..sysservers, MSsubscriber_info where
    UPPER(srvname) = UPPER(@subscriber) and
    UPPER(subscriber) = UPPER(@subscriber) and
    UPPER(publisher) = UPPER(@publisher)
    if @subscriber_id is NULL
    begin
    raiserror (20032, 16, -1, @subscriber, @publisher)
    return (1)
    end[/url]

    Ошибка 20032, возвращает null из двух связанных таблиц.
    Бобавление в описанную таблицу записи о подписчике не решает вопрос, откатил.


    Ошибка возвращаемая указана в предыдущем посте.
    Что побскажите делать?
    2 июн 05, 10:28    [1590490]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    Сейчас удаляю все публикации и transactions и merge.
    Заранее спрашиваю, если остануться зависшие подписчики, как их чистить:
    sp_subscription_cleanup? И нужно ли в них использовать параметры?
    Но все публикации удалены, и видимо надо запускать без параметров?

    У меня на паблишере остались отметки о подписчиках, а на дистрибъюторе нет.
    Из-за этого даже вновь созданную публикацию не получается подписать к старому подписчику. Вот.

    Замечю, что сервер сам начал откидывать подписчиков и публикации, когда репликация просто стояла (см. начало поста).
    2 июн 05, 11:47    [1590894]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    GreenSunrise
    Member

    Откуда:
    Сообщений: 12310
    Мож, все прибить до конца, раз уж публикации все грохнуты? Выполните Disable Publishing, чтобы вычистить все до конца.

    Если в базах остались какие-то ошметки, попробуйте
    sp_subscription_cleanup
    sp_removedbreplication

    Только внимательно почитайте про параметры и где должны выполняться указанные процедуры.
    2 июн 05, 11:48    [1590896]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    GreenSunrise
    Member

    Откуда:
    Сообщений: 12310
    Если у вас еще и merge есть, то еще вот это не забудьте - sp_mergesubscription_cleanup
    2 июн 05, 12:05    [1590985]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    Подскажи, может быть перед Disable Publishing выполнить команду sp_subscription_cleanup?
    Не хочеться отрубать паблишера.
    2 июн 05, 12:07    [1591003]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    sp_subscription_cleanup и Disable Publishing еще не делал но попробовал тестово создать публикацию и подписать подписчика, после чего, еще ничего не добавлял в таблицу, а лог-ридер зачитывает какие то транзакции:

    К сообщению приложен файл. Размер - 0Kb
    2 июн 05, 12:16    [1591051]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    GreenSunrise
    Member

    Откуда:
    Сообщений: 12310
    Чес-слово, не знаю, чем помочь. Транзакционная - не по моей части, близко сталкиваться не приходилось :-( Так что советы только общего плана...
    2 июн 05, 12:18    [1591063]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    В MSrepl_transactions транзакции какие то закладываются, а в MSrepl_commands нет!
    Как эту бадягу разрулить?
    Отключение паблищера и дистрибъютора спасут отца русской демократии?
    Или нет вообще!?
    2 июн 05, 12:18    [1591064]     Ответить | Цитировать Сообщить модератору
     Re: The process could not execute 'sp_repldone/sp_replcounters' on 'EXCITER2'.  [new]
    aleksey_fomchenko
    Member

    Откуда: Москва
    Сообщений: 1014
    Похоже в базах поднятых из Backup с опцией KEEP_REPLICATIONS (только что были удалены все публикации) все же что то пишут в лог и лог-ридер агент что то зачитывает:

    Transaction information for database 'Cash'.

    Replicated Transaction Information:
    Oldest distributed LSN : (279729:3609:14)
    Oldest non-distributed LSN : (0:0:0)
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.


    Как можно сбросить это состояние базы публикатора, так как проблема видимо в ней, дистрибъютора полностью дизейблел и паблишера тоже.
    2 июн 05, 13:05    [1591296]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
    Все форумы / Microsoft SQL Server Ответить