【问题标题】:SQL replication - Publication deleted, but log file still growingSQL 复制 - 发布已删除,但日志文件仍在增长
【发布时间】:2009-04-07 17:38:46
【问题描述】:

作为序言,我之前看到过回答这个问题的命令,但现在我找不到了,所以我只是在寻找可以解决我问题的单个 SQL 语句。强>

我曾经在 SQL Server 2000 数据库上发表过两篇文章,但后来我删除了它们。但是,我的日志文件正在增长,并且似乎包含未复制的事务,并且不断增长。我试过这个:

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1

我收到一条消息“数据库未发布”(由于我已删除该发布,这是有道理的)。如果我尝试:

backup log dbname with truncate_only

我收到消息说我的日志中有未复制的事务,它不会被截断。

我以前见过这种情况,其中不存在任何出版物,但数据库被标记为仍在参与复制,我找到了一个单行脚本来取消将数据库标记为复制源,它立即解决了我的问题。不过,我现在找不到它,当我再次需要它时——希望你们中的一个人能有所启发。谢谢!

【问题讨论】:

    标签: sql-server sql-server-2000 replication truncate-log


    【解决方案1】:

    我无法通过任何支持的方法清除这些尚未复制的数据,因此我不得不强制重建日志文件。它是 SQL 2000,因此有一个不受支持/未记录的 SP 可以执行此操作:

    DBCC REBUILD_LOG('DBName','D:\Log folder\Logfile name.ldf')
    

    这将为数据库创建一个新的、空的日志文件并放弃旧的。请注意,这将强制截断当前事务,因此请确保您有备份。数据库需要处于“紧急恢复”模式才能使用此命令,因为它不会回滚任何已部分应用于数据的进程中事务,可能会破坏数据完整性。

    有关我使用的过程的完整详细信息,请参阅此线程的帖子 7:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=76785

    【讨论】:

      【解决方案2】:
      use master
      go
      exec sp_replicationdboption @dbname='SERVICEDESK', @optname = 'publish', @value= 'true', @ignore_distributor = 1
      go
      use servicedesk
      go
      EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,  @time = 0, @reset = 1
      go
      use master
      go
      exec sp_replicationdboption @dbname='SERVICEDESK', @optname = 'publish', @value= 'false', @ignore_distributor = 1
      go
      dump tran servicedesk with no_log
      go
      

      【讨论】:

        【解决方案3】:

        您在寻找:

        EXEC sp_replicationdboption 
            @dbname = @publicationDB, 
            @optname = N'merge publish', 
            @value = N'false'
        

        ?

        另见sp_dropmergepublication/sp_droppublication

        【讨论】:

        • 我不是——我也试过了。它们似乎成功了,但我的事务日志中的条目仍在等待复制。我真的在寻找一种方法来将当前等待复制的所有条目标记为“过期”,这样我就可以清除日志了)。不过谢谢!
        猜你喜欢
        • 1970-01-01
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-21
        • 2017-11-15
        相关资源
        最近更新 更多