Beibehaltung der Snapshot-Replikation

12

Ich habe die Snapshot-Replikation auf meinem SQL Server 2008-Produktionsserver eingerichtet und habe gerade festgestellt, dass der Snapshot-Ordner Snapshots enthält, die bis vor einem Jahr zurückreichen. Wie kann ich die Aufbewahrung für diese Snapshots ändern? Insbesondere möchte ich, dass Schnappschüsse 5 Tage lang aufbewahrt werden.

Hier ist ein Screenshot des Ordners, den ich gerade ansehe: Replikationsordner

DForck42
quelle
Ich habe alle Möglichkeiten ausprobiert, die Sie erklärt haben, habe aber immer noch das gleiche Problem wie bei jemandem, der sehr früh erklärt wurde.

Antworten:

7

Dies ist normalerweise ein Problem, bei dem die Berechtigungen für xp_cmdshell aus Sicherheitsgründen geändert wurden. Dieses Problem kann auch auftreten, wenn das SQL Agent-Konto nicht über die erforderlichen Netzwerkberechtigungen zum Löschen von Daten aus Ihrem Replikationsordner verfügt.

  • Stellen Sie sicher, dass xp_cmdshell aktiviert ist und dass das ausführende Konto über die richtigen Berechtigungen verfügt.

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

Die Ausgabe sollte sein:

name         minimum    maximum config_value run_value
xp_cmdshell  0          1       1            1
Kenneth
quelle
Eine weitere zu überprüfende Sache ist, dass Ihre Bereinigungsaufträge aktiviert sind. Ich habe Fälle gesehen, in denen der Job einfach deaktiviert wurde.
Kenneth
Nun, ich habe einen Job mit dem Namen "Agent hisotry clean up: distribution" und er wird einwandfrei ausgeführt (und ist aktiviert).
DForck42
Ich habe xm_cmdshell früher aktiviert und jetzt werden diese Ergebnisse angezeigt.
DForck42
4

Nach meiner Erfahrung funktioniert die Aufbewahrung von Snapshot-Ordnern folgendermaßen:

Wenn anonyme Abonnenten für diese Veröffentlichung nicht aktiviert sind und alle Abonnenten den Snapshot verwendet haben, wird der Snapshot beim nächsten Ausführen des Bereinigungsagenten entfernt.

Wenn anonyme Abonnenten aktiviert sind und der Aufbewahrungszeitraum für die Verteilung abgelaufen ist, wird der Snapshot bei der nächsten Ausführung des Bereinigungsagenten entfernt.

In Ihrer Situation, in der Sie Snapshots für 2 Monate aufbewahren möchten, können Sie dies erreichen, indem Sie anonyme Abonnements zulassen und die Aufbewahrungsdauer für die Verteilung auf 2 Monate festlegen, sofern dies möglich ist.

Wenn Ihre Verteilungsdatenbank auch für die Transaktionsreplikation verwendet wird, kann die Verteilungsdatenbank möglicherweise stark anwachsen.

Hoffe das hilft,

Matt

Matt M
quelle
Wo lege ich die Aufbewahrung der Distribution fest?
DForck42
2
@ DForck42 Klicken Sie in SSMS mit der rechten Maustaste auf Replikation und mit der linken Maustaste auf Verteilereigenschaften. Von dort aus können Sie den Aufbewahrungszeitraum für Transaktionen anpassen.
Matt M
1

Versuche dies:

Wechseln Sie zu den Eigenschaften des Replikationsmonitors (klicken Sie mit der rechten Maustaste auf Replikationsmonitor -> Eigenschaften), und dort sollte ein Aufbewahrungszeitraum für den Verlauf angezeigt werden. Sie sollten es dort einstellen können.

Thomas Stringer
quelle
Ich denke nicht, dass dies auf die Snapshot-Replikation zutrifft.
Kenneth