备份时报错
The log was not truncated because records at the beginning of the log are pending replication. Ensure the Log Reader Agent is running or use sp_repldone to mark transactions as distributed.
查找了下问题
用了以下脚本解决
--run
sp_replicationdboption 'datayesdb','publish','true'
--then run sp_repldone with the following parameter
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
--then unpublish the database
sp_replicationdboption 'datayesdb','publish','false'
--Run
dbcc traceon(3604)
dbcc opentran --- against the database to ensure there are no replicated transactions.
--the following scripts will show the detail sql script for the session
use master
declare @spid int;
declare @sql_handle binary(20);
set @spid = 601
SELECT @sql_handle = sql_handle
FROM sysprocesses As A with (nolock)
where spid = @spid
select text
from ::fn_get_sql(@sql_handle)
USE [datayesdb]
GO
DBCC SHRINKFILE (N'datayesdb_log' , 0)
GO
参考
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/c96f3cb4-5f4e-49a4-a84a-6e2cd46915a3/the-log-was-not-truncated-because-records-at-the-beginning-of-the-log-are-pending-replication?forum=sqlreplication
please notice the following related issue
Another connection is already running 'sp_replcmds' for Change Data Capture in the current database.
will be occure if you not run the sp_replflush after you cleanup the log file and you need to enable the cdc captupre
for detail info you can refer the following website
http://www.midnightdba.com/DBARant/another-connection-is-already-running-sp_replcmds-for-change-data-capture-in-the-current-database/