सबसे पहले मैं हमेशा निर्माण और तैनाती प्रक्रियाओं को अलग करने की सिफारिश करता हूं। वे एक और समान नहीं हैं, और पृथक्करण अधिक परिपक्व विन्यास प्रबंधन वर्कफ़्लो का उपयोग करना आसान बनाता है। इसका एक उदाहरण एक रिलीज उम्मीदवार के रूप में एक यूएटी पर्यावरण को पिछले निर्माण (जो एक सिस्टेस्ट पर्यावरण के माध्यम से किया गया है और सभी स्पष्ट किया गया है) को बढ़ावा देने में सक्षम होगा। ऐसा करने के लिए आप पुनर्निर्माण नहीं करना चाहते हैं। अपने निर्माण कलाकृतियों को कैप्चर करें, और उनसे अलग से तैनात करें।
वैसे भी
...
लघु उद्योगों काफी सीधा है: सभी निर्माण तो आप सिर्फ उन्हें किसी भी तरह हड़पने के लिए की जरूरत है वास्तव में, उत्पादन फ़ोल्डर में प्रतिलिपि संकुल है करता है (निर्भर करता है कि क्या आप के साथ बनाने के लिए उपयोग - मैं TeamCity का उपयोग)।फिर अपने तैनाती की प्रक्रिया में है, तो आप काफी आसानी से SMO उन्हें लघु उद्योगों सर्वर पर अपलोड करने के लिए उपयोग कर सकते हैं:
$app = new-object Microsoft.SqlServer.Dts.Runtime.Application
$app.SaveToSqlServerAs($packageObj, $null, "\\$folderName\$($packageObj.Name)$packageNameSuffix", $serverName, $null, $null);
(दिलचस्प बात यह है इस SSIS सेवा खुद के माध्यम से जाने के लिए नहीं लगता है, लेकिन MSDB संग्रहीत proc एपीआई के माध्यम से। ऐसा नहीं है कि यह किसी भी तरह से भिन्नता बनाता है, लेकिन यह तब भी काम करता है जब उपयोगकर्ता को that DCOM issue)
एसएसएएस बहुत कठिन है, तो एसएसआईएस सेवा तक दूरस्थ रूप से पहुंच नहीं है। जबकि आप AMO के साथ सामानों का ढेर कर सकते हैं, जो मैं अपने तैनाती के भाग के रूप में करता हूं, मुझे कभी भी समाधान निर्माण (जैसे .asडेटाबेस फ़ाइल) से आउटपुट लेने और उन्हें परिवर्तित करने का एक आसान तरीका नहीं मिला है एक्सएमएलए को खरोंच से ओलाप डेटाबेस स्कीमा बनाने की आवश्यकता है। एक परिवर्तन गुम है, जिसे मुझे लिखने के लिए परेशान नहीं किया जा सका।
$asDeploy = "$programfiles32\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Microsoft.AnalysisServices.Deployment.exe"
write-host "Generating XMLA"
start-process -wait -FilePath:$asDeploy -ArgumentList:"$pwd\..\bin\MyOlap\MyOlap.asdatabase","/d","/o:$pwd\MyOlap.xmla"
if (-not $?){
throw "Failed to generate XMLA: errors were reported above";
}
write-host "Deploying SSAS Database"
.\ascmd.exe -S $olapServer -i "$pwd\MyOlap.xmla"
if (-not $?){
throw "Failed to deploy cube: errors were reported above";
}
मुझे यकीन है कि तैनाती बनाने:
इसके बजाय मैं SSAS deployment utility है, जो एक तैनाती की प्रक्रिया के हिस्से के रूप में कमांड लाइन से इस्तेमाल किया जा सकता का उपयोग करें, यह XMLA पैदा करते हैं और फिर इसे निष्पादित करने के लिए मिलता है उपरोक्त घन को संसाधित नहीं करता है (मैं .deploymentoptions फ़ाइल को फिर से लिखता हूं) ताकि मैं तैनात क्यूब के बावजूद एएमओ का उपयोग कर सकूं और उस वातावरण के लिए आवश्यक डेटा स्रोत अपडेट कर सकूं। फिर मैं एक प्रक्रिया को लात मारता हूं।
आपने नहीं पूछा था, लेकिन एसएसआरएस के लिए आप केवल आरडीएल को बिल्ड से पकड़ सकते हैं, और उन्हें सेवा के लिए webservice API का उपयोग कर सकते हैं, और जाहिर है कि डेटाबेस के लिए आप एक SQL जीडीआर प्रोजेक्ट का उपयोग करेंगे, और कमांड लाइन का उपयोग करें तैनाती उपकरण वहाँ। एक साथ लिया गया है आप एक संपूर्ण स्क्रिप्ट से संस्करण को इत्यादि के आसपास काफी कड़े नियंत्रण के साथ एक स्क्रिप्ट से तैनात कर सकते हैं ...
मैंने पिछले 5 सालों से विभिन्न परियोजनाओं पर इन दृष्टिकोणों का उपयोग किया है, और वास्तव में एक पुस्तकालय को समझ लिया है ऐसा करने के लिए उपयोगी PowerShells। एक दिन मैं इन्हें साफ कर दूंगा और उन्हें छोड़ दूंगा।
[17/मई] नोट: तैनाती जादूगर की एसक्यूएल 2008 R2 संस्करण (SQL/100/फ़ोल्डर में) एक जीयूआई अनुप्रयोग, नहीं एक कंसोल अनुप्रयोग के रूप में चिह्नित किया जाता है (जैसे 2005), इसलिए जैसा कि पहले लिखा गया था स्क्रिप्ट इसे पूरा करने के लिए इंतजार नहीं करता है! उपर्युक्त कोड बदले में स्पष्ट '-wait' के साथ स्टार्ट-प्रोसेस का उपयोग करने के लिए बदला गया। यह nasty gotcha है।
क्या स्क्रिप्ट पावरहेल पावरहेल रीमोटिंग का उपयोग करके काम करता है? – Kiquenet