Jak zautomatyzować DBCC CHECKDB po przywróceniu bazy danych

dlaczego warto uruchomić DBCC CHECKDB?

DBCC CHECKDB sprawdza logiczną i fizyczną integralność wszystkich obiektów w bazie danych i dostarcza informacji o wszelkich uszkodzeniach.

ponieważ wykonanie DBCC CHECKDB jest zadaniem wyczerpującym zasoby, zaleca się uruchomienie go na serwerze produkcyjnym, gdy jest tak mniejszy ruch, jak to możliwe, lub nawet lepiej, ponieważ jednym ze sposobów przyspieszenia procesu DBCC CHECKDB jest przeniesienie pracy na inny serwer poprzez automatyzację procesu i uruchomienie CHECKDB po przywróceniu bazy danych. Ponieważ proces tworzenia kopii zapasowej jest kopią bazy danych, a przywrócona baza danych będzie dokładnie taka sama jak baza danych online, dlatego jeśli wystąpiły jakiekolwiek niespójności lub problemy, będą one w kopii zapasowej i Znalezione w przywracaniu. Dzięki takiemu podejściu zarówno przywracanie zostanie przetestowane, jak i kopie zapasowe zweryfikowane bez żadnego wpływu na produkcyjną bazę danych.

uruchamianie DBCC CHECKDB po przywróceniu może być również dobrą praktyką, jeśli jakość kopii zapasowej jest nieznana.

w tym artykule opiszemy, jak zautomatyzować DBCC CHECKDB po przywróceniu bazy danych, automatyzując DBCC CHECKDB po przywróceniu bazy danych za pomocą zadania agenta SQL Server i planów konserwacji.

jak zautomatyzować DBCC CHECKDB po przywróceniu bazy danych za pomocą zadania agenta SQL Server

aby zautomatyzować DBCC CHECKDB po przywróceniu bazy danych za pomocą agenta SQL Server:

  1. wybierz nowe zadanie z węzła agenta SQL Server ➜ zadania
  2. Utwórz pierwszy krok i określ kopię zapasową bazy danych do przywrócenia za pomocą następującego skryptu:

    RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO

  3. dodaj drugi krok do wykonania DBCC CHECKDB w przywróconej bazie danych, dodając następujący skrypt T-SQL:

    DBCC CHECKDB (AdventureWorks2014CheckDB)

    aby użyć różnych opcji DBCC CHECKDB użyj następujących skryptów T-SQL:

    aby sprawdzić wartości kolumn i sprawdzić, czy istnieją wartości kolumn, które są poza zakresem:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY

    aby opanować niepotrzebne wiadomości informacyjne:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS

    aby sprawdzić indeksowane widoki, indeksy przestrzenne i XML:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS

    aby sprawdzić tylko fizyczną strukturę bazy danych:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY

    aby wymusić blokowanie współdzielone tabeli:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK

    te opcje mogą być łączone z wyjątkiem opcji with physical_only, której nie można łączyć z niektórymi opcjami, co zostanie wyjaśnione w dalszej części tego artykułu.

  4. Zaplanuj zadanie na żądaną częstotliwość wykonywania.

chociaż stosunkowo łatwe do skonfigurowania za pomocą zadania SQL Server Agent dla tych operacji wymaga pisania skryptów T-SQL i znajomości składni opcji DBCC CHECKDB, a także znajomości funkcjonalności każdej opcji i możliwości łączenia.

jak zautomatyzować DBCC CHECKDB po przywróceniu bazy danych za pomocą planu konserwacji

plany konserwacji mogą być również użyte do wykonania tej czynności. Chociaż pasek narzędzi plany konserwacji nie zawiera zadania przywracania, można użyć zadania T-SQL.

aby zautomatyzować DBCC CHECKDB po przywróceniu bazy danych za pomocą planów konserwacji:

  1. z węzła zarządzania w okienku Eksploratora obiektów, w obszarze plany konserwacji wybierz nowy Plan konserwacji
  2. w nowej nazwie planu konserwacji nowy plan
  3. z paska narzędzi zadania planu konserwacji wybierz Wykonaj zadanie instrukcji T-SQL

  4. dwukrotnie przesuń zadanie i wklej skrypt T-SQL:

  5. Dodaj zadanie sprawdzania integralności bazy danych z paska zadań planu konserwacji:

  6. Kliknij dwukrotnie zadanie i wybierz bazę danych, aby uruchomić zadanie:

  7. Po skonfigurowaniu planu konserwacji zaplanuj go jako zadanie agenta serwera SQL:

minusem tego podejścia poza tym, że jest bardziej skomplikowane w konfiguracji, jest to, że obecnie zadanie sprawdzania integralności bazy danych oferuje tylko sprawdzanie indeksów jako dodatkową opcję i wykonuje pełne Sprawdzanie DBCC CHECKDB.

Więcej opcji zostanie dodanych w wersji SQL Server 2016.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.