Bakım planlarını farklı bir sunucuya kopyalama


19

Bakım planlarını bir SQL Server 2012'den diğerine kopyalamanın bir yolu var mı? Her iki sunucuya aynı anda aynı Management Studio kopyasıyla erişilemez (farklı ağlarda).

Yanıtlar:


20

İşlerin bulunduğu sunucuya gidin, Management Studio'nun Nesne Gezgini'nde Yönetim> SQL Server Aracısı'na gidin ve İşler klasörünü vurgulayın. Vur F7(veya Görünüm> Nesne Gezgini Ayrıntıları). Sağ bölmede birden fazla iş görmelisiniz. Kopyalamak istediklerinizi vurgulayın, Komut Dosyası İşini Farklı Oluştur> Şuraya Oluştur> Pano'ya sağ tıklayın. Şimdi diğer sunucuya bağlanın, yeni bir sorgu penceresi açın, yapıştırın ve F5 tuşuna basın. SSIS ile mucking yapmaktan çok daha kolay.

Planların ne yaptığına bağlı olarak ek adımlar atmanız gerekebilir. Veritabanı örneği yerine Integration Services örneğine bağlanın, Saklanan Paketler> MSDB> Bakım Planları'nı genişletin ve herhangi bir planı sağ tıklatıp Paketi dışa aktar'ı seçin. Diğer sunucuda aynı adımları izleyin, ancak Bakım Planları'na sağ tıklayın ve Paketi içe aktar'ı seçin. Bunu her plan için yapmanız gerekecek.


11

Daha hacklenmiş bir yol buldum.

Her Uygulama Planı msdb.sysssispackagestablodaki bir kayıttır .

Kayıtları msdb.sysssispackageskaynak sunucu msdb.sysssispackagestablosundan hedef sunucunun tablosuna kopyalayabilirsiniz .

Kaynak sunucuda bağlı bir sunucu oluşturun ve bu Ekle'yi kaynak sunucudan kullanın:

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')

BILGI: Bakım planı tasarımcısında hedef bağlantı işlemek için sunucu adını değiştirmek çok önemlidir.

ÖNEMLİ: Kayıtların kopyalanması yalnızca bakım planının yapısını kopyalar. İşleri yeniden oluşturmak için, kopyayı bitirdiğinizde, her bir Mantainence Planını düzenlemeniz, programı sıfırlamanız ve kaydetmeniz GEREKİR.


1
Verilerin diğer bölümlerini değiştirmekten kaçınmak için değiştirmede ('ab \', 'yz \') arka eğik çizgi kullanmanızı öneririz.
crokusek

-2
  1. "sa" olarak günlüğe kaydet aksi takdirde görüntülenmez.

  2. hızlı görmek için:

resim açıklamasını buraya girin


OP, işlerden ayrı olan ve işler için yapabileceğiniz şekilde komut dosyaları oluşturamayan bakım planlarını soruyordu.
Ürdün
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.