คัดลอกแผนการบำรุงรักษาไปยังเซิร์ฟเวอร์อื่น


19

มีวิธีคัดลอกแผนการบำรุงรักษาจาก SQL Server 2012 หนึ่งไปยังอีกแผนหนึ่งหรือไม่ เซิร์ฟเวอร์ทั้งสองไม่สามารถเข้าถึงได้ผ่านสำเนาของ Studio จัดการในเวลาเดียวกัน (ในเครือข่ายที่แตกต่างกัน)

คำตอบ:


20

ไปที่เซิร์ฟเวอร์ที่มีงานอยู่ใน Object Explorer ของ Management Studio ไปที่การจัดการ> ตัวแทนเซิร์ฟเวอร์ SQL และเน้นโฟลเดอร์งาน กดF7(หรือดู> รายละเอียด Object Explorer) คุณควรเห็นหลายงานในบานหน้าต่างด้านขวา เน้นสิ่งที่คุณต้องการคัดลอกคลิกขวาสคริปต์งานเป็น> สร้างถึง> คลิปบอร์ด ตอนนี้เชื่อมต่อกับเซิร์ฟเวอร์อื่นเปิดหน้าต่างแบบสอบถามใหม่วางและกด F5 ง่ายกว่าการล้อเล่นกับ SSIS

คุณอาจต้องทำตามขั้นตอนเพิ่มเติมทั้งนี้ขึ้นอยู่กับแผนดำเนินการ เชื่อมต่อกับอินสแตนซ์ Services Services แทนที่จะเป็นอินสแตนซ์ฐานข้อมูลขยายแพ็คเกจที่จัดเก็บ> MSDB> แผนการบำรุงรักษาและคลิกขวาที่แผนใด ๆ แล้วเลือกแพ็คเกจส่งออก บนเซิร์ฟเวอร์อื่นให้ทำตามขั้นตอนเดียวกัน แต่คลิกขวาที่แผนการบำรุงรักษาและเลือกนำเข้าแพ็คเกจ คุณจะต้องทำเช่นนี้สำหรับแต่ละแผน


11

ฉันพบวิธีการแฮ็คเพิ่มเติม

แผนปฏิบัติการทุกแผนเป็นหนึ่งระเบียนในmsdb.sysssispackagesตาราง

คุณสามารถคัดลอกระเบียนจากmsdb.sysssispackagesตารางของเซิร์ฟเวอร์ต้นทางไปยังmsdb.sysssispackagesตารางของเซิร์ฟเวอร์ปลายทาง

เพียงสร้างเซิร์ฟเวอร์ที่เชื่อมโยงบนเซิร์ฟเวอร์ต้นทางและใช้ส่วนแทรกนี้จากเซิร์ฟเวอร์ต้นทาง:

INSERT INTO 
    YOUR-DEST-SERVER-NAME.msdb.dbo.sysssispackages
SELECT        
    name, 
    id, 
    description, 
    createdate, 
    folderid, 
    ownersid, 
    cast(
        cast(
            replace(
                cast(
                    CAST(packagedata AS VARBINARY(MAX)) AS varchar(max)
                ), 
            'YOUR-SOURCE-SERVER-NAME', 'YOUR-DEST-SERVER-NAME') 
        as XML) 
    as VARBINARY(MAX)) as packagedata, 
    packageformat, 
    packagetype, 
    vermajor, 
    verminor, 
    verbuild, 
    vercomments, 
    verid, 
    isencrypted, 
    readrolesid, 
    writerolesid

FROM
    msdb.dbo.sysssispackages AS sysssispackages_1
WHERE        
    (name = 'YourMaintenancePlanName')

ข้อมูล: แทนที่ชื่อเซิร์ฟเวอร์เป็นสิ่งสำคัญในการจัดการการเชื่อมต่อปลายทางในตัวออกแบบแผนการบำรุงรักษา

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


1
แนะนำให้ใช้เครื่องหมายแบ็กสแลชต่อท้ายในการแทนที่ ('ab \', 'yz \') เพื่อหลีกเลี่ยงการแทนที่ส่วนอื่น ๆ ของข้อมูล
crokusek

-2
  1. บันทึกเป็น "sa" มิฉะนั้นจะไม่ปรากฏขึ้น

  2. เพื่อดูอย่างรวดเร็ว:

ป้อนคำอธิบายรูปภาพที่นี่


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