Saya mencoba untuk mengekspor rencana pemeliharaan sederhana dari contoh SQL Server.
Saya ingin memeriksa ekspor ke kontrol sumber, dan menerapkan rencana pemeliharaan yang diekspor ke instance yang secara fungsional identik.
StackOverflow dan SQL Server Newbie merekomendasikan penggunaan Layanan Integrasi untuk mengekspor rencana pemeliharaan.
Ketika saya mencoba untuk terhubung ke Layanan Integrasi pada target Ekspor, saya menerima kesalahan berikut:
Menghubungkan ke layanan Layanan Integrasi pada komputer "WEBSERVER" gagal dengan kesalahan berikut: Layanan yang ditentukan tidak ada sebagai layanan yang diinstal.
Kami memilih untuk menonaktifkan Layanan Integrasi di WEBSERVER karena kami menggunakan kotak ini hanya untuk menyajikan data ke aplikasi konsumen. Semua data di WEBSERVER direplikasi dari instance backend. Layanan Integrasi banyak digunakan untuk memproses data pada instance backend.
Apakah ada cara yang terdokumentasi untuk mengekspor rencana pemeliharaan tanpa menggunakan Layanan Integrasi? Apakah Microsoft mendukungnya?
sumber
dtutil
- yang dibangun ini - pada dasarnya dinonaktifkan jika tidak, meskipun ada. Beberapa versi SQL Server (seperti Web Edition) tidak memungkinkan SSIS untuk diinstal sepenuhnya, meskipun Rencana Pemeliharaan pada dasarnya menggunakan hampir semua fungsi SSIS. (Namun, ada peretasan untuk mengatasi ini, dengan asumsi Anda memiliki dua versi SQL Server, salah satunya tidak terpincang - lihat jawaban saya di bawah ini.)Ada cara untuk melakukan ini.
Asumsikan, seperti OP, Anda memiliki dua contoh SQL Server, satu di antaranya memiliki SSIS yang diinstal dan yang lainnya tidak (mungkin tidak bisa, misalnya jika SQL Server Web Edition).
Tulis prosedur tersimpan yang menyalin baris rencana perawatan pengguna dari server yang tertatih-tatih ke yang tidak tertatih-tatih. Baris yang relevan adalah:
Anda harus menulis SP ini sehingga menghapus setiap baris dengan yang cocok
id
terlebih dahulu, lalu menyisipkan versi terbaru (atau pendekatan yang serupa, misalnyaUPDATE
mencocokkanid
, laluINSERT
hilangid
). Dan Anda perlu mengatur server yang ditautkan di satu atau sisi lain, sehingga Anda dapat menulis SQL yang membahas kedua server.Itu saja, sungguh, Anda kemudian dapat memanggil ini secara teratur ... dari rencana pemeliharaan, misalnya ... dan mencadangkan semua rencana pemeliharaan di sisi yang tidak tertatih-tatih.
Tentu saja, ini adalah retasan besar-besaran, tetapi sebenarnya berhasil. (Saya akan membayangkan bahwa itu cukup penting bahwa nomor versi SQL Server adalah sama di kedua sisi, agar data dalam
msdb.dbo.sysssispackages
menjadi kompatibel antara contoh server yang berbeda seperti yang tampaknya sebenarnya.)Anda selalu dapat mencadangkan baris yang relevan dari tabel database SSIS secara langsung, tentu saja. Lagipula itu akan berhasil - sebagai jawaban lengkap untuk pertanyaan awal. Seperti yang dinyatakan, ini tidak ada hubungannya dengan mengandaikan SSIS - itu hanya mengandaikan Rencana Pemeliharaan!
Jadi itu adalah metode ringan yang didukung, yang bekerja tanpa SSIS di mana pun pada sistem. Keuntungan dari metode yang lebih rumit dan lebih rumit di atas adalah memberikan metode yang diekspor dalam format standar, bukan hanya sebagai baris data telanjang; jadi saya pikir itu lebih mungkin untuk diimpor ke versi SQL Server yang berbeda, nanti.
sumber
Saya telah berjuang dengan EXACT masalah yang sama. Inilah yang bisa dibawa pulang:
Tidak diperlukan layanan integrasi di WEBSERVER Anda. Salah satu cara yang terdokumentasi adalah menggunakan DTUTIL. Cukup gunakan sembarang SQL Server (bahkan edisi pengembang gratis dengan semua fitur Enterprise) yang memiliki Layanan Integrasi diinstal untuk menyalin Paket Pemeliharaan SQL Server dari sumber ke target - bahkan jika itu bukan sumber atau target paket seperti yang ditunjukkan pada Contoh A.
Contoh A: Jalankan DTUTIL pada SQL Server MySSISServerA untuk menyalin Paket Pemeliharaan SQL dari MySourceServerB ke MyDestServerC .
sumber
ANY
= versi yang sama, jika tidak, DTUTIL akan memutakhirkan paket ke vCurrentLihatlah:
Bagaimana Cara Mentransfer (Menyalin) Paket Perawatan dari Satu Server ke Server Lainnya? oleh Sreekanth Bandarla
Mengutip dan meringkas:
Di SSMS, alih-alih menyambung ke "Database Engine ...", hubungkan ke "Integration Services ...", untuk nama server yang sama.
Menavigasi ke 'Paket Tersimpan / MSDB / Paket Pemeliharaan'.
Ada semua Paket perawatan Anda. Klik kanan untuk mengekspornya.
sumber