SQL 2000: Czy ktoś tu się jeszcze loguje?

6-sty-2014

Dziwne zadanie mi się trafiło. Przed odinstalowaniem serwera SQL  2000 trzeba się upewnić, że już nikt z niego nie korzysta. Ustaliliśmy, że „nikt nie korzysta” jest równoznaczne z „w ciągu tygodnia nikt się do niego nie zaloguje”. Dla pewności potem serwera nie odinstalujemy, tylko przełączymy bazy w offline i znowu trochę poczekamy.

Jak to zrealizować?

  • Uruchamiasz profilera. Na szczęście na wersji 2000 jest.  Wybierasz zdarzenia Audit login/logout, podajesz ścieżkę do pliku, określasz czas wyłączenia trace itp.
  • Skryptujesz wyklikaną definicję trace (File >> Script trace).
  • Otwierasz utworzony skrypt i zmieniasz w nim ścieżkę
  • Uruchamiasz go. Od tej pory w tle działa trace.
  • Chcesz sprawdzić czy działa i tu pułapka. W wersji 2005+ napisałbym

Select * from sys.traces

Ale w 2000 takiego widoku nie ma. Za to jest procedura:

SELECT * FROM :: fn_trace_getinfo(default)

trace_info

Dla każdego z działających trace widać

http://technet.microsoft.com/en-us/library/aa258854(v=sql.80).aspx

1 – Trace Options (See @options in sp_trace_create)

 2 – FileName

 3 – MaxSize

 4 – StopTime

 5 – Current Trace status

Przypomnijmy, że do utworzenia I uruchomienia trace używasz:

Exec  sp_trace_setstatus @TraceId, @Status

(http://technet.microsoft.com/pl-pl/library/ms176034.aspx)

gdzie @TraceId to numer trace (do odczytania z tabelki powyżej lub z sys.traces), a @Status to

1-      Aby trace uruchomić

0-      Aby trace zatrzymać (ale nie usunąć)

2 – Aby trace usunąć

 

Znając numery traców mogę dowolnie je zatrzymywać lub uruchamiać, a na koniec usunąć z pamięci.

Komentarze są wyłączone

Autor: Rafał Kraik