快照复制保留


12

我已经在我的SQL Server 2008生产服务器上设置了快照复制,我只是注意到快照文件夹中存在可追溯到一年前的快照。如何更改这些快照的保留时间?我特别希望它可以将快照保留5天。

这是我正在查看的文件夹的屏幕截图: 复制文件夹


我已经尝试了您所解释的所有可能方式,但是仍然存在与某些很早以前所解释的方式相同的问题。

Answers:


7

这通常是出于安全原因修改了xp_cmdshell权限的问题。如果SQL Agent帐户不具有从复制文件夹中删除数据所需的网络权限,也可能会出现此问题。

  • 验证xp_cmdshell已启用,并且执行它的帐户具有适当的权限。

    USE master
    GO
    EXEC sp_configure 'show advanced option', '1';
    reconfigure;
    GO
    exec sp_configure 'xp_cmdshell';
    

输出应为:

name         minimum    maximum config_value run_value
xp_cmdshell  0          1       1            1

需要检查的另一件事是您的清理作业已启用。我曾见过一些工作完全被禁用的情况。
肯尼斯(Kenneth)

好吧,我有一个名为“代理历史记录清理:分发”的工作,并且执行得很好(并且已启用)。
DForck42 2011年

我之前启用了xm_cmdshell,现在显示了这些结果。
DForck42 2011年

4

以我的经验,快照文件夹保留的工作方式如下:

如果未为该发布启用匿名订阅者,并且所有订阅者都使用了快照,则下次运行清理代理将删除快照。

如果启用了匿名订阅者,并且分配保留期已过,则下次运行清理代理将删除快照。

在您要保留快照2个月的情况下,可以通过允许匿名订阅并将分发保留设置为2个月(如果可行)来实现。

如果您的分发数据库也用于事务复制,则可能会看到分发数据库增长很多。

希望这可以帮助,

马特


我在哪里设置分布保留率?
DForck42,2011年

2
@ DForck42在SSMS中,右键单击复制和左键分发服务器属性。从那里,您可以调整交易保留期。
Matt M

1

尝试这个:

转到复制监视器的属性(右键单击“复制监视器”->“属性”),您应该在此处看到“历史记录保留期”。您应该可以在此处进行设置。


我认为这不适用于快照复制。
肯尼斯(Kenneth)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.