Udostępnij za pośrednictwem


Troubleshooting the Data Collector

Ten temat dotyczy rozwiązywanie problemów z następujących kategorii:

  • Warunki wystąpienia błędu.Ta kategoria obejmuje modelu obiektowego i błędy przy uruchomieniu czas.

  • Problemy z wydajnością.Ta kategoria obejmuje ogólne i scenariusze dotyczące wydajności.

  • Zawiesza się systemu.Ta kategoria obejmuje podskładnika zawiesza się podczas danych kolekcja.

Błąd warunków

Błędy można podnieść z modelu obiektów lub w czasie wykonywania.

Błędy modelu obiektu

Model obiektowy modułów zbierających dane jest zarządzany interfejs API, który dostarcza programowe sposoby zarządzania właściwości modułu zbierającego dane i dane kolekcja ustawia.Model obiektu jest cienka otoka wokół zestaw procedur przechowywanych i widoków, które oferują mechanizm konfiguracja dla modułów zbierających dane.Aby uzyskać więcej informacji zobaczProgramowanie modułów zbierających dane.

Obiekt modelu błędy mogą pochodzić z jedną z następujących składników modelu obiektów:

  • A Transact-SQL Błąd jest wywoływane z procedurą przechowywaną lub Transact-SQL procedura przechowywana kod, który jest wywoływana z jednym z modułów zbierających dane.

  • A Transact-SQL Błąd jest uruchamiany bezpośrednio z procedura przechowywana modułów zbierających dane.

  • Zarządzane wyjątek zostanie zgłoszony bezpośrednio z modelu obiektów.

W poniższej tabela opisano błędów, które mogą być wywoływane z modelu obiektów.

Komunikat o błędzie

Numer błędu

Description

Nie można zaktualizować nazwy miejsce docelowe, proxy_id lub collection_mode aktywnych zestaw kolekcja '% s'.Zatrzymaj zestaw kolekcja, a następnie spróbuj ponownie zaktualizować.

14669

Podjęto próbę zaktualizowania aktywnego zestaw kolekcja.A zestaw kolekcja muszą być zatrzymane przed można wykonać żadnych aktualizacji tego typu.Można zmieniać tylko harmonogram przekazywania podczas zestaw kolekcja jest aktywny.

Nie można usunąć aktywnych zestaw kolekcja '% s'.Zatrzymaj zestaw kolekcja, a następnie spróbuj ponownie usunąć.

14670

Próba usunięcia zestaw kolekcja, na którym jest uruchomiony.

Nie można zaktualizować nazwy lub parametry kolekcja element '% s' w aktywnych zestaw kolekcja '% s'.Zatrzymaj zestaw kolekcja, a następnie spróbuj ponownie zaktualizować element kolekcja.

14671

Próba zaktualizowania element kolekcja w zestaw kolekcja, na którym jest uruchomiony.

Nie można usunąć elementu kolekcja '% s' w aktywnych zestaw kolekcja '% s'.Zatrzymaj zestaw kolekcja, a następnie spróbuj ponownie usunąć element z kolekcja.

14672

Próba usunięcia element kolekcja w zestaw kolekcja, na którym jest uruchomiony.

Nie można usunąć typ modułu zbierającego dane '% s'.Usuń wszystkie elementy kolekcja skojarzonego z tym typem zbierającego, a następnie spróbuj ponownie usunąć.

14673

Próba usuwania typ modułu zbierającego dane, którego skojarzony z nim elementy kolekcja.

Nie można przekazywać dane dla nieaktywny zestaw kolekcja '% s'.Uruchom zestaw kolekcja, a następnie spróbuj ponownie przekazać dane.

14674

Próba przekazania danych zebranych przez zestaw kolekcja, na którym nie działa.

Nie można zaktualizować nazwy, miejsce docelowe, proxy_id, logging_level lub collection_mode lub dodać element do kolekcja aktywnych zestaw kolekcja '% s'.Zatrzymaj zestaw kolekcja, a następnie spróbuj ponownie zaktualizować.

14675

Próba zaktualizowania zestaw kolekcja, na którym jest uruchomiony.

Użytkownik nie ma uprawnień do wprowadzania zmian w '% s'.Użytkownik powinien być członkiem roli modułu zbierającego dane % s.

14676

Użytkownik próbował zaktualizować właściwość, które mogą być zmieniane tylko przez rolę zbierającego określonych danych.

Użytkownik nie ma uprawnień do wykonania tej operacji.Użytkownik musi należeć do roli modułu zbierającego dane % s.

14677

Użytkownik próbował wykonać operację nie są częścią roli modułu zbierającego dane wymagane.

Śledzenie programu SQL Server o identyfikatorze %d została zatrzymana i zamknięte przez użytkowników zewnętrznych.SQL Server Trace moduł zbierający spróbuje ponownie utworzyć śledzenie.

14678

Został utworzony i używanych przez moduł zbierający dane śledzenia została zatrzymana i zamknięte w czasie wykonywania moduł zbierający.

Określony %s (% s) nie jest prawidłowy w tym magazynie danych.

14679

Parametr przekazany do jednej z procedur przechowywanych w magazyn danych zarządzania ma wartość, która nie jest zgodna z pozostałe wpisy w magazynie.

Ta wersja instmdw.sql tylko powinien być wykonywany na serwerze z systemem SQL Server 2005 lub nowszej.

14680

Podjęto próbę zainstalowania magazyn danych zarządzania na serwerze, na którym działa program SQL Server 2000 lub starszego.

Nie można wykonać tę procedurę, po wyłączeniu kolektora.Włącz kolektora, a następnie spróbuj ponownie.

14681

Podjęto próbę wykonania operacji powodująca konflikt ze stanem kolektora.

Stan zestaw kolekcja uległa zmianie, ale nie będzie go uruchomić lub zatrzymać aż kolektora jest włączona.

14682

Próba uruchomienia lub zatrzymania zestaw kolekcji kiedy kolektora nie jest włączona.

A zestaw kolekcji migawka lub ciągłego tryb wymaga zgodnie z harmonogramem.

14683

Tworzenie lub aktualizowanie zestaw kolekcja w trybie ciągłym bez podawania zgodnie z harmonogramem lub migawka.

Złowione błąd #: % d, poziom: % d, Państwo: % d, w wewnętrznym: % s, wiersz: % d, używając wiadomości: %s

14684

W składniku modułów zbierających dane wystąpił błąd ogólny; błąd został złowionych blok catch i rethrown.

Operacja jest nieprawidłowa.Stan zestaw kolekcji o identyfikatorze = %d jest obecnie "nie jest uruchomiony".

14685

Wywołanie sp_syscollector_create_set_queue_and_service zestaw o stanie is_running 0.

Parametry MDWInstance i MDWDatabase magazynu konfiguracja nie może mieć wartości null.

14686

Ciąg połączenia do zarządzania magazyn danych ma wartość null dla MDWInstance lub parametry MDWDatabase.

Nieprawidłowa wartość (% d) parametru @ cache_window.Dopuszczalne wartości to: wartość -1 (wszystkie dane przekazywania awariach przekazywania poprzedniego bufor), 0 (bufor bez przekazywania danych), N (danych z pamięci podręcznej od poprzednich N przekazać błędy, gdzie N > = 1)

14687

Została podjęta próba uzyskania zestaw wartość parametru CacheWindow magazynu konfiguracja nakładki na wartość mniejszą niż -1.

A zestaw kolekcja nie można uruchomić po zatrzymaniu programu SQL Server Agent.Uruchom agenta programu SQL Server.

14688

Podjęto próbę uruchomienia zestaw kolekcja kiedy program SQL Server Agent nie jest włączona.

A zestaw kolekcja nie można uruchomić, jeśli nie skonfigurowano magazyn danych zarządzania.Uruchom skrypt instmdw.sql do tworzenia i konfigurowania magazyn danych zarządzania.

14689

Została podjęta próba uruchamiania kolekcja ustawione podczas magazyn danych zarządzania nie jest skonfigurowany.

Nie można wykonać tę procedurę, po włączeniu kolektora.Wyłącz kolektora, a następnie spróbuj ponownie.

14690

Podjęto próbę wykonania operacji powodująca konflikt ze stanem kolektora.

Stan kolektora nie może mieć wartości null.Może to wskazywać na uszkodzenie wewnętrznej moduł zbierający dane konfiguracja.

14691

Wywołanie sp_syscollector_verify_collector_state znaleziono parametr CollectorEnabled o wartości null.Może to wskazywać na to uszkodzenie wewnętrznej kolektora danych konfiguracja.

Błędy na uruchamianie czas

Uruchom-czas błędów może się zdarzyć, gdy pakiet pobierania lub przekazywania pakiet jest uruchamiany i wystąpi problem.Błędy mogą pochodzić z jedną z następujących składników:

  • Przepływ danych z SQL Server 2008 Integration Services (SSIS) pakiet. Te błędy mogą być wynikiem konwersji danych nie powiodło się lub obcięcie danych.Moduł zbierający dane rejestruje liczbę wierszy objętych błędu i rejestruje ten numer w tabelach dziennika modułów zbierających dane.

  • Przepływ sterowania pakiet SSIS.Te błędy są rejestrowane w tabelach SSIS dziennika bazy danych msdb (msdb.dbo.sysssislog) i są bubbled się do tabel dziennika modułów zbierających dane.

  • Dane modułu zbierającego wykonywania składnik (dcexec.exe).Te błędy są rejestrowane bezpośrednio w tabelach dziennika modułów zbierających dane.

Aby uzyskać więcej informacji zobaczData Collector Logging.

Firma Microsoft zaleca jedną z następujących metod uzyskiwania informacji o stanie dotyczące błędy czas wykonania.

Języka Transact-SQL przechowywane procedury i widoki

Aby wyświetlić stan wszystkich aktualnie uruchomionych i zakończonych kolekcja zestawów lub pakiety, uruchom następującą kwerendę:

use msdb
select * from syscollector_execution_log_full

Powyższa kwerenda zwraca następujący zestaw wyników.

Nazwa kolumna

Description

log_id

Unikatowy identyfikator dla każdej zestaw kolekcja wykonanie.Służy to do przyłączenia tego widoku z innych szczegółowych dzienników.

parent_log_id

IDENTYFIKATOR pakiet nadrzędnej lub zestaw kolekcja.Jest to wartość NULL dla zestaw kolekcja.Identyfikatory są powiązane w relacji nadrzędny podrzędność, aby ułatwić określenie, które zestaw kolekcja uruchomienia której pakiet.Ponadto w tym widoku grupy wpisów dziennika przez ich powiązania z elementami nadrzędnymi i podrzędnymi i wcięcia nazw pakietów, więc łańcuch połączenia, jest dobrze widoczny.

Nazwa

Poniższy przykład tworzy i wyświetla ścieżki dla trzech FILESTREAM bloków BLOB.

collection_mode

zestaw kolekcji działania, gdy zapis został utworzony, pobierania lub przekazywania.

start_time

Gdy zestaw kolekcja lub uruchomienia pakietu.

last_iteration_time

Stale uruchamiania pakietów ostatniego czas że pakiet przechwycone migawka.

finish_time

W odniesieniu do pakietów i zestawy kolekcja zakończenia, czas, w procesie zakończone.

czas trwania

Czas w milisekundach, który pakiet lub zestaw kolekcja działaniu.

operator

Operator, który uruchomił zestaw kolekcja lub pakiet.

Stan

Stan zestaw kolekcja lub pakiet.Są to:

  • 0 - uruchomiony

  • 1 zakończenia

  • 2 nie powiodło się.

failure_task

Jeśli zestaw kolekcji lub pakiet nie powiodła się, nazwa zadania pakiet SSIS, który spowodował błąd.

package_execution_id

Łącze do tabela SSIS dziennika.

collection_set_id

Łącze do tabela konfiguracja modułów zbierających dane.

NoteNote:
Jako filtru można użyć collection_set_id skupić się na konkretną zestaw kolekcja w dzienniku.

Aby uzyskać więcej informacji zobacz syscollector_execution_log_full (Transact-SQL).

Można uzyskać dodatkowe informacje na temat zestaw kolekcja i pakietu wykonanie, wykonując jedną z funkcji, które zawiera moduł zbierający dane.

Poniższa funkcja zwróci szczegółowych statystyk dotyczących zestaw kolekcja lub pakiet, łącznie z liczbą wierszy błędów zarejestrowanych przez pakiet.

select * from fn_syscollector_get_execution_stats(@log_id)

Następny funkcja zwraca część dziennika SSIS (sysdtslog90), który odpowiada package_execution_id pakiet.Jeśli pakiet nie powiodła się, jest to najlepszy sposób, aby dowiedzieć się, błąd katalog główny to.

select * from fn_syscollector_get_execution_details(@log_id)

Raporty o stanie modułów zbierających dane

Można uzyskać tych samych informacji, które są zwracane przez poprzednie Transact-SQL kwerendy, przeglądając dzienniki w SQL Server Management Studio. Aby uzyskać więcej informacji zobaczHow to: View Collection Set Logs.

Problemy z wydajnością

Istnieją trzy podstawowe źródła danych, których można używać do przeglądania i diagnozowania wydajności.

Po pierwsze tabele dziennika, opisane w poprzedniej sekcji, również zawierają użyteczne informacje, które mogą być używane w celu rozwiązania problemów z wydajnością.

Funkcja fn_syscollector_get_execution_stats zwraca następujące informacje.

Nazwa kolumna

Description

avg_row_count_in

Średnia liczba wierszy, które wprowadzono przepływ danych zadań pakiet.

min_row_count_in

Minimalna liczba wierszy, które są wprowadzane przepływ danych zadań pakiet.

max_row_count_in

Maksymalna liczba wierszy, które wprowadzone przepływ danych zadań pakiet.

avg_row_count_out

Średnia liczba wierszy, które zostało zakończone przepływ danych zadań pakiet.

min_row_count_out

Minimalna liczba wierszy, które zadania przepływ danych pakiet.

max_row_count_out

Maksymalna liczba wierszy, które zadania przepływ danych pakiet.

avg_duration

Średni czas (w milisekundach), poświęconego w składnik przepływ danych pakiet.

min_duration

Minimalny czas (w milisekundach), poświęconego w składnik przepływ danych pakiet.

max_duration

Maksymalny czas (w milisekundach), poświęconego w składniku przepływ danych pakiet.

Drugiego urządzenie źródłowe danych dotyczących wydajności jest tabela syscollector_execution_log_full, która zawiera informacje o ile zestaw kolekcja został uruchomiony lub jest uruchomiona.

Wreszcie liczniki wydajności można użyć w celu oceny problemów z wydajnością.Liczniki standardowego procesu dla wystąpienia procesu (dcexec.exe) modułów zbierających dane w szczególności zapewnia dobrą wskaźników ilość zasobów systemowych składnika czas wykonywania moduł zbierający dane używa.

Scenariusze problemów wydajności

Dwa scenariusze najprawdopodobniej będzie wyświetlany jako problemy z wydajnością podczas uruchamiania modułów zbierających dane:

  • Moduł zbierający dane zużywa zbyt wiele zasobów systemowych.

  • Modułów zbierających dane mogą nie nadąża obciążenia kolekcja.

Nadmierne zużycie zasobów systemowych

Analiza liczników wydajności procesu wskazuje, że procesy dcexec.exe używają dużo zasobów systemowych, następujące postępowanie musi być wykonane.

Najpierw należy stwierdzić, czy istnieje jeden zestaw kolekcji używa najbardziej zasobów.

  • Aby zidentyfikować zestaw kolekcja mapowania IDENTYFIKATORA zestaw kolekcja w syscollector_execution_log_full identyfikator procesu, a następnie znajdź zestaw kolekcja tabela syscollector_collection_sets.

  • Określić, jakie zestaw kolekcja zbiera.Za pomocą następującej kwerendy do listy wszystkie elementy kolekcja zgrupowane zestaw:

    select * from syscollector_collection_set_items where collection_set_id = <id>
    
  • Korzystając z informacji z poprzedniego kwerendy, należy rozważyć następujące pytania:

    • Czy istnieje zbyt wiele elementów kolekcja?

    • Jest jednym element kolekcja powoduje większość problemów?

    • Jest za dużo danych są zbierane?

    • Odpowiedź tak któregokolwiek z poprzedniego pytania należy rozważyć zmodyfikowanie kolekcja lub elementów kolekcja zmniejszyć ilość danych, które są zbierane.Zmniejsza to zużycie zasób.

Po drugie określają, jeżeli przyczyną problemu jest liczba aktywnych kolekcja zestawów.

  • Dowiedz się, jak wiele kolekcja zestawów są zdefiniowane w systemie za pomocą następującej kwerendy:

    select count(*) from syscollector_collection_sets
    
  • Dowiedz się, jak wiele kolekcja zestawów są aktualnie uruchomione za pomocą następującej kwerendy:

    select count(*) from syscollector_execution_log_full where parent_log_id is null and status = 1
    
  • W przypadku sporadyczny problem wydajności Zobacz problem przypisywał do dowolnej kolekcja lub przekazać działania.Jeśli harmonogramy są wszystkie identyczne, to może być przyczyną problemu.Dopasowywanie kolekcja lub przekazywania harmonogram może być prosty rozwiązania.

Nie można będzie nadążać za przesyłkę

Ten stan występuje tylko z ciągle uruchomienie kolekcja zestawu.Jeśli częstotliwość kolekcja jest wysoka, jeśli ma dużą ilość danych, które należy zebrać, pakiet pobierania może być niemożliwe do przetwarzania danych w czas przydzielone dla jednej migawka iteracji.Ten warunek, można wykrywać przez porównanie avg_duration i max_duration kolumn w tabela Dziennik częstotliwości Kolekcja zdefiniowana dla określonego element kolekcja.

Jeśli wartość max_duration jest większa niż wartość częstotliwości, pakiet kolekcja nie zawsze można sobie radzi z częstotliwością skonfigurowane.Jeśli wartość avg_duration jest większa niż częstotliwość, kolekcja pakietu wystąpił problem z spójne.W tym drugim przypadek, należy zmniejszyć częstotliwość lub element kolekcja powinny być zmodyfikowane, aby ograniczyć ilość danych zebranych.

System zawiesza się

System może zawiesić się, jeśli uruchomiony jako część modułów zbierających dane pakiet zatrzymuje przetwarzanie, ale nie jest zamykany i pozostaje w tym stanie.Większość zawiesza się system może być rozpoznana przez zatrzymanie i ponowne uruchomienie zestaw kolekcja.

Ważne jest odróżnić prawdziwe zawiesić się od zamierzone zachowanie.

  • Stale uruchomiony pakiet pobierania przez pracowników w większości przypadków w stanie oczekiwania, wznawiania pracy okresowo zebrać migawkę danych.Po zbierania danych, pakiet powraca do stanu oczekiwania.Ten stan oczekiwania może się wydawać się zawiesić systemu, ale nie jest.Aby sprawdzić, czy, należy poszukać w tabela syscollector_execution_log_full podejrzanych pakiet.Jeśli nie później niż bieżący czas last_iteration_time, warunek nie jest może się zawiesić.

  • Pakiet może być zaprojektowane w taki sposób, aby poczekać na zdarzenie, które wyzwoli akcja kolekcja.W takim przypadek pakiet będzie czekał na zdarzenie.Nie jest może się zawiesić.

Aby sprawdzić, czy jest zawieszenie systemu, związane z modułów zbierających dane, należy wykonać następujące testy:

  • Najpierw należy zidentyfikować IDENTYFIKATORA procesu dcexec.exe odpowiadających zestawowi kolekcja, którą chcesz zbadać.

  • Następnie sprawdź, czy proces jest uruchomiony, a jeśli używa żadnych zasobów.Każdy proces zawieszanie zazwyczaj używa 0 % CPU i nie przydzielić więcej pamięci.Proces, można użyć na wysokie procentowo PROCESORA.Jeśli tak jest może być pętli i zamykania nie pamięci.

  • Na koniec należy sprawdzić tabela dziennika dla procesu w celu wyświetlenia w czasie ostatniej aktualizacji.Jeśli czas aktualizacji jest większa niż częstotliwość dla element kolekcja, proces może być uległa zawieszeniu.

Jest wiele przyczyn, dlaczego może zawiesić proces modułów zbierających dane.Poniżej przedstawiono najczęściej spotykane:

  • Pakiet czeka na następnej iteracji być informowany o tym, ale tak nie jest.

  • Pakiet czeka na udostępnionym blokada, które jest posiadany przez inny pakiet, ale nie jest zwalniane blokada.

  • Wystąpił błąd podczas wykonywania pakietu, który nie został obsłużony poprawnie zostało zakłócone przepływ sterowania, a pakiet nie całkowicie awarii.

W każdym z przypadków poprzedniego są określone wpisy w dzienniku, odnoszące się do zawieszenie systemu.Należy sprawdzić, czy są komunikaty, które wskazują przyczynę.W przypadku wystąpienia zawieszenie systemu należy utworzyć automatyczna kopia zapasowa procesu dcexec.exe i dodatkowo zbadać.