Ktoś zdalnie uruchomił zapytanie do naszej bazy danych SQL Server, a ich system się zawiesił.
Nie mają kopii zapasowej tego zapytania i chcą zobaczyć, co zostało uruchomione na serwerze.
Czy można znaleźć to zapytanie w dzienniku lub w historii?
sql-server
logs
użytkownik87094
źródło
źródło
Odpowiedzi:
Podobny Grant Fritchey miał problem polegający na tym, że zamknął SSMS i stracił zapytanie, nad którym pracował ... blogował tutaj: Och **********!
EDYTOWAĆ
Aby uczynić to nieco bardziej szczegółowym w odpowiedzi, odsyłacz, do którego prowadzi odnośnik powyżej, zapewnia zapytanie, aby po prostu przejść do pamięci podręcznej instancji i wyciągnąć właśnie wykonane zapytanie (lub przynajmniej próbę):
Kilka innych opcji, które zostały odnotowane w komentarzach na blogu Granta:
źródło
2005+, domyślny ślad na ratunek.
Domyślny wykres przewija się przy 20 MB, ale SQL zachowuje historię 5 śladów. Mając dostęp do serwera, możesz pobrać pliki * .trc z katalogu MSSQL \ Log. Jeśli nie możesz uzyskać dostępu do serwera, poniższe informacje podadzą nazwę bieżącego domyślnego pliku śledzenia:
Jeśli bieżącym plikiem jest na przykład E: \ MSSQL.1 \ MSSQL \ LOG \ log_200.trc, poprzednie pliki powinny mieć postać log_199.trc, log_198.trc itp. Pobierz zawartość śledzenia za pomocą:
źródło
Państwo może być w stanie odzyskać informacje z pamięci podręcznej planów kwerend, sprawdź BOL Informacje na sys.dm_exec_query_stats lub uruchomić to ze studia zarządzania podłączonego do tej samej bazy danych:
Filtruj dane wyjściowe za pomocą
zawęzić wyniki.
źródło
Jeśli baza danych była w trybie pełnego odzyskiwania, może istnieć szansa na odzyskanie niektórych danych i uzyskanie wglądu w to, co zostało zrobione, poprzez odczyt dziennika transakcji.
Niestety nie jest to domyślnie obsługiwane, ale są na to sposoby.
Możesz spróbować użyć narzędzi innych firm, takich jak ApexSQL Log lub SQL Log Rescue (bezpłatny, ale tylko SQL 2000).
Inną opcją jest próba użycia nieudokumentowanych funkcji DBCC LOG lub fn_dblog. Jest to bardziej złożone, ale jest bezpłatne.
źródło
Jeśli baza danych jest ustawiona na pełny model odzyskiwania, możesz sprawdzić kopie zapasowe dziennika transakcji. Zobacz
fn_dump_dblog
więcej informacji.źródło
ApexSQL ma funkcję „Wykonywane zapytania”, która pozwala wyszukiwać i filtrować według daty.
Nie jestem pewien, czy pobiera historię z pamięci podręcznej SSMS, czy faktycznie sama ją śledzi. Możesz spróbować go zainstalować i mieć nadzieję na najlepsze.
źródło