การเก็บรักษาการจำลองแบบ Snapshot


13

ฉันได้ตั้งค่าการจำลองแบบ Snapshot บนเซิร์ฟเวอร์การผลิต SQL Server 2008 ของฉันและฉันเพิ่งสังเกตเห็นว่ามีสแนปชอตอยู่หลายปีก่อนในโฟลเดอร์สแน็ปช็อต ฉันจะเปลี่ยนการเก็บรักษาสำหรับสแนปชอตเหล่านี้ได้อย่างไร โดยเฉพาะฉันต้องการเก็บสแนปชอตเป็นเวลา 5 วัน

นี่คือภาพหน้าจอของโฟลเดอร์ที่ฉันกำลังดู: โฟลเดอร์การจำลองแบบ


ฉันได้ลองทุกวิธีที่เป็นไปได้ที่คุณอธิบาย แต่ยังคงมีปัญหาเช่นเดียวกับที่อธิบายไว้ก่อนหน้านี้

คำตอบ:


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

ฉันมีงานที่เรียกว่า "Agent hisotry clean up: distribution" และทำงานได้ดี (และเปิดใช้งาน)
DForck42

ฉันเปิดใช้งาน xm_cmdshell ก่อนหน้านี้และตอนนี้จะแสดงผลลัพธ์เหล่านั้น
DForck42

4

จากประสบการณ์ของฉันการเก็บโฟลเดอร์สแน็ปช็อตทำงานดังนี้:

หากไม่ได้เปิดใช้งานสมาชิกแบบไม่ระบุชื่อสำหรับสิ่งพิมพ์นั้นและหากสมาชิกทั้งหมดใช้สแน็ปช็อตการเรียกใช้ครั้งต่อไปของเอเจนต์การล้างข้อมูลจะเป็นการลบสแน็ปช็อต

หากเปิดใช้งานสมาชิกแบบไม่ระบุชื่อและระยะเวลาการเก็บรักษาการแจกจ่ายผ่านไปการเรียกใช้ตัวแทนการล้างข้อมูลครั้งถัดไปจะเป็นการลบภาพรวม

ในสถานการณ์ของคุณที่คุณต้องการเก็บสแน็ปช็อตเป็นเวลา 2 เดือนคุณสามารถทำสิ่งนี้ได้โดยอนุญาตให้สมัครสมาชิกแบบไม่ระบุชื่อและตั้งค่าการเก็บรักษาการแจกจ่ายเป็น 2 เดือนถ้าทำได้

ถ้าฐานข้อมูลการแจกจ่ายของคุณใช้สำหรับการจำลองแบบของทรานแซคชันเช่นกันคุณอาจเห็นฐานข้อมูลการกระจายเพิ่มขึ้นเป็นจำนวนมาก

หวังว่าจะช่วยได้

ด้าน


ฉันจะตั้งค่าการเก็บรักษาการกระจายที่ไหน?
DForck42

2
@ DForck42 ใน SSMS คุณสมบัติการจำลองแบบคลิกขวาและคลิกซ้ายผู้จัดจำหน่าย จากตรงนั้นคุณสามารถปรับระยะเวลาการเก็บข้อมูลธุรกรรม
Matt M

1

ลองสิ่งนี้:

ไปที่คุณสมบัติของการตรวจสอบการจำลองแบบ (คลิกขวาที่ Replication Monitory -> Properties) และคุณจะเห็นระยะเวลาเก็บประวัติที่นั่น คุณควรจะสามารถตั้งค่าได้ที่นั่น


ฉันไม่คิดว่าจะใช้กับการจำลองแบบภาพรวม
Kenneth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.