Web design and hosting, database, cloud and social media solutions that deliver business results
  • Rozwiązania biznesowe
    • Oprogramowanie
    • Projektowanie stron
      • Bezpieczeństwo witryny
      • Lokalizacja i tłumaczenie stron internetowych
    • Usługi baz danych
      • Integracja danych
      • Przybory
    • Zrobotyzowana automatyzacja procesów
    • Usługi biznesowe
      • Microsoft Azure
    • Media Społecznościowe
    • Microsoft Office
  • Akademia
    • Nasze środowisko testowe
    • Nauka projektowania baz danych
      • Używanie funkcji datownika SQL Server
      • SQL Server 2008 planu konserwacji
      • Korzystanie z funkcji serwera SQL Server
      • Korzystanie z programu SQL Server Pivot-Unpivot
      • Używanie dat serwera SQL
    • Nauka projektowania stron internetowych
      • CSS
      • ASP-NET
      • Korzystanie z JavaScript
    • Nauka w chmurze i usługi IT
      • Błąd harmonogramu zadań 2147943645
      • Żądanie SSL i generowanie pliku PFX w OpenSSL Simple Steps
  • O
    • Portfel Pracy
    • Zespół
      • Adrian Anandan
      • Ali Al Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
عربى (AR)čeština (CS)Deutsch (DE)English (EN-GB)English (EN-US)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Pełny plan konserwacji programu SQL Server 2008

Plan konserwacji programu SQL Server umożliwiający tworzenie kopii zapasowych i przywracanie plików bazy danych na wielu serwerach, reorganizację lub odbudowę indeksów w zależności od czasu

Optymalizacja baz danych

Plan konserwacji bazy danych

Ta sekcja poświęcona jest optymalizacji baz danych. W tym przykładzie zamierzamy skonfigurować kod, aby wykonać następujące czynności (zobacz przybliżony schemat połączenia serwerów);

  • Kopia zapasowa bazy danych z aktywnego serwera do udostępnionego folderu kopii zapasowej
  • Baza danych ponownego indeksowania
  • Zabij wszystkie połączenia i przywróć bazę danych na serwerze raportującym.
  • Powiązane serwery wkrótce pojawią się w osobnym artykule
  • Przesyłanie dziennika będzie wkrótce w osobnym artykule

Robiąc to między serwerami, musisz zezwolić kontu uruchomionemu przez SQL Server na dostęp do systemu plików serwerów docelowych.

Cały kod SQL jest uruchamiany z bazy danych narzędzi, a schemat jest ustawiony na „maint”

Istnieje wiele innych artykułów, które napisaliśmy poniżej, które mogą Cię zainteresować.

Kompletny plan konserwacji

Teraz możemy zarządzać wszystkimi tymi oddzielnymi segmentami kodu za pomocą innej procedury, która wywoła je we właściwej kolejności, zostanie to umieszczone na serwerze rzeczywistym. Kod działa w następujący sposób;

  • Wypracuj czas
  • Jeśli jest wieczór, ponownie zindeksuj bazę danych
  • Uruchom kopię zapasową bazy danych (dodaj tam, gdzie potrzebujesz)
  • Jeśli jest wieczór, wykonaj kopię zapasową innych baz danych (dodaj tam, gdzie potrzebujesz)
  • Zabij połączenia i przywróć bazę danych (dodaj tam, gdzie potrzebujesz)

Ten kod został wypróbowany i przetestowany i działał przez kilka miesięcy bez żadnych problemów.

Należy pamiętać, że zmniejszanie plików dziennika i plików baz danych powinno być ograniczone do minimum, uruchamiając kopię zapasową, opróżniasz dziennik (mimo że zachowa używane miejsce). Jeśli jest to konieczne, powinno być uruchamiane poza normalnymi godzinami pracy.

SQL Code

Use [utilities]GOCREATE PROC [maint].MaintenancePlan AS BEGINDECLARE @BackupType VARCHAR(1)='E'IF DATEPART(HOUR,GETDATE()) BETWEEN 5 AND 21 BEGINSET @BackupType='D'END--EXEC ('USE TempDb; DBCC SHRINKFILE(templog, 0)');--This is only needed when space is at a premium!--Re-index LiveIF @BackupType='E' EXEC [maint].DatabaseReIndex 'dbname'--Create BackupBACKUP DATABASE TO DISK=N'{backuplocation}{dbname}.bak'WITH NOFORMAT, INIT, NAME =N'{dbname}', SKIP, NOREWIND, NOUNLOAD, STATS= 10;--EXEC ('USE ; DBCC SHRINKFILE(_log, 0)');--This is only needed when space is at a premium!--Backup Other Files at NightIF @BackupType='E' BEGIN  EXEC [maint].DatabaseReIndex 'dbname'  --Backup Others  BACKUP DATABASE [databasename] TO DISK=N'{backuplocation}{dbname2}.bak'  WITH FORMAT,INIT, NAME =N'{dbname2}',SKIP, NOREWIND, NOUNLOAD,  STATS= 10END--Restore Backups on other serverEXEC [server].[utilities].[maint].KillConnections 'dbname';EXEC [server].[utilities].[maint].RestoreDatabase_{dbname};--Restore Backups on other server for db_2 etcIF @BackupType='E' BEGIN  EXEC [server].[utilities].[maint].KillConnections 'dbname2';  EXEC [server].[utilities].[maint].RestoreDatabase_{dbname2};ENDENDGO

Zapasowa baza danych

backup database screenshot

Aby uzyskać kod do tworzenia kopii zapasowych bazy danych, najłatwiej jest napisać skrypt z programu SSMS.

Postępuj zgodnie z procesem, którego normalnie używasz, a następnie wybierz opcję „Script Action to New Query Window”.

Skopiuj ten kod do planu konserwacji.

Baza danych ponownego indeksowania

Następnie możemy dodać kod w celu ponownego zindeksowania naszej bazy danych. To znowu jest udostępniona procedura składowana, w której wystarczy podać systemowi nazwę.

Aby uniknąć powielania kodu, możesz o tym przeczytać, klikając poniższy link.

Więcej informacji: Procedura składowana do odbudowy lub reorganizacji pofragmentowanych indeksów bazy danych

Zabij połączenia

Wykonując przywracanie bazy danych, możesz mieć tylko jedno połączenie z nią (proces wykonujący przywracanie), dlatego możemy stworzyć procedurę składowaną, aby zamknąć wszystkie połączenia poza bieżącym procesem. Ponownie stworzyliśmy w tym celu osobny artykuł.

Więcej: Procedura składowana zabijania wszystkich połączeń z wybraną bazą danych

Przywróć bazę danych

Ten kod można również utworzyć za pomocą skryptów z programu SQL Server Management Studio. Jeśli dodasz ten kod do procedury składowanej, możesz łatwo wywołać go z innych procesów, a nawet z innych serwerów. Przenieśliśmy to do osobnego artykułu, aby omówić więcej opcji.

Więcej: Przywróć bazę danych z procedury składowanej

Author

Was this helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Polityka Cookiemapa strony

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Ustawienia na tej stronie są ustawione tak, że wszystkie pliki cookie. Mogą one być zmieniane na naszej polityki i ustawień strony z ciasteczkami. Dalsze korzystanie z tej strony, wyrażasz zgodę na korzystanie z plików cookie.
Ousia Logo
Logout
Ousia CMS Loader