Próbuję wyeksportować prosty plan konserwacji z wystąpienia programu SQL Server.
Chcę sprawdzić eksport do kontroli źródła i zastosować wyeksportowany plan konserwacji do funkcjonalnie identycznych instancji.
StackOverflow i SQL Server Newbie zalecają użycie Integration Services do wyeksportowania planu konserwacji.
Kiedy próbuję połączyć się z usługami integracji w celu eksportu, pojawia się następujący błąd:
Nawiązywanie połączenia z usługą Integration Services na komputerze „WEBSERVER” nie powiodło się z powodu następującego błędu: Określona usługa nie istnieje jako usługa zainstalowana.
Zdecydowaliśmy się wyłączyć usługi integracji w WEBSERVER, ponieważ używamy tego pola tylko do udostępniania danych aplikacjom konsumenckim. Wszystkie dane w WEBSERVER są replikowane z instancji zaplecza. Usługi integracji są intensywnie wykorzystywane do przetwarzania danych w instancji zaplecza.
Czy istnieje udokumentowany sposób eksportowania planu konserwacji bez korzystania z usług integracji? Czy Microsoft to obsługuje?
źródło
dtutil
- który jest zbudowany wokół - jest w zasadzie wyłączony w przeciwnym razie, nawet jeśli jest obecny. Niektóre wersje SQL Server (takie jak Web Edition) nie pozwalają na pełną instalację SSIS, mimo że Plany konserwacji zasadniczo wykorzystują prawie wszystkie funkcje SSIS. (Jednak trzeba obejść ten problem, zakładając, że masz dwie wersje programu SQL Server, z których jedna nie jest spękana - patrz moja odpowiedź poniżej.)Jest na to sposób.
Załóżmy, że podobnie jak OP, masz dwie instancje SQL Server, z których jedna ma zainstalowany SSIS, a jedna nie (prawdopodobnie nie może, np. Jeśli jest to SQL Server Web Edition).
Napisz procedurę składowaną, która kopiuje wiersze planu konserwacji użytkownika z serwera pokutowanego na serwer nie zapętlony. Odpowiednie wiersze to:
Musisz napisać ten SP, aby
id
najpierw usunąć wszystkie wiersze z pasującymi sami , a następnie wstawić najnowsze wersje (lub podobne podejście, np.UPDATE
Pasująceid
s, a następnieINSERT
brakująceid
s). Będziesz musiał skonfigurować połączony serwer z jednej lub drugiej strony, abyś mógł pisać SQL, który adresuje oba serwery.To jest naprawdę, możesz wtedy dzwonić regularnie ... na przykład z planu konserwacji ... i tworzyć kopie zapasowe wszystkich planów konserwacji po stronie spowolnionej.
To oczywiście ogromny hack, ale w rzeczywistości działa. (Wyobrażam sobie, że bardzo ważne jest, aby numer wersji programu SQL Server był taki sam po obu stronach, aby dane
msdb.dbo.sysssispackages
były tak kompatybilne między różnymi instancjami serwera, jak się wydaje.)Oczywiście zawsze możesz bezpośrednio wykonać kopię zapasową odpowiednich wierszy z tabeli bazy danych SSIS. To i tak działałoby - jako pełna odpowiedź na pierwotne pytanie. Jak już wspomniano, nie ma to nic wspólnego z założeniem SSIS - to po prostu zakłada plany konserwacji!
Jest to więc obsługiwana, lekka metoda, która działa bez SSIS w dowolnym miejscu w systemie. Zaletą bardziej złożonej, bardziej hackerskiej metody powyżej jest to, że daje wyeksportowane plany w standardowym formacie, a nie tylko puste wiersze danych; więc myślę, że później jest o wiele bardziej prawdopodobne, że będzie można je zaimportować do innej wersji SQL Server.
źródło
Walczyłem z DOKŁADNY ten sam problem. Oto główne wynos:
Usługi WEBSERVER nie wymagają żadnych usług integracyjnych. Jednym z udokumentowanych sposobów jest użycie DTUTIL. Wystarczy użyć DOWOLNEGO programu SQL Server (nawet darmowej wersji dla programistów ze wszystkimi funkcjami Enterprise) z zainstalowanymi usługami integracji w celu skopiowania pakietów konserwacyjnych programu SQL Server ze źródła do celu - nawet jeśli nie jest to źródło ani cel pakietu, jak pokazano w Przykład A.
Przykład A: Uruchom DTUTIL na SQL Server MySSISServerA, aby skopiować pakiet serwisowy SQL z MySourceServerB do MyDestServerC .
źródło
ANY
= ta sama wersja, w przeciwnym razie DTUTIL zaktualizuje plan do vCurrentSpójrz na:
Jak przenieść (skopiować) plany konserwacji z jednego serwera na inny? autor: Sreekanth Bandarla
Parafrazując i podsumowując:
W SSMS zamiast łączyć się z „Aparat baz danych ...”, połącz się z „Integration Services ...”, dla tej samej nazwy serwera.
Przejdź do „Zapisane pakiety / MSDB / Plany konserwacji”.
Istnieją wszystkie Twoje plany konserwacji. Kliknij je prawym przyciskiem myszy, aby je wyeksportować.
źródło