Nowa baza? nowe wrażenia?
Masz nowego Klienta? A może odziedziczyłeś bazę w spadku? Twoja firma się rozrasta (lub ktoś się rozrasta)? Jest wiele sytuacji, kiedy stajemy się szczęśliwcami administrującymi bazami danych “po kimś”. Co w takiej sytuacji zrobić? Jak powinna wyglądać checklista pierwszych tygodni pracy?
Inspiracją do poniższego tekstu był podobny artykuł pod tytułem: 9 Things to Do When You Inherit a Database. To co przeczytanie poniżej skrzywia developerskie podejście autorki wskazanego artykułu na korzyść DBA :)
Zobacz o co dbasz
Dla jasności sprawdź czy osoba, która Ci przekazywała obowiązki na pewno powiedziała o wszystkim o czym powinna. A może gdzieś tam w otchłani sieci czyha jeszcze jakaś instancja którą się powinieneś zająć? A może na instancji jaką Ci wskazano jest więcej niż tylko jedna baza? Warto to sprawdzić i dopytać o ewentualne nieścisłości … dla spokojnego sumienia. Tutaj kolejna rzecz – jak już robisz tę inwentaryzację zapisz sobie jaką masz wersję SQL’a – w razie “padu” będzie prościej się odtwarzać.
Mogą Ci się tutaj przydać wszelakie narzędzia typu SQLPing, SQLRecon. Być może warto porozmawiać z pracownikami działu IT – może iż narzędzia monitorujące wiedzą o jeszcze jednej instancji?
Oczywiście w dużych firmach sytuacja jest bardziej skomplikowana – na pewno będzie więcej serwerów, którymi będzie się zajmował ktoś jeszcze – a używanie narzędzi skanujących może być potraktowane w sposób dość podejrzliwy :) Więc tam zdecydowanie ostrożniej – ale tak czy siak warto porozmawiać czy przypadkiem za rogiem nie czai się jeszcze jakiś serwer.
Oczywiście sprawdź też poza bazą systemu backupowane są też bazy systemowe.
Zabezpiecz się
Wiedząc już jakie masz serwery, sprawdź jakie masz bazy danych, jakie mają ustawione recovery model, czy backupy dzieją się jak powinny. Być może joby, które je robią nie działają od jakiegoś czasu bo się skończyło miejsce, albo zmieniło się konto na jakim powinny pracować…
Pomocne mogą być widoki master.sys.databases + master.sys.database_files, procedura sp_helpdb. Warto zajrzeć do tabel msdb.dbo.backup* (znajdziecie tam informacje o backupach), o jobach poczytacie w msdb.dbo.sysjob*.
Jeśli chodzi o narzędzia firm zewnętrznych przydatne mogą być albo duże produkty to zarządzania backupem (Tivoli, Symantec, DPM itd) natomiast specjalizowane do SQL’a to przede wszystkim własne skrypty :), Redgate SQL Backup 5 czy Quest LiteSpeed.
Porozmawiaj z nią
Kiedy już wiesz że masz backupy, warto zajrzeć do środka baz ;) Na co zwrócić uwagę?
0) sprawdź kto ma jakie uprawnienia (albo inaczej – kto jeszcze ma admina na Twoich serwerach)
1) przeczytaj i zrozum dokumentację; zweryfikuj jej aktualność :)
jeśli nie ma dokumentacji lub jest nieaktualna to czytaj dalej..
2) zapoznaj się ze strukturą bazy danych, być może warto skorzystać z wbudowanej w Management Studio funkcjonalności rysowania diagramów baz danych; być może korzystasz z oprogramowania typu Enterprise Architect czy Power Designer (lub MS Visio) – ono też może pomóc – wówczas zrobisz swój diagram wrzucisz na niego woje uwagi wydrukujesz na 10 A0 i okleisz ściany pokoju w jakim pracujesz :D
3) być może warto spojrzeć też na kilka procedur w systemie, zobaczyć w jaki sposób są napisane – tak ogólnie żeby wiedzieć czego się spodziewać po pracy systemu
Monitoruj …
Kiedy już zebrałeś o niej garść informacji spróbuj użyć narzędzi monitorujących celem potwierdzenia swoich domysłów typu “oooo tu będzie problem”, “oooo tu jest wolno”. Czego możesz użyć?
Skrypty TSQL, Performance Monitor, Quest Spotlight, Quest Foglight, SCOM, Red Gate SQL Response itd…
Porozmawiaj z jej ojcem …
Tak… mało możliwe ale czasem się zdarza że bazy danych wyszły z klawiatur działów wewnętrznych a wówczas jest szansa żeby dowiedzieć się czegoś więcej o specyfice pracy systemu, o tym na co trzeba uważać, być może są jakieś “ułomności” systemu wybrane w trakcie jego projektowania jako mniejsze zło… Jeśli dostawcami systemu jest firma zewnętrzna – to być może uda się umówić na jakieś spotkanie? W końcu im zależy żeby software był dobrze oceniany, a tobie zależy na spokojnej pracy… możecie połączyć siły (takie rozwiązanie jest sprawdzone w boju i naprawdę działa!).
Czy twoja baza jest idealna ?
Tak, wiem że nie jest … co więcej pewnie osoby z którymi dobrze żyjesz mają do niej wiele zastrzeżeń być może nawet uważają że są to błędy. Jeśli w firmie, w której pracujesz nie ma jeszcze systemu dla helpdesku czy jakiejś aplikacji zarządzającej błędami wdróż to sam! Przyda się na 100%. Ułatwi raportowanie efektów Twojej pracy, a użytkownikom pokaże że ich zgłoszenia nie zniknęły ale że spokojnie czekają w kolejce…
Pochwal się swoją pracą !
W każdym systemie biznesowym są pewne małe i duże rzeczy, które można usprawnić polepszając zwykłym userom życie … oczywiście i tak tego nie zauważą (bo po prostu będzie działać… i do Ciebie będzie spływać mniej narzekań) ale czasem się zdarza że ktoś rzuci uwagę że zobaczcie teraz jest lepiej, ten nowy admin to jednak coś robi bo aplikacja nie staje dęba jak kiedyś itd. (zakładając że nie jesteś na 10 linii wsparcia a jedyne co robisz to obsługujesz tickety z błędami siedząc w openspace lub w ciasnym pomieszczeniu bez okien :P).
Oczywiście jesteś osobą, która ma pełną wiedzę o bazach jakimi się opiekujesz, świetnie radzisz sobie z obsługą błędów, a dzięki zmianom jakie wprowadziłeś znacząco spadł czas odpowiedzi serwerów!
Cool! Powiedz to innym, oczywiście nie musisz mieć tego na czole napisanego – ale bądź gotowy żeby umieć odpowiednie argumenty wyciągnąć w trakcie dyskusji np.: od czasu jak zacząłem prace z systemem XYZ jego dostępność wzrosła dwukrotnie, czy pojawia się 30% mniej zgłoszeń o problemach z wydajnością. Itd. – takie argumenty są ważne i na pewno pomogą w pozytywnej ocenie twojej osoby a przede wszystkim pracy jaką wykonujesz.
Podsumowanie
Całe powyższe można skompresować do:
1) Inwentaryzacja
2) Backupy
3) Przegląd systemu
4) Monitoring
5) Rozmowy z twórcami
6) Obsługa błędów
7) Marketing
Czyli dobra organizacja pracy + dobra praca + trochę marketingu i będzie dobrze! Trzymam za was kciuki i życzę bezproblemowych systemów i wyrozumiałych użytowników!