Automatyczna kopia zapasowa maszyn wirtualnych platformy Azure (Resource Manager)

Dotyczy:SQL Server na maszynie wirtualnej platformy Azure

Automatyczna kopia zapasowa automatycznie konfiguruje zarządzaną kopię zapasową na platformie Microsoft Azure dla wszystkich istniejących i nowych baz danych na maszynie wirtualnej platformy Azure z programem SQL Server 2016 lub nowszym wersją Standard, Enterprise lub Developer. Dzięki temu można skonfigurować regularne kopie zapasowe bazy danych korzystające z trwałej usługi Azure Blob Storage. Automatyczne tworzenie kopii zapasowej zależy od rozszerzenia agenta infrastruktury programu SQL Server jako usługi (IaaS).

Wymagania wstępne

Aby użyć zautomatyzowanej kopii zapasowej, zapoznaj się z następującymi wymaganiami wstępnymi:

System operacyjny:

  • Windows Server 2012 R2 lub nowszy

Wersja/wydanie programu SQL Server:

  • SQL Server 2016 lub nowszy: Developer, Standard lub Enterprise

Konfiguracja bazy danych:

  • Docelowe bazy danych użytkowników muszą używać pełnego modelu odzyskiwania. Systemowe bazy danych nie muszą używać pełnego modelu odzyskiwania. Jeśli jednak wymagane jest utworzenie kopii zapasowych dziennika dla model programu lub msdb, należy użyć pełnego modelu odzyskiwania. Aby uzyskać więcej informacji na temat wpływu pełnego modelu odzyskiwania na kopie zapasowe, zobacz Tworzenie kopii zapasowych w ramach pełnego modelu odzyskiwania.
  • Maszyna wirtualna z programem SQL Server została zarejestrowana w rozszerzeniu agenta IaaS SQL i włączono funkcję zautomatyzowanej kopii zapasowej . Ponieważ automatyczna kopia zapasowa opiera się na rozszerzeniu, automatyczna kopia zapasowa jest obsługiwana tylko w docelowych bazach danych z wystąpienia domyślnego lub w jednym nazwanym wystąpieniu. Jeśli nie ma wystąpienia domyślnego, a wiele nazwanych wystąpień, rozszerzenie agenta IaaS SQL zakończy się niepowodzeniem, a automatyczna kopia zapasowa nie będzie działać.

Ustawienia

W poniższej tabeli opisano opcje, które można skonfigurować na potrzeby automatycznej kopii zapasowej. Rzeczywiste kroki konfiguracji różnią się w zależności od tego, czy używasz witryny Azure Portal, czy poleceń programu Azure Windows PowerShell. Automatyczna kopia zapasowa domyślnie używa kompresji kopii zapasowej i nie można jej wyłączyć.

Ustawienia podstawowe

Ustawienie Zakres (wartość domyślna) opis
Automatyczne kopie zapasowe Włączanie/wyłączanie (wyłączone) Włącza lub wyłącza automatyczną kopię zapasową dla maszyny wirtualnej platformy Azure z uruchomionym programem SQL Server 2016 lub nowszym deweloperem, standardem lub przedsiębiorstwem.
Okres przechowywania 1–90 dni (90 dni) Liczba dni przechowywania kopii zapasowych.
Konto magazynu Konto magazynu Azure Konto usługi Azure Storage do przechowywania plików automatycznej kopii zapasowej w magazynie obiektów blob. Kontener jest tworzony w tej lokalizacji do przechowywania wszystkich plików kopii zapasowych. Konwencja nazewnictwa plików kopii zapasowych obejmuje identyfikator GUID daty, godziny i bazy danych.
Szyfrowanie Włączanie/wyłączanie (wyłączone) Włącza lub wyłącza szyfrowanie kopii zapasowych. Po włączeniu szyfrowania kopii zapasowej certyfikaty używane do przywracania kopii zapasowej znajdują się na określonym koncie magazynu w tym samym automaticbackup kontenerze przy użyciu tej samej konwencji nazewnictwa. Jeśli hasło ulegnie zmianie, zostanie wygenerowany nowy certyfikat z tym hasłem, ale stary certyfikat pozostanie do przywrócenia poprzednich kopii zapasowych.
Hasło Tekst hasła Hasło dla kluczy szyfrowania. To hasło jest wymagane tylko w przypadku włączenia szyfrowania. Aby przywrócić zaszyfrowaną kopię zapasową, musisz mieć poprawne hasło i powiązany certyfikat, który był używany podczas tworzenia kopii zapasowej.

Ustawienia zaawansowane

Ustawienie Zakres (wartość domyślna) opis
Kopie zapasowe bazy danych systemu Włączanie/wyłączanie (wyłączone) Po włączeniu ta funkcja wykonuje również kopię zapasową systemowych baz danych: master, msdbi model. msdb W przypadku baz danych i model sprawdź, czy znajdują się one w modelu pełnego odzyskiwania, jeśli chcesz utworzyć kopie zapasowe dzienników. Kopie zapasowe dzienników nigdy nie są tworzone dla masterprogramu , a żadne kopie zapasowe nie są tworzone dla programu tempdb.
Harmonogram tworzenia kopii zapasowych Ręczne/zautomatyzowane (zautomatyzowane) Domyślnie harmonogram tworzenia kopii zapasowych jest automatycznie określany na podstawie wzrostu dziennika. Harmonogram ręcznej kopii zapasowej umożliwia użytkownikowi określenie przedziału czasu dla kopii zapasowych. W takim przypadku kopie zapasowe są wykonywane tylko z określoną częstotliwością i w określonym przedziale czasu danego dnia.
Częstotliwość tworzenia pełnej kopii zapasowej Codziennie/co tydzień Częstotliwość tworzenia pełnych kopii zapasowych. W obu przypadkach pełne kopie zapasowe rozpoczynają się w następnym zaplanowanym przedziale czasu. Po wybraniu cotygodniowych kopii zapasowych kopie zapasowe mogą trwać wiele dni, dopóki wszystkie bazy danych nie zostaną pomyślnie utworzone.
Godzina rozpoczęcia pełnej kopii zapasowej 00:00 – 23:00 (01:00) Godzina rozpoczęcia danego dnia, w którym mogą być wykonywane pełne kopie zapasowe.
Okno pełnej kopii zapasowej 1 – 23 godziny (1 godzina) Czas trwania przedziału czasu danego dnia, w którym mogą być wykonywane pełne kopie zapasowe.
Częstotliwość tworzenia kopii zapasowych dzienników 5 – 60 minut (60 minut) Częstotliwość tworzenia kopii zapasowych dzienników.

Opis pełnej częstotliwości tworzenia kopii zapasowych

Ważne jest, aby zrozumieć różnicę między codziennymi i cotygodniowymi pełnymi kopiami zapasowymi. Rozważmy następujące dwa przykładowe scenariusze.

Scenariusz 1. Cotygodniowe kopie zapasowe

Masz maszynę wirtualną z programem SQL Server, która zawiera wiele dużych baz danych.

W poniedziałek włączysz automatyczną kopię zapasową z następującymi ustawieniami:

  • Harmonogram tworzenia kopii zapasowych: ręczne
  • Częstotliwość tworzenia pełnej kopii zapasowej: Co tydzień
  • Godzina rozpoczęcia pełnej kopii zapasowej: 01:00
  • Okno czasu tworzenia pełnej kopii zapasowej: 1 godzina

Oznacza to, że następne dostępne okno kopii zapasowej jest wtorek o godzinie 1:00 przez 1 godzinę. W tym czasie automatyczna kopia zapasowa rozpoczyna tworzenie kopii zapasowych baz danych pojedynczo. W tym scenariuszu bazy danych są wystarczająco duże, aby pełne kopie zapasowe zostały ukończone dla pierwszych kilku baz danych. Jednak po godzinie nie wszystkie bazy danych zostały utworzone.

W takim przypadku automatyczna kopia zapasowa rozpoczyna tworzenie kopii zapasowych pozostałych baz danych następnego dnia, środa o godzinie 1:00 przez jedną godzinę. Jeśli nie wszystkie bazy danych zostały utworzone w tym czasie, zostanie podjęta próba ponownego następnego dnia w tym samym czasie. Trwa to do momentu pomyślnego utworzenia kopii zapasowej wszystkich baz danych.

Po ponownym osiągnięciu wtorku automatyczne tworzenie kopii zapasowej rozpoczyna tworzenie kopii zapasowych wszystkich baz danych.

W tym scenariuszu pokazano, że automatyczna kopia zapasowa działa tylko w określonym przedziale czasu, a każda baza danych jest wykonywana co tydzień. Pokazuje to również, że kopie zapasowe mogą obejmować wiele dni w przypadku, gdy nie można ukończyć wszystkich kopii zapasowych w ciągu jednego dnia.

Scenariusz 2. Codzienne kopie zapasowe

Masz maszynę wirtualną z programem SQL Server, która zawiera wiele dużych baz danych.

W poniedziałek włączysz automatyczną kopię zapasową z następującymi ustawieniami:

  • Harmonogram tworzenia kopii zapasowych: ręczne
  • Częstotliwość tworzenia pełnej kopii zapasowej: codziennie
  • Godzina rozpoczęcia pełnej kopii zapasowej: 22:00
  • Przedział czasu tworzenia pełnej kopii zapasowej: 6 godzin

Oznacza to, że następne dostępne okno kopii zapasowej jest w poniedziałek o godzinie 10:00 przez 6 godzin. W tym czasie automatyczna kopia zapasowa rozpoczyna tworzenie kopii zapasowych baz danych pojedynczo.

Następnie we wtorek o godzinie 10 przez 6 godzin pełne kopie zapasowe wszystkich baz danych zaczynają się ponownie.

Ważne

Kopie zapasowe są wykonywane sekwencyjnie w każdym interwale. W przypadku wystąpień z dużą liczbą baz danych zaplanuj interwał tworzenia kopii zapasowej z wystarczającą ilością czasu, aby uwzględnić wszystkie kopie zapasowe. Jeśli kopie zapasowe nie mogą zostać ukończone w danym interwale, niektóre kopie zapasowe mogą zostać pominięte, a czas między kopiami zapasowymi pojedynczej bazy danych może być wyższy niż skonfigurowany czas interwału kopii zapasowej, co może negatywnie wpłynąć na cel punktu przywracania (RPO).

Konfigurowanie nowych maszyn wirtualnych

Użyj witryny Azure Portal, aby skonfigurować automatyczną kopię zapasową podczas tworzenia nowej maszyny z programem SQL Server 2016 lub nowszym w modelu wdrażania usługi Resource Manager.

Na karcie Ustawienia programu SQL Server wybierz pozycję Włącz w obszarze Automatyczna kopia zapasowa. Po włączeniu automatycznej kopii zapasowej można skonfigurować następujące ustawienia:

  • Okres przechowywania kopii zapasowych (do 90 dni)
  • Konto magazynu i kontener magazynu do użycia na potrzeby kopii zapasowych
  • Opcja szyfrowania i hasło dla kopii zapasowych
  • Bazy danych systemu tworzenia kopii zapasowych
  • Konfigurowanie harmonogramu tworzenia kopii zapasowych

Aby zaszyfrować kopię zapasową, wybierz pozycję Włącz. Następnie określ ustawienie Hasło. Platforma Azure tworzy certyfikat do szyfrowania kopii zapasowych i używa określonego hasła do ochrony tego certyfikatu.

Wybierz pozycję Wybierz kontener magazynu, aby określić kontener, w którym chcesz przechowywać kopie zapasowe.

Domyślnie harmonogram jest ustawiany automatycznie, ale możesz utworzyć własny harmonogram, wybierając pozycję Ręcznie, co umożliwia skonfigurowanie częstotliwości tworzenia kopii zapasowych, przedziału czasu tworzenia kopii zapasowej i częstotliwości tworzenia kopii zapasowej dziennika w minutach.

Poniższy zrzut ekranu witryny Azure Portal przedstawia ustawienia automatycznej kopii zapasowej podczas tworzenia nowej maszyny wirtualnej z programem SQL Server:

Zrzut ekranu przedstawiający konfigurację zautomatyzowanej kopii zapasowej w witrynie Azure Portal.

Konfigurowanie istniejących maszyn wirtualnych

W przypadku istniejących maszyn wirtualnych programu SQL Server przejdź do zasobu maszyn wirtualnych SQL, a następnie wybierz pozycję Kopie zapasowe, aby skonfigurować automatyczne kopie zapasowe.

Wybierz pozycję Włącz , aby skonfigurować ustawienia automatycznej kopii zapasowej.

Możesz skonfigurować okres przechowywania (do 90 dni), kontener dla konta magazynu, w którym chcesz przechowywać kopie zapasowe, a także szyfrowanie i harmonogram tworzenia kopii zapasowych. Domyślnie harmonogram jest zautomatyzowany.

Zrzut ekranu przedstawiający automatyczne tworzenie kopii zapasowych dla istniejących maszyn wirtualnych w portalu.

Jeśli chcesz ustawić własny harmonogram tworzenia kopii zapasowych, wybierz pozycję Ręczne i skonfiguruj częstotliwość tworzenia kopii zapasowych, niezależnie od tego, czy chcesz utworzyć kopię zapasową systemowych baz danych, oraz interwał tworzenia kopii zapasowej dziennika transakcji w minutach.

Zrzut ekranu przedstawiający wybieranie ręcznego konfigurowania własnego harmonogramu tworzenia kopii zapasowych.

Po zakończeniu wybierz przycisk Zastosuj w dolnej części strony Ustawienia kopii zapasowych , aby zapisać zmiany.

Jeśli po raz pierwszy włączasz automatyczną kopię zapasową, platforma Azure konfiguruje agenta IaaS programu SQL Server w tle. W tym czasie witryna Azure Portal może nie pokazywać, że skonfigurowano automatyczną kopię zapasową. Poczekaj kilka minut, aż agent zostanie zainstalowany, skonfigurowany. Następnie witryna Azure Portal będzie odzwierciedlać nowe ustawienia.

Konfigurowanie przy użyciu programu PowerShell

Program PowerShell umożliwia skonfigurowanie automatycznej kopii zapasowej. Przed rozpoczęciem należy wykonać następujące czynności:

Uwaga

W tym artykule użyto modułu Azure Az programu PowerShell, który jest zalecanym modułem programu PowerShell do interakcji z platformą Azure. Aby rozpocząć pracę z modułem Azure PowerShell, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Instalowanie rozszerzenia IaaS programu SQL Server

Jeśli aprowizowana maszyna wirtualna programu SQL Server z witryny Azure Portal, rozszerzenie IaaS programu SQL Server powinno być już zainstalowane. Możesz określić, czy maszyna wirtualna jest zainstalowana, wywołując polecenie Get-AzVM i sprawdzając właściwość Extensions .

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(Get-AzVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions 

Jeśli zainstalowano rozszerzenie agenta IaaS programu SQL Server, powinno zostać wyświetlone jako "SqlIaaSAgent" lub "SQLIaaSExtension". Wartość ProvisioningState dla rozszerzenia powinna również zawierać wartość "Powodzenie".

Jeśli nie został zainstalowany lub nie można go aprowizować, możesz zainstalować go za pomocą następującego polecenia. Oprócz nazwy maszyny wirtualnej i grupy zasobów należy również określić region ($region), w którym znajduje się maszyna wirtualna.

$region = "EASTUS2"
Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region 

Weryfikowanie bieżących ustawień

Jeśli podczas aprowizacji włączono automatyczną kopię zapasową, możesz użyć programu PowerShell, aby sprawdzić bieżącą konfigurację. Uruchom polecenie Get-AzVMSqlServerExtension i sprawdź właściwość AutoBackup Ustawienia:

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

Enable                      : True
EnableEncryption            : False
RetentionPeriod             : 30
StorageUrl                  : https://test.blob.core.windows.net/
StorageAccessKey            :  
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : Manual
FullBackupFrequency         : WEEKLY
FullBackupStartTime         : 2
FullBackupWindowHours       : 2
LogBackupFrequency          : 60

Jeśli dane wyjściowe pokazują, że ustawienie Włącz ma wartość False, musisz włączyć automatyczną kopię zapasową. Dobrą wiadomością jest włączenie i skonfigurowanie automatycznej kopii zapasowej w taki sam sposób. Aby uzyskać te informacje, zobacz następną sekcję.

Uwaga

Jeśli ustawienia są sprawdzane natychmiast po wprowadzeniu zmiany, możliwe, że odzyskasz stare wartości konfiguracji. Poczekaj kilka minut i ponownie sprawdź ustawienia, aby upewnić się, że zmiany zostały zastosowane.

Konfigurowanie automatycznej kopii zapasowej

Program PowerShell umożliwia włączanie automatycznej kopii zapasowej oraz modyfikowanie jej konfiguracji i zachowania w dowolnym momencie.

Najpierw wybierz lub utwórz konto magazynu dla plików kopii zapasowej. Poniższy skrypt wybiera konto magazynu lub tworzy je, jeśli nie istnieje.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

Uwaga

Automatyczna kopia zapasowa nie obsługuje przechowywania kopii zapasowych w magazynie w warstwie Premium, ale może wykonywać kopie zapasowe z dysków maszyn wirtualnych korzystających z usługi Premium Storage.

Jeśli chcesz użyć niestandardowego kontenera na koncie magazynu dla kopii zapasowych, użyj następującego skryptu, aby sprawdzić kontener lub utworzyć go, jeśli nie istnieje.

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

Następnie użyj następującego skryptu, aby uzyskać klucz dostępu dla konta magazynu:

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

Następnie użyj polecenia Update-AzSqlVM , aby włączyć i skonfigurować ustawienia automatycznej kopii zapasowej do przechowywania kopii zapasowych na koncie usługi Azure Storage. W tym przykładzie kopie zapasowe są przechowywane przez 10 dni. Kopie zapasowe bazy danych systemu są włączone. Pełne kopie zapasowe są zaplanowane w każdą sobotę (co tydzień) z oknem czasu rozpoczynającym się o godzinie 20:00 przez dwie godziny. Kopie zapasowe dzienników są zaplanowane co 30 minut.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly 
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

Zainstalowanie i skonfigurowanie agenta IaaS programu SQL Server może potrwać kilka minut.

Aby włączyć szyfrowanie, zmodyfikuj poprzedni skrypt, aby przekazać parametr -AutoBackupSettingEnableEncryption wraz z hasłem (ciąg bezpieczny) dla parametru -AutoBackupSettingPassword . Poniższy skrypt włącza ustawienia automatycznej kopii zapasowej w poprzednim przykładzie i dodaje szyfrowanie.

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly `
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

Aby potwierdzić zastosowanie ustawień, sprawdź konfigurację automatycznej kopii zapasowej.

Wyłączanie automatycznej kopii zapasowej

Aby wyłączyć automatyczną kopię zapasową, uruchom ten sam skrypt z parametrem -AutoBackupSettingEnable ustawionym na $false w poleceniu Update-AzSqlVM . Ustawiając wartość na $false funkcja jest wyłączona. Podobnie jak w przypadku instalacji, wyłączenie automatycznej kopii zapasowej może potrwać kilka minut.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

Przykładowy skrypt

Poniższy skrypt zawiera zestaw zmiennych, które można dostosować, aby włączyć i skonfigurować automatyczną kopię zapasową dla maszyny wirtualnej. W twoim przypadku może być konieczne dostosowanie skryptu na podstawie wymagań. Na przykład należy wprowadzić zmiany, jeśli chcesz wyłączyć tworzenie kopii zapasowych systemowych baz danych lub włączyć szyfrowanie.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10
$backupscheduletype = "Manual"
$fullbackupfrequency = "Weekly"
$fullbackupdayofweek = "Saturday"
$fullbackupstarthour = "20"
$fullbackupwindow = "2"
$logbackupfrequency = "30"

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension 

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType $backupscheduletype `
-AutoBackupSettingFullBackupFrequency $fullbackupfrequency `
-AutoBackupSettingDaysOfWeek $fullbackupdayofweek `
-AutoBackupSettingFullBackupStartTime $fullbackupstarthour `
-AutoBackupSettingFullBackupWindowHour $fullbackupwindow `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingLogBackupFrequency $logbackupfrequency `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

Tworzenie kopii zapasowej przy użyciu certyfikatów szyfrowania

Jeśli zdecydujesz się zaszyfrować kopie zapasowe, certyfikat szyfrowania zostanie wygenerowany i zapisany na tym samym koncie magazynu co kopie zapasowe. W tym scenariuszu należy również wprowadzić hasło, które będzie używane do ochrony certyfikatów szyfrowania używanych do szyfrowania i odszyfrowywania kopii zapasowych. Pozwala to nie martwić się o kopie zapasowe poza konfiguracją tej funkcji, a także gwarantuje, że kopie zapasowe są bezpieczne.

Po włączeniu szyfrowania kopii zapasowych zdecydowanie zalecamy sprawdzenie, czy certyfikat szyfrowania został pomyślnie utworzony i przekazany w celu zapewnienia możliwości przywracania baz danych. Możesz to zrobić, tworząc bazę danych od razu i sprawdzając, czy certyfikaty i dane szyfrowania zostały prawidłowo utworzone do nowo utworzonego kontenera. Spowoduje to wyświetlenie, że wszystko zostało poprawnie skonfigurowane i nie wystąpiły żadne anomalie.

Jeśli nie można przekazać certyfikatu z jakiegoś powodu, możesz użyć menedżera certyfikatów do wyeksportowania certyfikatu i zapisania go. Nie chcesz jednak zapisywać go na tej samej maszynie wirtualnej, ponieważ nie zapewnia to dostępu do certyfikatu, gdy maszyna wirtualna nie działa. Aby dowiedzieć się, czy kopia zapasowa certyfikatu została prawidłowo utworzona po zmianie lub utworzeniu konfiguracji automatycznej kopii zapasowej, możesz sprawdzić dzienniki zdarzeń na maszynie wirtualnej i jeśli nie powiodło się, zostanie wyświetlony następujący komunikat o błędzie:

Zrzut ekranu przedstawiający komunikat o błędzie wyświetlany w dzienniku zdarzeń na maszynie wirtualnej.

Jeśli kopia zapasowa certyfikatów została utworzona poprawnie, ten komunikat zostanie wyświetlony w dziennikach zdarzeń:

Zrzut ekranu przedstawiający pomyślną kopię zapasową certyfikatu szyfrowania w dziennikach zdarzeń.

Ogólnie rzecz biorąc, zaleca się sprawdzenie kondycji kopii zapasowych od czasu do czasu. Aby można było przywrócić kopie zapasowe, należy wykonać następujące czynności:

  1. Upewnij się, że utworzono kopię zapasową certyfikatów szyfrowania i pamiętasz hasło. Jeśli tego nie zrobisz, nie będzie można odszyfrować i przywrócić kopii zapasowych. Jeśli z jakiegoś powodu certyfikaty nie zostały prawidłowo utworzone, możesz to zrobić ręcznie, wykonując następujące zapytanie T-SQL:

    BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password>
    BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
    
  2. Upewnij się, że pliki kopii zapasowej są przekazywane z co najmniej 1 pełną kopią zapasową. Ze względu na to, że wystąpiły błędy, należy mieć pewność, że przed usunięciem maszyny wirtualnej zawsze masz co najmniej jedną pełną kopię zapasową lub jeśli maszyna wirtualna zostanie uszkodzona, więc wiesz, że nadal możesz uzyskać dostęp do danych. Przed usunięciem dysków danych maszyny wirtualnej upewnij się, że tworzenie kopii zapasowej w magazynie jest bezpieczne i możliwe do odzyskania.

Monitorowanie

Aby monitorować automatyczną kopię zapasową w programie SQL Server 2016 lub nowszym, dostępne są dwie główne opcje. Ponieważ automatyczna kopia zapasowa korzysta z funkcji zarządzanej kopii zapasowej programu SQL Server, te same techniki monitorowania mają zastosowanie do obu tych metod.

Najpierw możesz sondować stan, wywołując metodę msdb.managed_backup.sp_get_backup_diagnostics. Możesz też wysłać zapytanie do funkcji msdb.managed_backup.fn_get_health_status table-valued.

Inną opcją jest skorzystanie z wbudowanej funkcji Poczta bazy danych dla powiadomień.

  1. Wywołaj procedurę składowaną msdb.managed_backup.sp_set_parameter , aby przypisać adres e-mail do parametru SSMBackup2WANotificationEmailIds .
  2. Włącz usługę SendGrid, aby wysyłać wiadomości e-mail z maszyny wirtualnej platformy Azure.
  3. Użyj serwera SMTP i nazwy użytkownika, aby skonfigurować Poczta bazy danych. Możesz skonfigurować Pocztę bazy danych w programie SQL Server Management Studio lub za pomocą poleceń języka Transact-SQL. Aby uzyskać więcej informacji, zobacz Poczta bazy danych.
  4. Skonfiguruj program SQL Server Agent do używania Poczta bazy danych.
  5. Sprawdź, czy port SMTP jest dozwolony zarówno za pośrednictwem lokalnej zapory maszyny wirtualnej, jak i sieciowej grupy zabezpieczeń maszyny wirtualnej.

Znane problemy

Podczas pracy z funkcją zautomatyzowanej kopii zapasowej należy wziąć pod uwagę te znane problemy.

Nie można włączyć automatycznej kopii zapasowej w witrynie Azure Portal

W poniższej tabeli wymieniono możliwe rozwiązania, jeśli masz problemy z włączaniem automatycznej kopii zapasowej w witrynie Azure Portal:

Objaw Rozwiązanie
Włączenie automatycznych kopii zapasowych zakończy się niepowodzeniem, jeśli rozszerzenie IaaS jest w stanie niepowodzenia Napraw rozszerzenie agenta IaaS SQL, jeśli jest w stanie niepowodzenia.
Włączanie automatycznej kopii zapasowej kończy się niepowodzeniem, jeśli masz setki baz danych Jest to znane ograniczenie rozszerzenia agenta IaaS SQL. Aby obejść ten problem, możesz włączyć zarządzaną kopię zapasową bezpośrednio zamiast używać rozszerzenia agenta IaaS SQL do konfigurowania automatycznej kopii zapasowej.
Włączanie automatycznej kopii zapasowej kończy się niepowodzeniem z powodu problemów z metadanymi Zatrzymaj usługę agenta IaaS SQL. Uruchom polecenie T-SQL: use msdb exec autoadmin_metadata_delete. Uruchom usługę agenta IaaS SQL i spróbuj ponownie włączyć automatyczną kopię zapasową w witrynie Azure Portal.
Włączanie automatycznych kopii zapasowych dla wystąpienia klastra trybu failover Tworzenie kopii zapasowych przy użyciu prywatnych punktów końcowych nie jest obsługiwane. Użyj pełnego identyfikatora URI konta magazynu dla kopii zapasowej.
Tworzenie kopii zapasowych wielu wystąpień SQL przy użyciu zautomatyzowanej kopii zapasowej Automatyczna kopia zapasowa obsługuje obecnie tylko jedno wystąpienie programu SQL Server. Jeśli masz wiele nazwanych wystąpień i wystąpienie domyślne, automatyczna kopia zapasowa działa z wystąpieniem domyślnym. Jeśli masz wiele nazwanych wystąpień i nie masz wystąpienia domyślnego, włączenie automatycznej kopii zapasowej zakończy się niepowodzeniem.
Nie można włączyć automatycznej kopii zapasowej z powodu konta i uprawnień Sprawdź następujące kwestie:
— Agent programu SQL Server jest uruchomiony.
— Konto NT Service\SqlIaaSExtensionQuery ma odpowiednie uprawnienia do funkcji automatycznej kopii zapasowej zarówno w programie SQL Server, jak i dla zasobu maszyn wirtualnych SQL w witrynie Azure Portal.
— Nazwa konta sa nie została zmieniona, chociaż wyłączenie go jest dopuszczalne.
Automatyczne tworzenie kopii zapasowej kończy się niepowodzeniem dla programu SQL 2016 + Opcja Zezwalaj na publiczny dostęp do obiektów blob jest włączona na koncie magazynu. Zapewnia to tymczasowe obejście znanego problemu.

Typowe błędy dotyczące automatycznej lub zarządzanej kopii zapasowej

W poniższej tabeli wymieniono możliwe błędy i rozwiązania podczas pracy z automatycznymi kopiami zapasowymi:

Objaw Rozwiązanie
Automatyczne/zarządzane tworzenie kopii zapasowej kończy się niepowodzeniem z powodu łączności z kontem magazynu/błędami przekroczenia limitu czasu Sprawdź, czy sieciowa grupa zabezpieczeń dla sieci wirtualnej, a Zapora systemu Windows nie blokuje połączeń wychodzących z maszyny wirtualnej do konta magazynu na porcie 443.
Automatyczne/zarządzane tworzenie kopii zapasowej kończy się niepowodzeniem z powodu użycia pamięci/operacji we/wy Sprawdź, czy możesz zwiększyć maksymalną pamięć serwera i/lub zmienić rozmiar dysku/maszyny wirtualnej, jeśli zabraknie limitów operacji we/wy/maszyny wirtualnej. Jeśli używasz grupy dostępności, rozważ odciążenie kopii zapasowych do repliki pomocniczej.
Automatyczne tworzenie kopii zapasowej kończy się niepowodzeniem po zmianie nazwy serwera Jeśli nazwa hosta maszyny została zmieniona, należy również zmienić nazwę hosta w programie SQL Server.
Błąd: Operacja nie powiodła się z powodu błędu wewnętrznego. Argument nie może być pustym ciągiem.\r\nParameter name: sas Token Ponów próbę później Jest to prawdopodobnie spowodowane tym, że usługa SQL Server Agent nie ma poprawnych uprawnień personifikacji. Zmień usługę SQL Server Agent, aby użyć innego konta, aby rozwiązać ten problem.
Błąd: Zarządzana kopia zapasowa serwera SQL Server na platformie Microsoft Azure nie może konfigurować domyślnych ustawień kopii zapasowej dla wystąpienia programu SQLServer, ponieważ adres URL kontenera był nieprawidłowy. Istnieje również możliwość, że poświadczenia sygnatury dostępu współdzielonego są nieprawidłowe Ten błąd może wystąpić, jeśli masz dużą liczbę baz danych. Użyj zarządzanej kopii zapasowej zamiast zautomatyzowanej kopii zapasowej.
Zadanie automatycznej kopii zapasowej nie powiodło się po ponownym uruchomieniu maszyny wirtualnej Sprawdź, czy usługa SQL Agent jest uruchomiona.
Tworzenie zarządzanej kopii zapasowej sporadycznie kończy się niepowodzeniem/Błąd:Upłynął limit czasu wykonywania Jest to znany problem rozwiązany w aktualizacji CU18 dla programu SQL Server 2019 i [KB4040376] dla programu SQL Server 2014-2017.
Błąd: Serwer zdalny zwrócił błąd: (403) Zabronione Napraw rozszerzenie agenta IaaS sql.
Błąd 3202: Zapisywanie na koncie magazynu nie powiodło się 13 (dane są nieprawidłowe) Usuń niezmienne zasady obiektów blob w kontenerze magazynu i upewnij się, że konto magazynu używa co najmniej protokołu TLS 1.0.

Wyłączanie automatycznej kopii zapasowej lub zarządzanej kopii zapasowej kończy się niepowodzeniem

W poniższej tabeli wymieniono możliwe rozwiązania, jeśli masz problemy z wyłączaniem automatycznej kopii zapasowej w witrynie Azure Portal:

Objaw Rozwiązanie
Wyłączenie automatycznych kopii zapasowych zakończy się niepowodzeniem, jeśli rozszerzenie IaaS jest w stanie niepowodzenia Napraw rozszerzenie agenta IaaS SQL, jeśli jest w stanie niepowodzenia.
Wyłączanie automatycznej kopii zapasowej kończy się niepowodzeniem z powodu problemów z metadanymi Zatrzymaj usługę agenta IaaS SQL. Uruchom polecenie T-SQL: use msdb exec autoadmin_metadata_delete. Uruchom usługę agenta Iaas SQL i spróbuj wyłączyć automatyczną kopię zapasową w witrynie Azure Portal.
Nie można wyłączyć automatycznej kopii zapasowej z powodu konta i uprawnień Sprawdź następujące kwestie:
— Agent programu SQL Server jest uruchomiony.
— Konto NT Service\SqlIaaSExtensionQuery ma odpowiednie uprawnienia do funkcji automatycznej kopii zapasowej zarówno w programie SQL Server, jak i dla zasobu maszyn wirtualnych SQL w witrynie Azure Portal.
— Nazwa konta sa nie została zmieniona, chociaż wyłączenie go jest dopuszczalne.

Chcę dowiedzieć się, jaka usługa/aplikacja wykonuje kopie zapasowe programu SQL Server

  • W programie SQL Server Management Studio (SSMS) Eksplorator obiektów kliknij prawym przyciskiem myszy bazę danych > Select Reports Standard Reports>Backup and Restore Events (Wybieranie raportów standardowych raportów>tworzenia kopii zapasowych i przywracania zdarzeń). W raporcie możesz rozwinąć sekcję Pomyślne operacje tworzenia kopii zapasowej, aby wyświetlić historię kopii zapasowych.
  • Jeśli widzisz wiele kopii zapasowych na platformie Azure lub na urządzeniu wirtualnym, sprawdź, czy używasz usługi Azure Backup do tworzenia kopii zapasowych poszczególnych baz danych SQL lub tworzenia migawki maszyny wirtualnej na urządzeniu wirtualnym, które używa NT Authority/SYSTEM konta. Jeśli tak nie jest, sprawdź konsolę usług systemu Windows (services.msc), aby zidentyfikować wszystkie aplikacje innych firm, które mogą tworzyć kopie zapasowe.

Następne kroki

Automatyczna kopia zapasowa konfiguruje zarządzaną kopię zapasową na maszynach wirtualnych platformy Azure. Dlatego ważne jest zapoznanie się z dokumentacją dotyczącą zarządzanej kopii zapasowej , aby zrozumieć zachowanie i implikacje.

Dodatkowe wskazówki dotyczące tworzenia i przywracania kopii zapasowych programu SQL Server na maszynach wirtualnych platformy Azure można znaleźć w następującym artykule: Tworzenie kopii zapasowej i przywracanie dla programu SQL Server na maszynach wirtualnych platformy Azure.

Aby uzyskać informacje o innych dostępnych zadaniach automatyzacji, zobacz Rozszerzenie agenta IaaS programu SQL Server.

Aby uzyskać więcej informacji na temat uruchamiania programu SQL Server na maszynach wirtualnych platformy Azure, zobacz Omówienie programu SQL Server na maszynach wirtualnych platformy Azure.