【发布时间】:2014-11-04 15:23:49
【问题描述】:
SQL Server 2008 R2 快照复制
背景信息
x3 服务器都在 Windows Server 2012 上运行 MSSQL 2008 R2:
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 中留下最新的快照数据?
如果有人需要更多信息,请告诉我。
提前感谢您提供的任何帮助,
谢恩
【问题讨论】:
标签: sql-server database sql-server-2008 sql-server-2008-r2 database-replication