Microsoft SQL Server 2008

Optymalizacja wydajności operacji tworzenia i przywracania kopii zapasowych w SQL Server 2008

Opublikowano: 17 lipca 2008

Zawartość strony
Zastosowanie wielu nośników lub urządzeń  Zastosowanie wielu nośników lub urządzeń
Optymalizacja wydajności procesu tworzenia pełnych i różnicowych kopii zapasowych  Optymalizacja wydajności procesu tworzenia pełnych i różnicowych kopii zapasowych
 Optymalizacja wydajności procesu tworzenia kopii zapasowych dziennika transakcji  Optymalizacja wydajności procesu tworzenia kopii zapasowych dziennika transakcji
Optymalizacja wydajności procesu przywracania  Optymalizacja wydajności procesu przywracania
Inicjalizacja pliku  Inicjalizacja pliku
Natychmiastowa inicjalizacja pliku  Natychmiastowa inicjalizacja pliku
 Optymalizacja wydajności taśmowego urządzenia do składowania kopii zapasowych  Optymalizacja wydajności taśmowego urządzenia do składowania kopii zapasowych
 Optymalizacja wydajności dyskowego urządzenia do składowania kopii zapasowych  Optymalizacja wydajności dyskowego urządzenia do składowania kopii zapasowych
Kompresja danych  Kompresja danych

 

Microsoft SQL Server 2008 oferuje następujące dwa sposoby przyśpieszania operacji tworzenia i przywracania kopii zapasowych:

  •  Wykorzystanie wielu urządzeń do składowania kopii zapasowych, umożliwia zapisywanie kopii zapasowych równolegle na wszystkich urządzeniach.

Szybkość urządzenia kopii zapasowych stanowi jedno z potencjalnych „wąskich gardeł” w przepływności procesu tworzenia kopii zapasowych. Zastosowanie wielu urządzeń pozwala zwiększyć przepływność proporcjonalnie do liczby wykorzystanych urządzeń. Kopia zapasowa może być również przywracana z wielu urządzeń równolegle.

  •  Wykorzystanie kombinacji kopii zapasowych pełnych, różnicowych oraz dziennika transakcji (dla modelu odzyskiwania Full lub Bulk-logged) w celu zminimalizowania czasu odzyskiwania.

Różnicowe kopie zapasowe bazy danych są zwykle szybsze w tworzeniu niż pełne kopie zapasowe i redukują rozmiar dziennika transakcji koniecznego do odzyskania bazy danych.

Zastosowanie wielu nośników lub urządzeń

Kopiowanie danych oraz dziennika transakcji z urządzeń, służących do przechowywania kopii zapasowych do plików bazy danych oraz dziennika transakcji jest realizowane przy użyciu wątków odczytywania/zapisywania. Do każdego urządzenia kopii zapasowej przydzielany jest jeden wątek. Wydajność jest ograniczona poprzez:

  •  możliwości urządzeń kopii zapasowych w zakresie dostarczania danych

  •  możliwości plików bazy danych oraz dziennika transakcji w zakresie akceptowania danych.

A zatem wydajność wzrasta wraz z liczbą urządzeń kopii zapasowych aż do osiągnięcia maksymalnej przepływności plików bazy danych oraz dziennika transakcji.

Wykorzystanie wielu urządzeń kopii zapasowych w operacjach tworzenia i przywracani kopii zapasowych, umożliwia serwerowi bazy danych, zastosowanie równoległych operacji I/O. Pozwala to zwiększyć tempo wykonywania operacji tworzenia i przywracania kopii zapasowych, ponieważ każde urządzenie kopii zapasowej może dokonywać zapisu lub odczytu w tym samym czasie, co pozostałe urządzenia kopii zapasowych. W przypadku korporacji z dużymi bazami danych, wykorzystanie wielu urządzeń kopii zapasowych pozwala znacznie zredukować czas realizacji operacji tworzenia i przywracania kopii zapasowych. SQL Server 2008 wspiera maksymalnie 64 urządzenia kopii zapasowych podczas jednej operacji tworzenia kopii zapasowej.

W trakcie zapisu kopii zapasowej na wielu urządzeniach występuje kilka punktów synchronizacji wewnętrznej. Najważniejszy z tych punktów pojawia się, gdy wszystkie dane w bazie danych są już zapisane w kopii zapasowej i za chwilę ma nastąpić proces tworzenia kopii zapasowej dziennika transakcji.

UWAGA:

Gdy operacja tworzenia kopii zapasowych jest realizowana przy użyciu wielu urządzeń kopii zapasowych, zastosowany nośnik kopii zapasowej może być wykorzystany tylko w operacjach tworzenia kopii zapasowych SQL Server  2008.  Więcej informacji na ten temat, można znaleźć w artykule Using Backup Media .

Proces tworzenia i przywracania kopii zapasowych w przypadku wykorzystania wielu urządzeń kopii zapasowych wygląda tak samo jak proces tworzenia i przywracania kopii zapasowych w przypadku wykorzystania pojedynczego urządzenia. Jedyna różnicą jest to, że trzeba określić wszystkie urządzenia kopii zapasowych wykorzystywane w operacji, a nie tylko jedno. Na przykład, jeśli kopia zapasowa bazy danych ma być tworzona z wykorzystaniem trzech taśmowych urządzeń do składowania kopii zapasowych, takich jak \\.\TAPE0, \\.\TAPE1 oraz \\.\TAPE2, każde z urządzeń taśmowych musi zostać określone, jako element operacji tworzenia kopii zapasowej, mimo iż do przywrócenia kopii zapasowej w przyszłości może wystarczyć mniejsza liczba taśmowych.

W przypadku tworzenia kopii zapasowej na wielu urządzeniach przy użyciu nośnika wymiennego, urządzenia kopii zapasowych mogą operować na różnych prędkościach, a woluminy nośników mogą oferować różną ilość dostępnego miejsca. Podczas operacji tworzenia kopii zapasowej, jeśli woluminowi nośnika na urządzeniu kopii zapasowej kończy się wolne miejsce, operacja zatrzymuje zapisywanie na tym urządzeniu i monituje o dostarczenie nowego woluminu nośnika. Dopóki wypełniony wolumin nośnika nie zostanie zastąpiony pustym woluminem, urządzenie to jest zablokowane. W międzyczasie operacja tworzenia kopii zapasowej kontynuuje zapisywanie danych na urządzeniach, których nośniki nadal oferują dostępne miejsce. Gdy wypełniony wolumin nośnika zostanie zastąpiony, jego urządzenie staje się dostępne i operacja tworzenia kopii zapasowej wznawia zapisywanie danych na tym urządzeniu. Jednak należy mieć świadomość, że jeśli w czasie, gdy urządzenie jest zablokowane, pojawi się punkt synchronizacji, operacja tworzenia kopii zapasowej zatrzyma się całkowicie, dopóki urządzenie znowu nie stanie się dostępne.

Przykład

Weźmy pod uwagę scenariusz, w którym trzy taśmowe urządzenia kopii zapasowych o równej prędkości służą do składowania pełnej kopii zapasowej bazy danych. Pierwsze dwie taśmy mają po 10 gigabajtów (GB) dostępnego obszaru, a na trzeciej dostępnych jest tylko 5 GB. Jeśli kopia zapasowa bazy danych o rozmiarze 20 GB będzie wykonywana na tych trzech taśmowych urządzeniach kopii zapasowych jednocześnie, trzecia taśma wypełni się przed zakończeniem procesu tworzenia kopii zapasowej. Po zapisaniu 5 GB danych na trzeciej taśmie proces tworzenia kopii zapasowej zatrzyma zapis na trzecim urządzeniu. Operacja zablokuje to urządzenie i poprosi o nową taśmę. W międzyczasie operacja tworzenia kopii zapasowej będzie kontynuowała zapisywanie danych na dwóch pozostałych urządzeniach. Jednak zanim trzecia taśma zostanie zastąpiona, może pojawić się punkt wewnętrznej synchronizacji. W tym momencie cała operacja tworzenia kopii zapasowej zostanie wstrzymana aż do czasu zamontowania nowej taśmy w trzecim urządzeniu.

  Do początku strony Do początku strony

Optymalizacja wydajności procesu tworzenia pełnych i różnicowych kopii zapasowych

Tworzenie pełnej lub różnicowej kopii zapasowej składa się z następujących etapów:

  1.  Kopiowanie danych z plików bazy danych na urządzenia kopii zapasowych.

  2.  Kopiowanie porcji dziennika transakcji potrzebnych do przeprowadzenia operacji „Roll forward” i sprowadzenia bazy danych do stanu spójnego z tymi urządzeniami kopii zapasowych.

Tworzenie różnicowej kopii zapasowej wygląda identycznie jak tworzenie pełnej kopii zapasowej, z tą różnicą, że kopiowane są tylko dane zmodyfikowane. Tworzenie kopii zapasowej pliku bazy danych składa się z prostych operacji kopiowania danych z pliku na urządzenia kopii zapasowych.

Pliki bazy danych wykorzystywane do składowania bazy danych są sortowane według urządzeń dyskowych, a do każdego z urządzeń przypisywany jest wątek odczytywania. Wątek odczytywania odczytuje dane z plików bazy danych. Ponadto do każdego urządzenia kopii zapasowej przypisywany jest wątek zapisywania. Wątek ten zapisuje dane na urządzeniu kopii zapasowej. Liczba równoległych operacji odczytu może zostać zwiększona poprzez rozmieszczenie plików bazy danych na większej ilości dysków logicznych. Podobnie liczbę równoległych operacji zapisu można zwiększyć, korzystając z dodatkowych urządzeń kopii zapasowych.

Generalnie wąskim gardłem będą pliki bazy danych lub urządzenia kopii zapasowych. Jeśli całkowita przepływność odczytu jest większa niż całkowita przepływność urządzenia kopii zapasowej, wąskie gardło znajdować się będzie po stronie urządzenia kopii zapasowych. Dodanie urządzeń kopii zapasowych (i kontrolerów SCSI, jeśli to konieczne) pozwala poprawić wydajność. Jednak jeśli całkowita przepływność urządzeń kopii zapasowych jest większa niż całkowita przepływność odczytu, należy zwiększyć przepływność odczytu, na przykład dodając więcej plików bazy danych lub urządzeń dyskowych (bądź dodając więcej dysków do urządzenia RAID).

  Do początku strony Do początku strony

Optymalizacja wydajności procesu tworzenia kopii zapasowych dziennika transakcji

Proces tworzenia kopii zapasowej dziennika transakcji sprowadza się do prostego skopiowania na urządzenie porcji dziennika, która nie została zawarta w kopii zapasowej. Chociaż dziennik transakcji może składać się w wielu plików, pod względem logicznym stanowi on jeden strumień i jest odczytywany sekwencyjnie przez jeden wątek.

Wątek zapisywania jest przypisywany do każdego urządzenia kopii zapasowej. Zwiększanie liczby urządzeń pozwala zwiększyć wydajność.

Wąskim gardłem może być urządzenie dyskowe zawierające pliki dziennika transakcji lub urządzenie kopii zapasowej, w zależności od ich względnej szybkości oraz liczby wykorzystywanych urządzeń kopii zapasowych. Dodawanie urządzeń kopii zapasowych powoduje skalowanie liniowe aż do osiągnięcia granicy możliwości urządzenia dyskowego zawierającego pliki dziennika transakcji. Od tego momentu żadna dalsza poprawa nie jest możliwa bez zwiększenia prędkości urządzeń dyskowych zawierających dziennik transakcji, na przykład przy użyciu mechanizmu Disk Striping.

  Do początku strony Do początku strony

Optymalizacja wydajności procesu przywracania

Przywracanie pełnej lub różnicowej kopii zapasowej bazy danych składa się z czterech etapów:

  1.  Stworzenia plików bazy danych oraz dziennika transakcji, o ile jeszcze nie istnieją.

  2.  Skopiowania danych z urządzeń kopii zapasowych do plików bazy danych.

  3.  Skopiowania dziennika transakcji z plików dziennika transakcji.

  4.  Przeprowadzenia operacji „Roll forward” przy użyciu dziennika transakcji, a następnie ponownego rozpoczęcia procesu odzyskiwania, o ile to konieczne.

Zastosowanie kopii zapasowej dziennika transakcji składa się z dwóch etapów:

  1.  Skopiowania danych z urządzeń kopii zapasowych do pliku dziennika transakcji.

  2.  Zastosowania dziennika transakcji.

Przywracanie pliku bazy danych składa się z dwóch etapów:

  1.  Stworzenia wszelkich brakujących plików bazy danych.

  2.  Skopiowania danych z urządzeń kopii zapasowych do plików bazy danych.

  Do początku strony Do początku strony

Inicjalizacja pliku

Jeśli pliki bazy danych oraz dziennika transakcji jeszcze nie istnieją, muszą zostać stworzone, zanim zostaną do nich przywrócone dane. Pliki bazy danych oraz dziennika transakcji są tworzone, a zawartość pliku jest inicjalizowana przy pomocy wartości zero. Osobne wątki robocze tworzą i inicjalizują pliki w sposób równoległy. Pliki bazy danych i dziennika transakcji są sortowane według urządzeń dyskowych i do każdego z tych urządzeń przypisywany jest osobny wątek roboczy. Ponieważ proces tworzenia i inicjalizowania plików wymaga bardzo wysokiej przepływności, równomierne rozmieszczenie plików między dostępnymi napędami logicznymi prowadzi do wyższej wydajności.

  Do początku strony Do początku strony

Natychmiastowa inicjalizacja pliku

W SQL Server 2005 i wersjach późniejszych pliki danych mogą być inicjalizowane natychmiastowo, umożliwiając szybkie wykonywanie operacji przywracania bazy danych lub grupy plików. Natychmiastowa inicjalizacja plików powoduje odzyskanie wykorzystywanego obszaru na dysku bez wypełniania go zerami. Zamiast tego zawartość dysku jest nadpisywana, gdy w plikach zapisywane są nowe dane. Inicjalizacja pliku dziennika nadal wymaga zerowania, ale będzie ono następowało równolegle z transferem danych z kopii zapasowej. Etap „Roll forward” w operacji przywracania nie rozpocznie się, dopóki wszystkie dane nie zostaną przetransferowane i cały dziennik nie zostanie zainicjalizowany.

Uwaga:

Natychmiastowa inicjalizacja pliku jest dostępna wyłącznie w systemach Microsoft Windows XP oraz Windows Server  2003.  

Aby wykorzystać natychmiastową inicjalizację pliku, trzeba uruchomić konto usługi MSSQLSERVER w kontekście konta systemu Windows i przypisać do tego konta specjalnie uprawnienie Windows SE_MANAGE_VOLUME_NAME. Uprawnienie to jest domyślnie przypisane do grupy administratorów systemu Windows. Administrator systemu może przypisać to uprawnienie, dodając konto systemu Windows do zasady zabezpieczeń Perform Volume Maintenance Tasks. Więcej informacji na temat przypisywania praw użytkowników znaleźć można w dokumentacji systemu Windows.

  Do początku strony Do początku strony

Optymalizacja wydajności taśmowego urządzenia do składowania kopii zapasowych

Kilka zmiennych czynników wpływa na wydajność taśmowego urządzenia kopii zapasowych i umożliwia w przybliżeniu liniowe skalowanie efektywności operacji tworzenia i przywracania kopii zapasowych SQL Server w wyniku dodawania nowych urządzeń taśmowych:

  •  Programowy rozmiar bloku danych.

  •  Liczba urządzeń taśmowych, które dzielą magistralę SCSI (Small Computer System Interface).

  •  Typ urządzenia taśmowego.

Programowy rozmiar bloku danych jest wyliczany przez SQL Server w celu optymalizacji wydajności i nie powinien być modyfikowany. Maksymalny BLOCKSIZE wynosi 64 KB.

Wiele napędów taśmowych o wysokiej wydajności działa efektywniej, gdy dla każdego wykorzystywanego napędu taśmowego dedykowana jest magistrala SCSI. Napędy, których macierzysta szybkość transferu przekracza 50 procent szybkości magistrali SCSI, muszą posiadać dedykowaną magistralę SCSI, aby uniknąć utraty wydajności. Więcej informacji na temat ustawień wpływających na wydajność napędu taśmowego znaleźć można w dokumentacji napędu taśmowego wybranego dostawcy.

UWAGA:

Nigdy nie należy umieszczać napędu taśmowego na tej samej magistrali SCSI co dyski lub napęd CD-ROM. Akcje obsługi błędów dla tych urządzeń nie są ze sobą zgodne.

W przypadku realizacji operacji tworzenia kopii zapasowych na załadowanej taśmie, można poprawić wydajność, określając opcję NOREWIND. Opcja ta powoduje, że SQL Server zachowuje taśmę lub taśmy otwarte po operacji tworzenia kopii zapasowej. NOREWIND implikuje NOUNLOAD.

  Do początku strony Do początku strony

Optymalizacja wydajności dyskowego urządzenia do składowania kopii zapasowych

Szybkość operacji I/O (bez przetwarzania dyskowego) urządzenia kopii zapasowej determinuje jego wydajność i umożliwia w przybliżeniu liniowe skalowanie wydajności operacji tworzenia i przywracania kopii zapasowych SQL Server w miarę dodawania nowych urządzeń dyskowych.

Decyzję o zastosowaniu systemu RAID dla dyskowego urządzenia kopii zapasowych należy podjąć z rozwagą. Na przykład RAID 5 posiada niską wydajność zapisu, w przybliżeniu tę samą co pojedynczy dysk (ze względu na konieczność przechowywania informacji o parzystości). Ponadto szybkość dołączania danych do pliku jest znacznie niższa niż szybkość nieprzetworzonego zapisu urządzenia.

Jeśli urządzenie kopii zapasowych zapewnia intensywne przeplatanie danych (ang. stripping), tak że maksymalna prędkość zapisu na urządzeniu kopii zapasowych znacznie przewyższa prędkość, z jaką dane mogą być dołączane do pliku, właściwym rozwiązaniem może być umieszczenie kilku logicznych urządzeń kopii zapasowych w tej samej macierzy. Innymi słowy wydajność procesu tworzenia kopii zapasowych można podnieść, umieszczając kilka rodzin nośników kopii zapasowych na tym samym logicznym napędzie. Jednak konieczne jest podejście empiryczne zmierzające do określenia, czy w danym środowisku rozwiązanie to przynosi korzyści czy szkody. Zazwyczaj lepiej jest umieścić każde urządzenie kopii zapasowej na osobnym urządzeniu dyskowym.

Zasadniczo w magistrali SCSI tylko kilka dysków może działać z maksymalną prędkością, chociaż magistrale Ultra-wide oraz Ultra-2 pozwalają na więcej. Jednak najprawdopodobniej do osiągnięcia optymalnej wydajności konieczna będzie uważna konfiguracja sprzętu.

Więcej informacji na temat ustawień, które wpływają na wydajność dysku, znaleźć można w dokumentacji zapewnianej przez dostawcę dysku.

  Do początku strony Do początku strony

Kompresja danych

Nowoczesne napędy taśmowe posiadają wbudowaną sprzętową funkcję kompresji danych, która pozwala znacznie zwiększyć efektywność transferu danych na obszar napędu. Możliwości kompresji rzeczywistych danych w bazie danych zależą od samych danych oraz od wykorzystywanego napędu taśmowego. Typowe współczynniki kompresji danych dla szerokiego zakresu baz danych wahają się od 1.2:1 do 2:1.Ten współczynnik kompresji jest typowy dla danych w wielu różnych aplikacjach biznesowych, chociaż niektóre bazy danych mogą charakteryzować się wyższymi lub niższymi współczynnikami kompresji. Na przykład napędy taśmowe nie mogą dodatkowo skompresować bazy danych zawierającej głównie obrazy, które są już skompresowane. Więcej informacji na temat kompresji danych znaleźć można w dokumentacji zapewnianej przez dostawcę napędu dyskowego.

Domyślnie SQL Server wspiera kompresję sprzętową, choć procedura ta może zostać wyłączona przy pomocy flagi śledzenia 3205. Wyłączenie kompresji sprzętowej może w rzadkich przypadkach spowodować poprawę wydajności. Na przykład wtedy, gdy dane są już w pełni skompresowane, dzięki wyłączeniu kompresji sprzętowej napęd taśmowy nie traci czasu na próby dodatkowego skompresowania danych.

Więcej informacji na temat flag śledzenia znaleźć można w artykule Trace Flags (Transact-SQL) .

Ilość danych przenoszonych na taśmę

Tworzenie kopii zapasowej pełnej lub różnicowej wiążę się z przechwyceniem tylko tej części bazy danych, która zawiera prawdziwe dane. Niewykorzystywany obszar nie wchodzi w skład kopii zapasowej. Wynikiem są szybsze operacje tworzenia kopii zapasowych.

Chociaż bazy danych SQL Server mogą zostać skonfigurowane tak, aby ich rozmiar automatycznie wzrastał w zależności od potrzeb, można nadal rezerwować miejsce w bazie danych, aby mieć pewność, że miejsce to będzie dostępne. Rezerwacja miejsca w bazie danych nie wpływa ujemnie na przepływność procesu tworzenia kopii zapasowej ani na ogólny czas potrzebny do stworzenia kopii zapasowej bazy danych.

Optymalizacja synchronizacji w funkcji Log Shipping

Podczas próby zsynchronizowania lokalizacji docelowych funkcji Log Shipping nie trzeba wykorzystywać opcji WITH STANDBY między etapami RESTORE LOG.

  Do początku strony Do początku strony

 


Microsoft SQL Server 2008