【问题标题】:Issues with SQL Replication & sp_vupgrade_replication questionsSQL 复制问题和 sp_vupgrade_replication 问题
【发布时间】:2010-10-18 18:04:06
【问题描述】:

我有一个来自 SQL Server 2005 的数据库,我以编程方式将其附加到 SQL Server 2008 R2 的一个实例,然后在一些表上重新建立复制(通过一些已经工作了很短生命周期的预烘焙脚本)另一台服务器仍在运行 SQL Server 2005。

可以说这只是一个特别复杂的业务需求。

有趣的是,在特定 SQL Server 代理作业上复制失败,并出现错误“列名 'originator id' 无效”。从我可以从这个链接中了解到:http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/Q_24145417.html - 旧的数据库需要升级各种零碎的东西才能与 SQL Server 2008 R2 的复制一起正常工作。升级过程就像运行存储过程 sp_vupgrade_replication 一样简单:http://technet.microsoft.com/en-us/library/ms188741.aspx

问题 1:为什么有ANY关于复制到我附加的数据库中的信息?!我的理解是分发数据库包含整个复制信息。我已经删除并重新附加了一个未升级的数据库副本,以确保它仍然无法确保我不会发疯。

问题 2:我知道当您将数据库附加到较新版本的 SQL Server 时,会执行一些程序来将数据库升级到某个兼容性级别。为什么这个存储过程不运行?

问题 3:这个存储过程到底发生了什么变化?除了 MSDN 文章提供给我的信息之外,还有什么方法可以让我找到更多信息吗?我没有尝试过,但我很确定 SQL Profiler 只会告诉我它正在执行 sp_vupgrade_replication 而不会给我它正在运行的查询的任何详细信息。

【问题讨论】:

    标签: sql-server replication


    【解决方案1】:

    问题 1: Publisher 数据库有责任在其事务日志中标记要复制的事务。日志读取器代理然后监视发布者的事务日志,查找标记的事务,并将这些事务复制到分发数据库。有关更多详细信息,请参阅:sp_replcmdssp_repldone

    问题 2:我的猜测(这只是一个猜测)是,由于该过程同时升级系统和用户数据库,它不会在附加操作期间自动运行。

    问题3:您可以自己查看流程详情。

    use msdb
    go
    sp_helptext 'sys.sp_vupgrade_replication'
    go
    

    【讨论】:

    • 我不确定我是否理解您对问题 #1 的回答。 Publisher 数据库是指正在发布的数据库吗?还是与它分开的实际数据库实体?我的问题 #1 更像是一个设计问题 - 为什么是关于复制的特定于版本的信息导致了我的数据库的这个故障部分,而不是 msdb?它不像一个兼容级别,您可以在不同版本上运行多个数据库。你试图复制一个旧的数据库而不升级,它以一种非常迟钝的方式失败了。对我来说没有意义。
    • 在其他新闻中,谢谢!我不知道您可以使用 sp_helptext 获得存储过程的确切文本。在职培训的危险..
    • @phyllis diller:当我说发布者时,我指的是正在发布的数据库。
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2022-01-25
    • 2021-01-22
    相关资源
    最近更新 更多