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)
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.