Sql-Server

恢復複製後的 Log_reuse_wait_desc

  • May 19, 2020

我想知道是否有人以前遇到過這個問題,並對導致它的原因/如何解決它有任何建議。我們正在將數據庫恢復到較低的開發環境中,恢復後log_reuse_wait_descReplication。問題是我們沒有使用保持複製或 CDC。

這發生在幾個不同的設置中,但我會保持最初的簡單。

數據庫從 2008 實例還原到 2012 實例。清除它的唯一方法是在任何隨機表上創建一個測試發布,不需要訂閱,並且log_reuse_wait清除。

您可以在您的數據庫上嘗試以下腳本嗎?

use master
exec sp_replicationdboption @dbname = N'your db name', @optname = N'<<name of your 
publication>>', @value = N'false'
GO

select name, is_published, is_subscribed, is_merge_published, is_distributor
from sys.databases where name =<<your database name>>

這可能是由於孤立的複制元數據。您可以使用以下查詢來刪除:

USE master
EXEC sp_removedbreplication
   @dbname = 'myDB'

我會首先嘗試在命令下執行,看看是否能解決問題。

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

如果沒有,我將為單個文章創建一個發布,然後再次執行上述命令。這應該將所有複製事務標記為完成。一旦我能夠縮小日誌文件,我將刪除我的出版物。

引用自:https://dba.stackexchange.com/questions/65116