记录一次Sqlserver数据库订阅与发布过程中的报错解决过
记录一次sqlserver订阅与发布过程中的报错及解决过程
报错:
20598报错
20598报错主要还是由于两端数据库数据不一致导致,数据库在应用存储过程时产生了报错提示
应用复制的命令时在订阅服务器上找不到该行
错误消息
尝试的命令:公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出西峡免费做网站回馈大家。
if @@trancount > 0 rollback tran
事务序列号:
--0x0000FDAB0003A908008F00000000 命令 ID: 7
错误消息:
应用复制的命令时在订阅服务器上找不到该行。 (源: MSSQLServer,错误号: 20598)
获取帮助: http://help/20598
应用复制的命令时在订阅服务器上找不到该行。 (源: MSSQLServer,错误号: 20598)
获取帮助: http://help/20598
在发布数据库上执行以下语句查看错误事务的id
use distribution
go
exec sp_helpsubscriptionerrors 'SSDTCEMANTEST','ssdt','skl_11_8','ANCHNET','ssdt';
use distribution
go
select * from
dbo.MSarticles m
where exists (select mc.article_id from MSrepl_commands mc where mc.xact_seqno=0x00011F4000009D42006B00000000 AND mc.article_id = m.article_id )
EXEC Sp_browsereplcmds
@xact_seqno_start='0x00011F4000009D42006B00000000',
@xact_seqno_end='0x00011F4000009D42006B00000000'
根据实际情况判断,要恢复数据还是跳过卡住的事务ID
---------------跳过订阅机器上面的错误------------------------
-----------------------在分发机器上--------------------------
--语法
exec sp_helpsubscriptionerrors [ @publisher = ]'publisher'
, [ @publisher_db = ]'publisher_db'
, [ @publication = ]'publication'
, [ @subscriber = ]'subscriber'
, [ @subscriber_db = ]'subscriber_db'
--get publisher subscriber
select*from MSsubscriber_info
--get publisher_db publication subscriber_db=publisher_db
select*from MSpublications
--example
exec sp_helpsubscriptionerrors 'SQLw2k8','dbtranpub','dbtranpub_pub','SQLw2k8Subscriber','dbtransub'
--获取xact_seqno 值
----------------------在订阅机器上---------------------------
sp_setsubscriptionxactseqno [ @publisher= ]'publisher',
[ @publisher_db= ]'publisher_db',
[ @publication= ]'publication',
[ @xact_seqno= ] xact_seqno
--example(忽略)
exec sp_helpsubscriptionerrors 'SQLw2k8','dbtranpub','dbtranpub_pub',xact_seqno;
网站标题:记录一次Sqlserver数据库订阅与发布过程中的报错解决过
文章源于:http://cdiso.cn/article/jpjscg.html