क्या मैं एकीकरण सेवाओं का उपयोग किए बिना एक रखरखाव योजना का निर्यात कर सकता हूं?


12

मैं SQL सर्वर इंस्टेंस से एक सरल रखरखाव योजना निर्यात करने का प्रयास कर रहा हूं।

मैं निर्यात को स्रोत नियंत्रण में जांचना चाहता हूं, और निर्यात रखरखाव योजना को कार्यात्मक रूप से समान उदाहरणों पर लागू करना चाहता हूं।

StackOverflow और SQL Server नौसिखिया रखरखाव योजना का निर्यात करने के लिए एकीकरण सेवाओं का उपयोग करने की सलाह देते हैं।

जब मैं निर्यात लक्ष्य पर एकीकरण सेवाओं से जुड़ने की कोशिश करता हूं, तो मुझे निम्न त्रुटि प्राप्त होती है:

कंप्यूटर पर एकीकरण सेवा सेवा से कनेक्ट करना "WEBSERVER" निम्नलिखित त्रुटि के साथ विफल रहा: निर्दिष्ट सेवा एक स्थापित सेवा के रूप में मौजूद नहीं है।

हमने WEBSERVER पर एकीकरण सेवाओं को अक्षम करने के लिए चुना क्योंकि हम इस बॉक्स का उपयोग केवल उपभोक्ता अनुप्रयोगों के डेटा की सेवा के लिए करते हैं। WEBSERVER पर सभी डेटा एक बैकएंड उदाहरण से दोहराया गया है। एकीकरण सेवाओं का उपयोग बैकएंड उदाहरण पर डेटा को संसाधित करने के लिए भारी रूप से किया जाता है।

एकीकरण सेवाओं का उपयोग किए बिना एक रखरखाव योजना का निर्यात करने का एक दस्तावेज तरीका है? क्या Microsoft इसका समर्थन करता है?

जवाबों:


10

रखरखाव योजनाएँ msdb.dbo.sysssispackages में SQL सर्वर पर संग्रहीत किसी अन्य SSIS पैकेज की तरह संग्रहीत की जाती हैं। मेरे पास एमएसडीबी से एसएसआईएस पैकेज एक्सट्रैक्ट पर एक आसान पोस्ट है जो आपको इलाज करना चाहिए।


यह केवल तभी काम करता है जब आपके पास एसएसआईएस पूरी तरह से स्थापित हो, क्योंकि dtutil- जो यह गोल बनाया गया है - मूल रूप से अक्षम है, भले ही यह मौजूद हो। SQL सर्वर के कुछ संस्करण (जैसे वेब संस्करण) SSIS को पूरी तरह से स्थापित करने की अनुमति नहीं देते हैं, भले ही रखरखाव योजनाएं अनिवार्य रूप से लगभग सभी SSIS की कार्यक्षमता का उपयोग करती हैं। (हालांकि, इसे प्राप्त करने के लिए एक हैक है, यह मानते हुए कि आपके पास SQL ​​सर्वर के दो संस्करण हैं, जिनमें से एक को शौक नहीं है - नीचे मेरा उत्तर देखें।)
माइकबेटन

3

ऐसा करने का एक तरीका है।

मान लें कि, ओपी की तरह, आपके पास दो SQL सर्वर इंस्टेंस हैं, जिनमें से एक में SSIS स्थापित है और जिनमें से एक एसक्यूएल सर्वर वेब संस्करण है (शायद नहीं कर सकता, उदाहरण के लिए)।

एक संग्रहीत कार्यविधि लिखें, जो hobbled सर्वर से उपयोगकर्ता रखरखाव योजना पंक्तियों को गैर-hobbled एक में कॉपी करता है। प्रासंगिक पंक्तियाँ हैं:

SELECT name 
FROM msdb.dbo.sysssispackages 
WHERE packagetype = 6

आपको इस SP को लिखने की आवश्यकता होगी ताकि यह idपहले मेल खाते हुए किसी भी पंक्तियों को हटा दे , फिर नवीनतम संस्करण (या इसी तरह का दृष्टिकोण, जैसे UPDATEमिलान ids, फिर INSERTलापता ids) सम्मिलित करता है । और आपको एक या दूसरे तरफ एक लिंक किए गए सर्वर को स्थापित करने की आवश्यकता होगी, ताकि आप SQL लिख सकें जो दोनों सर्वरों को संबोधित करता है।

यह वास्तव में है, तो आप इसे नियमित रूप से कॉल कर सकते हैं ... एक रखरखाव योजना से, उदाहरण के लिए ... और गैर-हॉबल्ड पक्ष पर सभी रखरखाव योजनाओं का बैकअप लें।

यह एक बड़ी हैक है, बेशक, लेकिन यह वास्तव में काम करता है। (मुझे लगता है कि यह बहुत महत्वपूर्ण है कि SQL सर्वर का संस्करण संख्या दोनों पक्षों पर समान है, डेटा के msdb.dbo.sysssispackagesलिए अलग-अलग सर्वर इंस्टेंस के बीच संगत होना चाहिए क्योंकि यह वास्तव में ऐसा लगता है।)

आप हमेशा सीधे SSIS डेटाबेस तालिका से प्रासंगिक पंक्तियों का बैकअप ले सकते हैं, निश्चित रूप से। यह वैसे भी काम करेगा - मूल प्रश्न के पूर्ण उत्तर के रूप में। जैसा कि कहा गया है, यह SSIS को निर्धारित करने से कोई लेना-देना नहीं है - यह सिर्फ रखरखाव योजनाओं को निर्धारित करता है!

तो यह एक समर्थित, हल्के वजन की विधि है, जो सिस्टम पर कहीं भी एसएसआईएस के बिना काम करती है। ऊपर और अधिक जटिल, अधिक हैकी विधि का लाभ यह है कि यह एक मानक प्रारूप में निर्यात योजना देता है, न केवल नंगे डेटा पंक्तियों के रूप में; इसलिए मुझे लगता है कि SQL सर्वर के एक अलग संस्करण में आयात करने की संभावना अधिक है, बाद में।


1

मैं एक ही मुद्दे के साथ संघर्ष कर रहा हूँ। यहाँ मुख्य ले दूर है:

आपके WEBSERVER पर कोई एकीकरण सेवाओं की आवश्यकता नहीं है। एक प्रलेखित तरीका DTUTIL का उपयोग करना है। किसी भी SQL सर्वर (यहां तक ​​कि सभी एंटरप्राइज़ सुविधाओं के साथ भी मुफ्त डेवलपर संस्करण) का उपयोग करें, जिसमें एक स्रोत से किसी लक्ष्य तक SQL सर्वर रखरखाव पैकेज को कॉपी करने के लिए इंटीग्रेशन सेवाएँ स्थापित हैं - भले ही वह पैकेज का स्रोत या लक्ष्य न हो जैसा कि दिखाया गया है। उदाहरण ए।

उदाहरण A: भागो DTUTIL SQL सर्वर पर MySSISServerA से किसी SQL रखरखाव पैकेज की प्रतिलिपि करने के MySourceServerB को MyDestServerC

DTUTIL /SQL "Maintenance Plans\Nightly Maintenance" /copy  sql;"Maintenance Plans\Nightly Maintenance" /sourceserver MySourceServerB /destserver MyDestServerC /Q

कैविएट के साथ ANY= वही संस्करण, अन्यथा, DTUTIL योजना को अपग्रेड करेगा vCurrent
Billinkc

महान बिंदु! लेकिन उन्नयन मददगार हो सकता है - हम वैसे भी क्या करते हैं। मुझे क्या करना पसंद है SQL 2008 में योजनाएँ बनाना और उन योजनाओं को SQL 2008, 2008 R2, 2012,2014, 2016 में कॉपी / अपग्रेड करना।
स्टिंग

0

अच्छी तरह से देखिए:

कैसे एक सर्वर से दूसरे में स्थानांतरण (कॉपी) रखरखाव योजनाएं? श्रीकांत बंदरला द्वारा

सम्‍मिलित और सम्‍मिलित करने के लिए:

  1. SSMS में, "डेटाबेस इंजन ..." से कनेक्ट करने के बजाय, "एकीकरण सेवाओं ..." से कनेक्ट करें, उसी सर्वर नाम के लिए।

  2. 'संग्रहीत पैकेज / MSDB / रखरखाव योजनाओं' पर नेविगेट करें।

  3. आपके सभी रखरखाव की योजनाएं हैं। उन्हें निर्यात करने के लिए राइट-क्लिक करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.