it-swarm-eu.dev

Mohu exportovat plán údržby bez použití Integration Services?

Snažím se exportovat jednoduchý plán údržby z instance serveru SQL.

Chci zkontrolovat export do řízení zdroje a použít exportovaný plán údržby na funkčně identické instance.

StackOverflow a SQL Server Newbie doporučujeme exportovat plán údržby pomocí Integration Services.

Při pokusu o připojení k integračním službám v cíli exportu se zobrazí následující chyba:

Připojení k službě Integration Services v počítači „WEBSERVER“ se nezdařilo s následující chybou: Zadaná služba neexistuje jako nainstalovaná služba.

Rozhodli jsme se zakázat Integration Services na WEBSERVER, protože toto pole používáme pouze pro poskytování dat spotřebitelským aplikacím. Všechna data na WEBSERVER jsou replikována z backend instance. Integration Services se hojně používá pro zpracování dat v backendové instanci.

Existuje zdokumentovaný způsob exportu plánu údržby bez použití Integration Services? Podporuje to společnost Microsoft?

Plány údržby jsou uloženy v msdb.dbo.sysssispackages jako jakékoli jiné balíčky SSIS, které jsou uloženy na serveru SQL. Mám užitečný příspěvek na SSIS Package Extract from MSDB , který by měl vyléčit, co vás trápí.

10
billinkc

Existuje způsob, jak to udělat.

Předpokládejme, že stejně jako OP máte dvě instance serveru SQL, z nichž jedna má nainstalován SSIS a druhá ne (pravděpodobně nelze, např. Pokud je server SQL Server Web Edition).

Napište uloženou proceduru, která zkopíruje řádky plánu údržby uživatele z hobbled serveru na non-hobbled. Příslušné řádky jsou:

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

Musíte to napsat SP), aby odstranilo všechny řádky s odpovídajícími id 's prvními, a pak vloží nejnovější verze (nebo podobný přístup, např. UPDATE matching) ids, potom INSERT missing ids) A budete muset nastavit propojený server na jedné nebo druhé straně, takže můžete psát SQL, které oslovuje oba servery.

To je opravdu, pak to můžete pravidelně volat ... například z plánu údržby ... a zálohovat všechny plány údržby na straně, která není hobbled.

To je samozřejmě obrovský hack, ale ve skutečnosti to funguje. (Představoval bych si, že je docela důležité, aby číslo verze serveru SQL Server bylo na obou stranách stejné pro data v msdb.dbo.sysssispackages být tak kompatibilní mezi různými instancemi serveru, jak se ve skutečnosti zdá.)

Samozřejmě můžete vždy jednoduše zálohovat příslušné řádky z databázové tabulky SSIS. To by stejně fungovalo - jako úplná odpověď na původní otázku. Jak již bylo řečeno, nejde o nic společného s předpokládáním SSIS - pouze předpokládá plány údržby!

Jedná se o podporovanou, nízkou hmotnostní metodu, která funguje bez SSIS kdekoli v systému. Výhodou výše složitější a hackernější metody je, že poskytuje exportované plány ve standardním formátu, nejen jako řádky holých dat; takže si myslím, že je mnohem pravděpodobnější, že bude později možné importovat do jiné verze serveru SQL.

3
MikeBeaton

Bojoval jsem se stejným problémem EXACT. Zde je hlavní odběr:

Na vašem WEBSERVERU nejsou potřeba žádné integrační služby. Jedním zdokumentovaným způsobem je použití DTUTIL. Stačí použít Kterýkoli SQL Server (i bezplatná vývojářská edice se všemi funkcemi Enterprise), která má nainstalované Integration Services pro kopírování SQL Server Maintenance Packages ze zdroje do cíle - i když to není zdroj nebo cíl balíčku, jak je uvedeno v Příklad A.

Příklad A: Spustit DTUTIL na serveru SQL MySSISServerA zkopírovat balíček údržby SQL z MySourceServerB do - MyDestServerC.

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

Podívejte se na:

Jak přenést (kopírovat) plány údržby z jednoho serveru na jiný? od Sreekanth Bandarla

Parafrázovat a shrnout:

  1. V SSMS se místo připojení k "Database Engine ..." připojte k "Integration Services ..." pro stejný název serveru.

  2. Přejděte na 'Uložené balíčky/MSDB/Plány údržby'.

  3. Existují všechny vaše plány údržby. Klikněte na ně pravým tlačítkem a exportujte je.

0
RicardoBalda