Tworzenie kopii zapasowej maszyny wirtualnej z programem SQL Server

Ukończone

Usługa Azure Backup może tworzyć kopie zapasowe maszyn wirtualnych zawierających program SQL Server. Te kopie zapasowe będą zawierać nie tylko bazy danych programu SQL Server; będą one zawierać wszystkie elementy, które znajdują się na maszynie wirtualnej, aby można je było przywrócić jako całość. Chociaż ta opcja może nie być odpowiednia dla wszystkich, może ona potencjalnie chronić przed problemami, takimi jak oprogramowanie wymuszającego okup.

Kopie zapasowe na poziomie maszyny wirtualnej są oparte na programie SQL Server, znane również jako rozpoznawanie aplikacji, dzięki czemu będą tworzyć spójną na poziomie aplikacji kopię zapasową. Oznacza to, że jeśli przywrócisz kopię zapasową na poziomie maszyny wirtualnej, program SQL Server nie zostanie "przerwany". Jeśli używasz tej opcji, podczas wyszukiwania w dzienniku programu SQL Server zobaczysz, że we/wy zostały chwilowo zamrożone, a następnie uruchamia się ponownie po zakończeniu. Jeśli spowoduje to problemy z funkcjami dostępności, takimi jak grupy zabezpieczeń, warto rozważyć inną strategię tworzenia kopii zapasowych.

Łączenie kopii zapasowych programu SQL Server z migawkami może potencjalnie powodować problemy. Jeśli opóźnienia migawki powodują błędy tworzenia kopii zapasowej, ustaw następujący klucz rejestru:

[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT]

"USEVSSCOPYBACKUP"="TRUE"

Używanie dysków lokalnych lub udziału sieciowego na potrzeby plików kopii zapasowych

Podobnie jak w przypadku lokalnych wystąpień programu SQL Server, kopie zapasowe baz danych można wykonywać na dyskach dołączonych do maszyny wirtualnej lub do udziałów sieciowych (w tym udziału plików na platformie Azure o nazwie Azure Files), do których ma dostęp program SQL Server. Jeśli tworzysz kopię zapasową dysków lokalnych na maszynie wirtualnej, upewnij się, że nie są one zapisywane w magazynie efemerycznym, który zostanie wymazany po zamknięciu lub ponownym uruchomieniu. Warto również upewnić się, że kopie zapasowe są kopiowane do drugiej lokalizacji, aby nie tworzyć pojedynczego punktu awarii.

Tworzenie kopii zapasowych baz danych i przywracanie ich z adresu URL

Inną opcją jest skonfigurowanie kopii zapasowej pod adresem URL wystąpienia programu SQL Server zainstalowanego na maszynie wirtualnej. W przeciwieństwie do kopii zapasowych lokalnych, tworzenie kopii zapasowych i przywracanie z adresu URL dla maszyny wirtualnej IaaS jest w rzeczywistości opcją lokalną.

Tworzenie kopii zapasowej pod adresem URL wymaga konta usługi Azure Storage i korzysta z usługi Azure Blob Storage. Na koncie magazynu znajdują się kontenery, a obiekty blob są tam przechowywane. W przeciwieństwie do ścieżki na dysku lokalnym ścieżka do pliku kopii zapasowej będzie wyglądać mniej więcej tak: https://ACCOUNTNAME.blob.core.windows.net/ContainerName/MyDatabase.bak. Możesz dołączyć więcej nazw folderów w kontenerze, aby ułatwić identyfikację kopii zapasowych (na przykład PEŁNY, DIFF, LOG).

Aby utworzyć kopię zapasową lub przywrócić z adresu URL, należy ustanowić uwierzytelnianie między wystąpieniem programu SQL Server i platformą Azure. Pamiętaj, że wewnątrz maszyny wirtualnej platformy Azure program SQL Server nie wie, że działa na platformie Azure. Poświadczenia programu SQL Server mogą składać się z nazwy konta usługi Azure Storage i uwierzytelniania klucza dostępu lub sygnatury dostępu współdzielonego. Jeśli ten pierwszy jest używany, kopia zapasowa będzie przechowywana jako stronicowy obiekt blob, a jeśli ten ostatni, będzie przechowywany jako blokowy obiekt blob. Począwszy od programu SQL Server 2016, dostępny jest tylko blokowy obiekt blob, więc należy użyć sygnatury dostępu współdzielonego. Z perspektywy kosztów blokowe obiekty blob są również tańsze, a tokeny sygnatury dostępu współdzielonego oferują lepszą kontrolę zabezpieczeń.

Przywracanie z adresu URL jest tak proste, jak przywracanie z dysku lub udziału sieciowego. W interfejsie użytkownika programu SQL Server Management Studio wybierz pozycję Adres URL z typu nośnika kopii zapasowej w Kreatorze. Jeśli używasz języka Transact-SQL, zamiast używać opcji FROM DISK, użyj adresu URL FROM z odpowiednią lokalizacją i nazwami plików kopii zapasowych. Oto kilka przykładowych instrukcji:

Poniższa instrukcja utworzy kopię zapasową dziennika transakcji.

BACKUP LOG contoso 
TO URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso202003271200.trn' 

Poniższa instrukcja spowoduje przywrócenie pełnej kopii zapasowej bazy danych bez jej odzyskania, aby można było zastosować różnicowe lub transakcyjne kopie zapasowe dziennika.

RESTORE DATABASE contoso 
FROM URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso20200327.bak' 
WITH NORECOVERY

Automatyczne kopie zapasowe przy użyciu dostawcy zasobów programu SQL Server

Każda maszyna wirtualna IaaS z zainstalowanym programem SQL Server może używać dostawcy zasobów programu SQL Server. Jedną z jego opcji jest możliwość skonfigurowania automatycznych kopii zapasowych, dzięki czemu platforma Azure zajmuje się tworzeniem kopii zapasowych baz danych programu SQL Server. Wymaga użycia konta magazynu.

Jedną z zalet implementacji kopii zapasowych w ten sposób jest możliwość zarządzania czasem przechowywania kopii zapasowych. Kolejną korzyścią jest to, że można zapewnić cel punktu odzyskiwania z powodu możliwości tworzenia kopii zapasowych dziennika bazy danych i transakcji w jednym łatwym do skonfigurowania miejscu. Na poniższej ilustracji przedstawiono przykład konfigurowania automatycznej kopii zapasowej w witrynie Azure Portal.

Configuring automated backups for SQL Server in a VM in the Azure portal

Opcja automatycznej kopii zapasowej jest obecnie dostępna tylko dla instalacji programu SQL Server opartych na systemie Windows Server.

Ważne

Wybierz jedną z metod tworzenia kopii zapasowych baz danych przy użyciu wdrożeń programu SQL Server opartych na usłudze IaaS. Jeśli na przykład używasz automatycznych kopii zapasowych, zwłaszcza w przypadku kopii zapasowych dziennika transakcji, nie należy również konfigurować tych na poziomie wystąpienia wewnątrz maszyny wirtualnej. Może to spowodować problemy z łańcuchem dzienników z przywracaniem bazy danych, jeśli elementy są niezwiązane, ponieważ każda kopia zapasowa dziennika czyści dziennik i musi mieć cały niezwiązany łańcuch kopii zapasowych dziennika w celu wykonania przywracania dziennika. Jeśli na przykład kopie zapasowe dziennika transakcji są wykonywane wewnątrz gościa, a także na poziomie platformy Azure, może być konieczne utworzenie kopii zapasowych w celu wykonania przywracania.

Chociaż kopie zapasowe można zautomatyzować, przywracanie nie może być. Należy skonfigurować i użyć funkcji przywracania z adresu URL w programie SQL Server.