Monitorowanie instancji i baz danych dostarcza informacji niezbędnych do diagnozowania przyczyn różnorodnych błędów i problemów wydajnościowych, a także do optymalizowania SQL Server’a. Nie jest łatwo zdefiniować optymalny poziom wydajności, gdyż jest to zazwyczaj kompromis między wieloma czynnikami związanymi z oprogramowaniem, sprzętem, wymaganiami biznesowymi, polityką firmy oraz innymi czynnikami związanymi ze środowiskiem, w którym działa system bazodanowy.
November 4, 2015Synchronizowanie baz danych SQL Server’a między różnymi zdalnymi lokalizacjami
Scenariusz
Aplikacja używana przez podróżujących przedstawicieli handlowych, lub innych pracowników działających w terenie, np. dostawców, pielęgniarki środowiskowe itp. jest zaprojektowana tak aby zbierać dane z różnych lokalizacji i następnie wysyłać je do centrum danych. Dodatkowo, od czasu do czasu dane z centrum danych muszą zostać wysłane do innych lokalizacji, aby zaktualizować te lokalizacje.
Na przykład kiedy pielęgniarka składa wizytę pacjentowi, to posługując się urządzeniem mobilnym wstawia do bazy danych informacje o wizycie. Na koniec dnia wszystkie utworzone rekordy są wysyłane do centralnej bazy danych. Dodatkowo, pielęgniarka synchronizuje urządzenie mobilne z centralną bazą danych w szpitalu, aby otrzymać nowe informacje o swoich pacjentach oraz o wizytach do złożenia następnego dnia.
W scenariuszu opisanym powyżej, istnieje ciągła konieczność synchronizowania danych między urządzeniem mobilnym a centralną bazą danych.
November 4, 2015Czytanie logu transakcyjnego bazy danych SQL Server’a
Log transakcyjny SQL Server’a zawiera rekordy, opisujące modyfikacje wykonywane na bazie. Dzięki tym informacjom istnieje możliwość odtworzenia bazy do określonego punktu w czasie, możliwość ponownego wykonania modyfikacji lub jej wycofania. Powstaje jednak pytanie, jak odnaleźć określoną transakcję i ponownie ją wykonać albo jak odwrócić skutki jej działania, powstałe na przykład po przypadkowym skasowaniu rekordów w bazie.
November 4, 2015Otwórz plik LDF i wyświetl jego zawartość
Każda baza danych SQL Server’a składa się ze zbioru plików na poziomie system operacyjnego. Pliki te przechowują dane oraz informacje o zmianach w bazie. Poszczególne pliki mogą być używane tylko przez jedną bazę, a dane i informacja o zmianach w bazie nigdy nie są zapisywane w tym samym pliku. Dane przechowywane są w plikach MDF, natomiast wszystkie transakcje modyfikujące dane oraz transakcje modyfikujące na poziomie bazy danych, przechowywane są w drugim podstawowym komponencie bazy danych, w pliku LDF czyli w pliku logu transakcyjnego. Plik logu jest ciągiem rekordów. Fizycznie, rekordy logu transakcyjnego są przechowywane w jednym lub w wielu fizycznych plikach LDF.
November 4, 2015Jak szybko odszukać obiekty i dane w bazie danych SQL Server’a
Programiści i administratorzy baz danych często szukają w bazie konkretnych obiektów lub danych. Jeżeli zdarzyło ci się kiedykolwiek szukać funkcji, która zawiera określoną kolumnę tabeli lub nazwę zmiennej, lub przeszukiwać tabelę, w celu znalezienia określonych danych, to zdajesz sobie sprawę, że nie istnieje prosty sposób typu skrót klawiaturowy Ctrl+F.
Ponieważ SQL Server Management Studio albo Visual Studio nie dają takich możliwości, postanowiliśmy zebrać kilka wskazówek, które opisują jak ułatwić sobie to zadanie.
November 4, 2015Jak w bazie SQL Server’a odtworzyć dane skasowane przypadkowym wykonaniem polecenia UPDATE lub DELETE
Jednym z koszmarów administrator bazy danych jest utrata danych na skutek jego własnych błędów. Zdarza się, że administrator wykona polecenie UPDATE lub DELETE, zapominając o klauzuli WHERE lub niewłaściwie ją definiując, co skutkuje skasowaniem lub zmianą milionów wierszy w bazie danych.
Jakie opcje odtworzenia danych daje nam w takiej sytuacji SQL Server?
November 4, 2015Jak odtworzyć dane po przypadkowym usunięciu tabeli, jeśli nie mamy kopii zapasowej
Jeżeli przypadkowo wykonałeś polecenie DROP oraz posiadasz pełną kopię zapasową bazy danych, to zakładając, że po usunięciu tabeli nie pojawiły się żadne zmiany, wystarczy, że odtworzysz dane z kopii zapasowej, nadpisując oryginalną bazę danymi z kopii. Niestety, w rzeczywistości taka prosta sytuacja nie jest zbyt często możliwa. Czasami, ponieważ dane oraz obiekty w bazie zostały zmienione po wykonaniu polecenia DROP, czasami ponieważ nie posiadamy kopii zapasowej. Efektem czego jest niemożność odzyskania usuniętej tabeli i danych.
November 4, 2015Jak odtworzyć dane po wykonaniu przypadkowego polecenia UPDATE, nie posiadając kopi zapasowej bazy danych SQL Server’a
Upps! Załóżmy, że wykonałeś na bazie danych polecenie UPDATE bez warunku WHERE i nadpisałeś wszystkie rekordy w tablicy złymi danymi. Jak przywrócić poprawne wartości w bazie?
November 4, 2015Jak zmienić nazwę kolumny bez uszkadzania definicji innych obiektów w bazach SQL Server’a
Zmiana nazwy kolumny w tabeli lub widoku nie jest czynnością wykonywaną zbyt często przez programistów baz danych. Nie oznacza to jednak, że nie da się wykonać zmiany nazwy kolumny efektywnie i bez dużego nakładu pracy, jeżeli zaistnieje taka konieczność.
Sama zmiana nazwy kolumny nie jest czynnością trudną. Aby – na przykład – zmienić kolumnę TerritoryID w tablicy Sales.SalesTerritory na nazwę TerrID można wykorzystać poniższy skrypt:
November 4, 2015Odzyskiwanie skasowanych danych z logu transakcyjnego SQL Server’a
W artykule Odzyskiwanie skasowanych danych z kopii zapasowej lub z plików online bazy danych pokazaliśmy dwa scenariusze odzyskiwania, jeden z pełnej kopii zapasowej bazy danych, drugi z plików online bazy danych – plików MDF. Oprócz tych dwóch źródeł, do odzyskiwania danych można wykorzystać log transakcyjny bazy danych.
November 4, 2015