快照repldata \ unc不清除

时间:2014-11-04 15:23:50

标签: sql-server database sql-server-2008 sql-server-2008-r2 database-replication

SQL Server 2008 R2快照复制
背景信息
所有运行MSSQL 2008 R2的x3服务器,在Windows Server 2012上:
SERV1包含两个已发布的数据库-S1DB1和S1DB2
SERV2包含两个订阅数据库-S2DB1和S2DB2
SERV3包含一个订阅数据库-S3DB1

x2出版物中相同的出版物:
PUB1& PUB2

设置
每天按计划运行S1DB1(PUB1)和S1DB2(PUB2)的快照(所有订阅都是推送订阅)

PUB1每天按照计划复制到S2DB1 PUB1按需复制到S3DB1(无时间表)
PUB2每天按时间表复制到S2DB2

用于存储快照的文件夹是默认文件夹(C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ repldata \ unc)

SERV1 _ S1DB1 _ PUB1我将其称为FOLD1
SERV1 _ S1DB2 _ PUB2我将其称为FOLD2

问题
包含FOLD2中的快照数据的子文件夹每天都会被自动删除,其中只有一个子文件夹是最近的快照。例如,今天有一个子文件夹:“20141104060001”。

包含FOLD1中的快照数据的子文件夹每天都会自动删除 ,它们会叠加,直到手动删除它们为止。例如,今天有三个子文件夹:“20141102010002”,“20141103010002”和“20141104010002”。

尽管最大分配保留时间设置为72小时,但子文件夹通常每天删除的事实对我们来说不是问题,事实上它更多的是帮助。

我有一种预感,这可能是因为订阅S3DB1只是按需而不是按计划进行,因此保留文件以便在需要时同步它们。不可否认,我还没有删除S3DB1的订阅,看看是否证实了我的理论,但是当订阅运行时,子文件夹仍然无法清除。如果他们这样做,这不会是一个问题,因为我们可以确保每隔几天运行一次订阅,以避免空间填满。

“分发清理:分发”作业运行正常,并显示
    "Removed 0 replicated transactions consisting of 0 statements in 0 seconds (0 rows/sec). [SQLSTATE 01000] (Message 21010). The step succeeded."
作为消息,但在成功同步订阅后,我还没有及早发现它。

我在某个时候删除了PUB1和所有相关的订阅,并重新创建,但这显然是不成功的。

任何人都可以确认我是否在正确的轨道上吗?如果我是,有人知道无论如何要确保此设置可以保留,但FOLD1只保留最新的快照吗?我们只使用最新的。因此,即使有一个sp可以运行到告诉 SQL Server所有订阅已经同步(即使它们没有),导致它只留下FOLD1中的最新快照数据?

如果有人需要更多信息,请告诉我。

提前感谢您提供的任何帮助,
沙恩

1 个答案:

答案 0 :(得分:0)

好的,问题解决了。似乎错误的出版物也按计划复制到第三台服务器。第一台服务器(数月和数月前)将在一两天后挂起,并且每晚需要重启以避免内存问题。

有外部公司从该服务器中提取数据,此后该服务已停止,但复制并未停止。由于服务器未被使用,因此未重新启动。由于删除了链接到该服务器的订阅,因此历史数据已自动删除,仅保留最新的快照。

从OP中“翻译”为我的格式:

在Windows Server 2012上运行MSSQL 2008 R2的x3服务器:
SERV1包含两个已发布的数据库-S1DB1和S1DB2
SERV2包含两个订阅数据库-S2DB1和S2DB2
SERV3包含一个订阅数据库-S3DB1

x1在Windows Server 2008 R2上运行MSSQL 2008 R2的服务器:
SERV4包含一个订阅数据库-S4DB1

x2出版物中相同的出版物: PUB1& PUB2

PUB1每天按照计划复制到S2DB1 PUB1按需复制到S3DB1(无时间表)
PUB1每天按时间表复制到S4DB1
PUB2每天按时间表复制到S2DB2