Tryby odzyskiwania bazy danych wraz z przydatnymi opcjami nadzoru bazy – MSSQL 2008 Server cz.3

Print Friendly, PDF & Email

W naszej bazie pracującej na silniku 2008 możemy ustawić 3 różne modele pozwalające na odzysk plików bazy w przypadku jakiegoś kataklizmu.

1) Prosty (Simple) –  jako że w modelu tym kopia dziennika transakcji przechowuje ograniczoną liczbę wstecznych danych odzyskać można jedynie dane do wybranego momentu (niestety nie jest on zbyt odległy od czasu uszkodzenia spójności danych ),

2) Bulk-Logged –  loguje więcej danych w dziennikach transakcji niż Prosty jednak nie wszystkie. Również w tym przypadku nie możemy odzyskać bazy do dowolnie wybranego miejsca.

3) Pełna (Full) –  jak nazwa wskazuje, narzędzia rejestrują wszystko co dzieje się w bazie, dlatego też możliwy jest odzysk danych do dowolnego miejsca z przeszłości.


Poniżej schemat przedstawiający możliwe typy kopii zapasowej oraz możliwości naszych schematów:

Pełna kopia
Kopia różnicowa
Dziennik transakcji
Prosty
Tak
Tak
Nie
Bulk-Logged
Tak
Tak
Częściowo
Full
Tak
Tak
Tak


W celu zmiany / ustawienia naszego schematu odzysku bazy na Full (ponieważ tylko on będzie przydatny w 99,9% przypadków) wykorzystamy:

ALTER DATABASE nazwa_naszej_bazy
            SET RECOVERY  FULL
GO

Po wykonaniu tego kodu nasz schemat będzie zbierał max. liczbę danych.

W bazie uszkodzeniu może ulec również strona danych na której zapisywane są dane. Dzieje się tak gdy  w momencie zapisu danych nastąpi skok napięcia lub niestabilność pracy macierzy dyskowej. Żeby mieć nadzór nad ewentualnie uszkodzonymi stronami musimy włączyć: PAGE_VERIFY CHECKSUM.
Uszkodzone strony zapisywane są w tabeli suspect_pages w bazie msdb. Na każdej bazie produkcyjnej powinna być włączona poniższa opcja:

ALTER DATABASE nazwa_naszej_bazy
            SET PAGE_VERIFY CHECKSUM
GO

Możemy również zwiększyć nadzór nad naszą bazą oraz bardziej zoptymalizować jej działanie:

1) AUTO_CLOSE – jeżeli ta opcja jest włączona baza zostaje zamknięta a jej cała pamięć zwolniona, w momencie wylogowania się ostatniego użytkownika. Jej włączenie jest wskazane w momencie gdy zależy nam na pamięci operacyjnej.

ALTER DATABASE nazwa_naszej_bazy
            SET AUTO_CLOSE ON | OFF
GO


2) AUTO_SHRINK –  pozwala na optymalizację wykorzystania miejsca na dyskach twardych przechowujących pliki bazy. Jej włączenie jest mało opłacalne, ponieważ do rozszerzenia lub skompresowania miejsca potrzebną są zasoby sprzętowe, co może zmniejszyć wydajność bazy.

ALTER DATABASE nazwa_naszej_bazy
            SET AUTO_SHRINK ON | OFF
GO

3) CHANGE_TRACKING – możemy włączyć tryb śledzenia, tak aby można było prześledzić zmiany dokonywane na konkretnych wierszach konkretnych tabel. Możemy co jakiś czas wyczyścić dane zawierające informacje o zmianach na wierszach naszej bazy poprzez:  CHANGE_RETENTION (czyszczenie przechowywania tych danych) oraz ustawić automatycznie ich kasowanie AUTO_CLEANUP.



Możemy również czasowo zablokować dostęp do naszej bazy. Mamy dostępne 3 tryby dostępu do bazy:

1) ONLINE – baza jest dostępna dla wszystkich,

2) EMERGENCY – dostęp do bazy mają jedynie użytkownicy z grupy db_owner,

3) OFFLINE – baza jest całkowicie niedostępna dla użytkowników,

Możemy również dla bazy ustawić opcje pozwalające tylko na odczyt (READ_ONLY), dodatkowo kasowane są wszystkie dzienniki transakcji. Jeżeli ustawimy READ_WRITE baza będzie ponownie otwarta do zapisu.

Możemy również ograniczyć dostęp do bazy dla użytkownika w tym celu ustawimy jedną z dostępnych opcji:

1) SINGLE_USER – do bazy zalogować się może jedynie 1 użytkownik

2) RESTRICTED_USERS – do bazy mogą logować się jedynie db_owner

3) MULTI_USER – do bazy może zalogować się wielu użytkowników,

Jeżeli wykonamy jedną z tych opcji w momencie gdy do bazy podłączeni są użytkownicy którzy nie spełniają   wymagań nie możemy zmienić nic na bazie, do czasu gdy się nie wylogują  lub gdy nie wykonamy: ROLLBACK – w ten sposób wyrzucimy wszystkich zalogowanych do bazy. W momencie wykonania ROLLBACK IMMEDIATE wycofane są wszystkie transakcje oraz wyrzuceni z bazy.

Do normalnej pracy baza potrzebuje jednego z trybów: ONLINE, READ_WRITE oraz MULTI_USERS.

Zmiany tych opcji można dokonać poprzez Microsoft SQL Server Managment Studio lub przy pomocy powyższych komend.


Print Friendly, PDF & Email

Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT