Rozwiązywanie problemów z modułów zbierających dane

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

  • Warunki błędów.Kategoria ta obejmuje modelu obiektów i błędy przy uruchomieniu czas.

  • Problemy z wydajnością.Kategoria ta obejmuje ogólne i wydajności w określonych scenariuszach.

  • System przestaje odpowiadać.Kategoria ta obejmuje podskładnik zawiesza się podczas danych kolekcja.

Warunki błędów

Błędy można podnieść z modelu obiektów lub przy uruchomieniu czas.

Błędy modelu obiektu

Model obiektowy modułów zbierających dane jest zarządzany interfejsu API umożliwia programowe zarządzanie właściwości modułów zbierających dane i dane kolekcja ustawia.Model obiektu jest cienka otokę zestaw procedur przechowywanych i widoków, które przewidują mechanizm konfiguracja modułów zbierających dane.Aby uzyskać więcej informacji, zobacz Programowanie modułów zbierających dane.

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

  • A Transact-SQL błąd jest wywoływane z procedura składowana lub Transact-SQL kodu nazywa się jeden z modułów zbierających dane przechowywane procedury.

  • A Transact-SQL błąd jest wywoływane bezpośrednio z procedura składowana modułów zbierających dane.

  • Zarządzany jest wyjątek bezpośrednio z modelu obiektów.

W poniższej tabela opisano błędy, które może zostać podniesiony z modelu obiektów.

Komunikat o błędzie

Numer błędu

Opis

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

14669

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

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

14670

Próba usunięcia zestaw kolekcja z systemem.

Nie można zaktualizować nazwę lub parametry element kolekcja '% s' kolekcja active zestaw '% s'.Stop zestaw kolekcja , a następnie spróbuj ponownie zaktualizować element kolekcja.

14671

Próba zaktualizowania element kolekcja kolekcja zestaw z systemem.

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

14672

Próba usunięcia element kolekcja kolekcja zestaw z systemem.

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

14673

Próba usunięcia typ modułu zbierającego , ma związane z nim elementy kolekcja.

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

14674

Próba przekazania danych zebranych przez zestaw kolekcja , nie jest uruchomiona.

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

14675

Próba zaktualizowania zestaw kolekcja z systemem.

Użytkownik nie ma uprawnień do zmiany '% s'.Użytkownik powinien być element członkowski roli modułów zbierających dane '% s'.

14676

Użytkownik próbował zaktualizować właściwość, która może być zmieniane tylko przez rolę modułów zbierających dane specyficzne.

Użytkownik nie ma uprawnień do wykonania tej operacji.Użytkownik musi być element członkowski roli modułów zbierających dane '% s'.

14677

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

Śledzenie programu SQL Server o identyfikatorze %d została zatrzymana i zamknięte przez użytkownika zewnętrznego.Zbierających śledzenia programu SQL Server spróbuje ponownie śledzenia.

14678

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

Określony %s (% s) jest nieprawidłowa w tym magazyn danych.

14679

Parametr przekazany do jednej z procedur przechowywanych w magazyn danych zarządzania ma wartość nie pasuje do innych wpisów w magazynie.

Ta wersja programu instmdw.sql tylko powinny być wykonywane na serwerze z programem SQL Server 2005 lub nowszej.

14680

Próba instalacji magazyn danych zarządzania na serwerze z programem SQL Server 2000 lub starszego.

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

14681

Próba wykonania operacji, która powoduje konflikt z Państwem kolektora.

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

14682

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

A zestaw kolekcji migawka lub ciągły tryb wymaga harmonogramu.

14683

Tworzenie lub aktualizowanie zestaw kolekcja w migawka lub w trybie ciągłym bez harmonogramu.

Złowione błąd #: % d, poziom: % d, stan: % d, w procedurze: % s, wiersz: % d, z komunikatem: %s

14684

Wystąpił błąd rodzajowy w składniku modułów zbierających dane; Błąd został złowionych w blok catch i rethrown.

Nieprawidłowa operacja.Stan zestaw kolekcja o identyfikatorze = %d jest obecnie "nie jest uruchomiona".

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 być null.

14686

Połączenie ciąg do zarządzania jest null, MDWInstance lub MDWDatabase parametry magazyn danych.

Nieprawidłowa wartość (% d) parametr @ cache_window.Wartości dopuszczalne są następujące: -1 (bufor wszystkie dane przekazywania awariach przekazywania poprzedniego), 0 (bez przekazywania danych w pamięci podręcznej), N (pamięci podręcznej danych z poprzedniego n przekazać błędy, gdzie n >= 1)

14687

Podjęto próbę zestaw wartość parametru CacheWindow magazynu konfiguracja modułów zbierających wartość mniejszą niż -1.

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

14688

Podjęto próbę uruchomienia zestaw kolekcja podczas agenta programu SQL Server nie jest włączona.

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

14689

Podjęto próbę uruchomienia kolekcja zestaw , gdy zarządzanie magazynem danych nie jest zestaw w górę.

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

14690

Próba wykonania operacji, która powoduje konflikt z Państwem kolektora.

Stan modułu zbierającego nie może być null.Może to oznaczać wewnętrznych uszkodzeń w moduł zbierający dane konfiguracja.

14691

Wywołanie sp_syscollector_verify_collector_state znaleziono parametru CollectorEnabled z wartością null.Może to wskazywać wewnętrzne uszkodzenie danych konfiguracja kolektora.

Błędy w czasie wykonywania

Uruchom -czas błędów może się zdarzyć, gdy pakiet pobierania lub przekazywania pakiet działa i napotka problem.Błędy mogą pochodzić z jednego 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, które miały wpływ błąd i rejestruje ten numer w tabelach dziennika modułów zbierających dane.

  • Przepływ sterowania pakiet SSIS.Błędy są rejestrowane w tabelach SSIS dziennika w msdb bazy danych (msdb.dbo.sysssislog) i są przepuszczanie poza tabelami dziennika modułów zbierających dane.

  • Uruchamianie modułów zbierających dane -czas składnika (dcexec.exe).Błędy są rejestrowane bezpośrednio w tabelach dziennika modułów zbierających dane.

Aby uzyskać więcej informacji, zobacz Rejestrowanie modułów zbierających dane.

Zaleca się jedną z następujących metod uzyskiwania informacje dotyczące wykonywania - stanuczas błędy.

Transact-SQL procedur przechowywanych i widoków

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

use msdb
select * from syscollector_execution_log_full

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

Nazwa kolumny

Opis

log_id

Unikatowy identyfikator dla każdego zestaw kolekcja wykonanie.To jest używane do łączyć w tym widoku z innymi szczegółowe dzienniki.

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 uruchomiony pakiet, który.Ponadto ten widok grupy wpisów dziennika przez powiązanie ich nadrzędny podrzędność i wcięcia nazwy pakietów, więc łańcucha wywołania jest wyraźnie widoczne.

name

Nazwa zestaw kolekcja lub pakiet, który reprezentuje ten wpis dziennika.

collection_mode

Kolekcja zestaw działania, gdy dokonano wpisu, pobierania lub przekazywania.

start_time

Gdy zestaw kolekcja lub pakiet został uruchomiony.

last_iteration_time

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

finish_time

Pakiety i zestawy kolekcja zakończone czas zakończeniu uruchom.

duration

Czas w milisekundach, który pakiet lub zestaw kolekcja został uruchomiony.

operator

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

status

Stan zestaw kolekcja lub pakiet.Będzie to:

  • 0 - uruchomiony

  • 1 - zakończone

  • 2 - nie można

failure_task

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

package_execution_id

Łącze do tabela Dziennik SSIS.

collection_set_id

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

UwagaUwaga:
Collection_set_id jako filtru można użyć skupić się na konkretną zestaw kolekcja w dzienniku.

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

Można uzyskać dodatkowe informacje o zestaw kolekcja i pakiet wykonanie przez wykonanie jednej z funkcji dostępnych modułów zbierających dane.

Następująca funkcja zwraca szczegółowych statystyk dotyczących zestaw kolekcja lub pakiet, łącznie z liczbą wierszy błędów rejestrowane przez pakiet.

select * from fn_syscollector_get_execution_stats(@log_id)

Funkcja dalej zwraca część dziennika SSIS (sysdtslog90), który odpowiada package_execution_id dla pakiet.Jeśli pakiet nie powiodło się, jest to najlepszy sposób, aby dowiedzieć się, wystąpił błąd katalogu głównego.

select * from fn_syscollector_get_execution_details(@log_id)

Raporty o stanie modułów zbierających dane

Można uzyskać te same informacje, które są zwracane przez poprzednie Transact-SQL kwerend, przeglądając dzienniki w SQL Server Management Studio.Aby uzyskać więcej informacji, zobacz Jak Wyświetlanie kolekcji zestawu dzienników.

Problemy z wydajnością

Istnieją trzy podstawowe źródła danych, używany do przeglądania i diagnozowanie wydajności.

Po pierwsze opisane w poprzedniej sekcji tabele dziennika również dostarczyć przydatnych informacji, używany do rozwiązania problemów z wydajnością.

fn_syscollector_get_execution_stats Funkcja zwraca następujące informacje.

Nazwa kolumny

Opis

avg_row_count_in

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

min_row_count_in

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

max_row_count_in

Maksymalna liczba wierszy, które wprowadzane 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) spędzony w składnik przepływ danych pakiet.

min_duration

Minimalny czas (w milisekundach) spędzony w składnik przepływ danych pakiet.

max_duration

Maksymalny czas (w milisekundach) spędzony w składnik przepływ danych pakiet.

Drugie źródło danych wydajności jest syscollector_execution_log_full tabela, która zawiera informacje, jak długo zestaw kolekcja został uruchomiony lub jest uruchomiony.

Wreszcie liczniki wydajności można pomóc oceny problemy z wydajnością.Liczniki standardowego procesu dla wystąpienia procesów (dcexec.exe) modułów zbierających dane w szczególności dostarczania dobrej wskaźników ilość zasobów systemowych Uruchamianie modułów zbierających dane -czas używanie składnika.

Scenariusze problemu 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 dużo zasobów systemowych.

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

Nadmierne zużycie zasobów systemowych

Analiza liczników wydajności procesu wskazuje, że zbyt wiele zasobów systemowych z procesów dcexec.exe, następujące dochodzenia będzie trzeba zrobić.

Najpierw należy określić, czy jest pojedyncza zestaw kolekcji używający najwięcej zasobów.

  • Do identyfikacji kolekcja zestaw, mapowania Identyfikatora procesu zbierania zestaw identyfikator w syscollector_execution_log_full, a następnie znajdź kolekcja zestaw w syscollector_collection_sets tabela.

  • Ustalić, co zestaw kolekcja jest zbieranie.Lista wszystkich elementów w kolekcja zgrupowane w za pomocą następującej kwerendy zestaw:

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

    • Czy istnieje zbyt wiele elementów kolekcja?

    • To pojedyncza element kolekcja większość problemów powodujących?

    • Jest za dużo danych są zbierane?

    • Odpowiedź tak na dowolne z powyższych pytań należy rozważyć zmodyfikowanie kolekcja lub elementów kolekcja, aby zmniejszyć głośność gromadzone dane.Zmniejszy to zużycie zasób.

Po drugie ustalić, jeżeli przyczyną problemu jest liczba aktywnych kolekcja zestawów.

  • Dowiedzieć się ile kolekcja zestawów są zdefiniowane w systemie za pomocą następującej kwerendy:

    select count(*) from syscollector_collection_sets
    
  • Dowiedzieć się ile kolekcja zestawów aktualnie uruchomione za pomocą następującej kwerendy:

    select count(*) from syscollector_execution_log_full where parent_log_id is null and status = 1
    
  • Jeśli sporadyczne problemy z wydajnością, zobacz problem przypisywał do kolekcja lub przekazać aktywności.Jeśli harmonogramy są takie same, to może być przyczyną problemu.Dopasowywanie kolekcja lub harmonogram przekazywania może być proste rozwiązanie.

Nie można przechowywać obciążenia

Warunek ten występuje tylko w przypadku ciągłego uruchamianie zestawów kolekcja.Jeśli jest wysoka częstotliwość pobierania i ma dużą ilość danych do gromadzenia, pakiet kolekcja nie możliwość przetwarzania danych w czas przydzielona dla pojedynczej migawka iteracji.Możesz wykrywać tego warunku przez porównanie avg_duration i max_duration kolumn w tabela Dziennik częstotliwości zbierania zdefiniowane dla element określonej kolekcja.

Jeśli max_duration wartość jest większa niż wartość częstotliwości, pakiet kolekcja nie zawsze mogą być stanie nadążyć z skonfigurowanych częstotliwości.Jeśli avg_duration wartość jest wyższa niż częstotliwość, pakiet kolekcja ma problem spójne.W tym ostatnim przypadek należy zmniejszyć częstotliwość lub element kolekcja powinny być zmodyfikowane, aby ograniczyć ilość zebranych danych.

System zawiesza się

System może zawiesić Jeśli zatrzymuje przetwarzanie pakiet uruchomiony jako część modułów zbierających dane, 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.

Jest ważne, aby odróżnić prawdziwe zawiesić się od zamierzone zachowanie.

  • Stale uruchomiony pakiet kolekcja spędza się większość czas w stanie oczekiwania, budzenie okresowo zebrać migawkę danych.Po gromadzenia danych, pakiet powraca do stanu oczekiwania.Ten stan oczekiwania może być wyświetlana zawieszanie się systemu, ale nie jest.Aby sprawdzić, sprawdź syscollector_execution_log_full tabela dla podejrzanych pakiet.Jeśli last_iteration_time była nie później niż bieżący czas, warunek jest nie zawiesi się.

  • Pakiet może być przeznaczony do oczekiwania na zdarzenie, które wyzwoli akcja kolekcja.W takim przypadek pakiet będzie czekać na zdarzenie.Nie jest zawieszenie.

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

  • Najpierw należy zidentyfikować identyfikator procesu dcexec.exe, odpowiadające zestaw kolekcja , którego chcesz zbadać.

  • Następnie sprawdź, czy działa proces i jeśli używa żadnych zasobów.Każdy proces zawieszanie zazwyczaj używa 0% CPU i nie przydzielić więcej pamięci.Ten proces można również użyć wysoki procent mocy Procesora.Jeśli jest to przypadek może być pętli i zamykania nie pamięci.

  • Na koniec sprawdź tabela dziennika dla procesu zobaczyć w czasie ostatniej aktualizacji.Jeśli czas aktualizacji jest większa niż częstotliwość dla element kolekcja, proces może ulec zawieszeniu.

Istnieje kilka powodów dlaczego może zawiesić proces modułów zbierających dane.Najczęściej są następujące:

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

  • Pakiet czeka na blokada współużytkowana , jest w posiadaniu innego pakietu, ale nie została zwolniona blokada.

  • Wystąpił błąd podczas wykonywania pakietu, który nie był obsługiwany poprawnie i przepływ sterowania zostało zerwane, ale pakiet działał prawidłowo całkowicie.

W każdym z powyższych przypadków są określone wpisy w dzienniku, odnoszące się do zawieszenia systemu.Sprawdzić, czy są komunikaty, które wskazują przyczyny.W zdarzenie systemu zawieszenia, utworzyć automatyczna kopia zapasowa procesu dcexec.exe i dalszego zbadania.