【问题标题】:How to configure replication? - This database is not enabled for publication如何配置复制? - 此数据库未启用发布
【发布时间】:2010-03-09 09:36:38
【问题描述】:

我正在尝试在 SQL Server 2005 上配置复制。我可以使用向导来完成。但是,当我尝试通过此向导运行生成的脚本时,会出现错误消息:

Msg 14013, Level 16, State 1, Procedure sp_MSrepl_addpublication, Line 159
This database is not enabled for publication.
Msg 18757, Level 16, State 1, Procedure sp_MSrepl_addpublication_snapshot, Line 66
Unable to execute procedure. The database is not published. Execute the procedure in a database that is published for replication.
Msg 14013, Level 16, State 1, Procedure sp_MSrepl_addarticle, Line 168
This database is not enabled for publication.
Msg 14294, Level 16, State 1, Procedure sp_verify_job_identifiers, Line 25
Supply either @job_id or @job_name to identify the job.

这有点奇怪,因为当我在单击然后删除出版物的数据库上运行此查询时,一切都很顺利。问题是当我在新数据库上使用我的查询时。 更重要的是我正在使用 sp_replicationdboption 存储过程。当我尝试运行它时,它说:

数据库ReplicationTest00 的复制选项publish 已设置为true。

请帮我解决这个问题。

【问题讨论】:

    标签: sql-server sql-server-2005 replication


    【解决方案1】:

    我假设您已经为您的复制拓扑配置了分发器?

    我对复制的建议是,不要通过向导执行您的步骤。

    无论如何,请使用向导来创建您的配置选项,而不是在最后执行,而是编写步骤脚本。这样,您就可以以 T-SQL 形式完整记录您的配置,并且您可以手动对所提供的代码进行修改/调整。

    【讨论】:

    • 请与我们分享文章
    【解决方案2】:

    好的,我找到了解决此问题的方法。 我试图在产生上述错误消息的整个 sql 服务器的上下文中运行 snapshor 复制脚本。

    当我在用于复制的数据库上下文中运行我的脚本时,它可以完美地工作。 :)

    【讨论】:

    • 您能否提供一个示例,说明您如何在数据库而不是服务器的上下文中运行脚本。因为我面临同样的问题,我用谷歌搜索了很多,但我找不到任何解决方案。请帮助
    • @vinay 只是在脚本顶部输入表达式 USE (database name) GO。
    【解决方案3】:

    在运行脚本之前,包括 使用 [publication_db_name]

    这将设置数据库的上下文

    【讨论】:

    • 它的数据库名称 - 不是 [publication_db_name]
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2017-11-06
    • 1970-01-01
    • 2011-09-29
    相关资源
    最近更新 更多