Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
W tym artykule przedstawiono pojęcia, wymagania i składniki niezbędne do korzystania z usługi Microsoft Azure Blob Storage jako miejsca docelowego kopii zapasowej. Funkcja tworzenia i przywracania kopii zapasowej jest taka sama lub podobna do funkcji DISK lub TAPE, z kilkoma różnicami. Te różnice i kilka przykładów kodu znajdują się w tym artykule.
Wskazówka
SQL Server 2025 (17.x) w wersji zapoznawczej wprowadza możliwość tworzenia kopii zapasowej do adresu URL z użyciem tożsamości zarządzanej. Zapoznaj się z artykułem Tworzenie kopii zapasowej adresu URL przy użyciu tożsamości zarządzanej (wersja zapoznawcza) — program SQL Server włączony przez usługę Azure Arc.
Przegląd
Program SQL Server 2012 z dodatkiem Service Pack 1 CU2 i SQL Server 2014 wprowadził możliwość tworzenia kopii zapasowej adresu URL wskazanego w usłudze Azure Blob Storage przy użyciu znanej składni języka T-SQL w celu bezpiecznego zapisywania kopii zapasowych w usłudze Azure Storage. Program SQL Server 2016 (13.x) wprowadził File-Snapshot Backups for Database Files na platformie Azure i zabezpieczenia za pośrednictwem kluczy sygnatury dostępu współdzielonego (SAS), bezpiecznego i prostego sposobu uwierzytelniania certyfikatów w zasadach zabezpieczeń usługi Azure Storage.
Ważne jest, aby zrozumieć składniki i interakcje między nimi w celu wykonania kopii zapasowej lub przywrócenia z usługi Microsoft Azure Blob Storage.
Pierwszym krokiem w tym procesie jest utworzenie konta usługi Azure Storage. To konto magazynu to konto administracyjne, które ma pełne uprawnienia administracyjne do wszystkich kontenerów i obiektów utworzonych przy użyciu konta magazynu. Program SQL Server może użyć nazwy konta usługi Azure Storage i jego wartości klucza dostępu do uwierzytelniania i zapisu i odczytu obiektów blob w usłudze Microsoft Azure Blob Storage lub użyć tokenu sygnatury dostępu współdzielonego wygenerowanego na określonych kontenerach, udzielając mu praw do odczytu i zapisu. Aby uzyskać więcej informacji na temat kont Azure Storage, zobacz Informacje o kontach Azure Storage, a na temat podpisów dostępu współdzielonego zobacz Podpisy dostępu współdzielonego, część 1: Zrozumienie modelu SAS. Poświadczenia programu SQL Server przechowują te informacje uwierzytelniania i są używane podczas operacji tworzenia kopii zapasowej lub przywracania.
Azure Storage i magazyn zgodny z S3
Program SQL Server 2022 (16.x) wprowadza możliwość zapisywania kopii zapasowych w magazynie obiektów zgodnym z usługą S3 z funkcją tworzenia kopii zapasowych i przywracania w sposób koncepcyjny podobny do pracy z usługą Backup do adresu URL przy użyciu usługi Azure Blob Storage jako typu urządzenia kopii zapasowej. Program SQL Server 2022 (16.x) rozszerza składnię BACKUP/RESTORE TO/FROM URL przez dodanie obsługi nowego łącznika S3 przy użyciu interfejsu API REST.
Ten artykuł zawiera informacje dotyczące używania funkcji Backup to URL w usłudze Azure Blob Storage. Aby dowiedzieć się więcej na temat używania kopii zapasowej do magazynu zgodnego z S3 przy użyciu adresu URL, zobacz Tworzenie kopii zapasowej programu SQL Server do magazynu obiektów zgodnego z S3 przy użyciu URL.
Kopia zapasowa bloba blokowego i bloba stronicowego w Azure Storage
Istnieją dwa typy obiektów blob, które można przechowywać w usłudze Microsoft Azure Blob Storage: blokowe i stronicowe obiekty blob. W przypadku programu SQL Server 2016 lub nowszego preferowany jest blokowy obiekt blob.
Jeśli klucz magazynu jest używany w poświadczeniu, używany jest blob stronicowy; jeśli jest używana sygnatura współdzielonego dostępu, używany jest blob blokowy.
Tworzenie kopii zapasowej blokowego obiektu blob jest dostępne tylko w programie SQL Server 2016 lub nowszej wersji na potrzeby tworzenia kopii zapasowych w usłudze Azure Blob Storage. Wykonaj kopię zapasową obiektów blob typu blokowego zamiast obiektów blob typu stronicowego, jeśli używasz programu SQL Server 2016 lub nowszego.
Główne przyczyny to:
- Sygnatura dostępu współdzielonego to bezpieczniejszy sposób autoryzowania dostępu do obiektów blob w porównaniu z kluczem magazynu.
- Możesz utworzyć kopię zapasową wielu blokowych obiektów blob, aby uzyskać lepszą wydajność tworzenia kopii zapasowych i przywracania oraz obsługiwać większą kopię zapasową bazy danych.
- Blob blokowy jest tańszy niż blob stronicowy.
- Klienci, którzy muszą utworzyć kopię zapasową stronicowych obiektów blob za pośrednictwem serwera proxy, muszą używać polecenia
backuptourl.exe
.
Tworzenie kopii zapasowej dużej bazy danych w usłudze Azure Blob Storage podlega ograniczeniom wymienionym w temacie Różnice, ograniczenia i znane problemy w usłudze Azure SQL Managed Instance.
Jeśli baza danych jest za duża, albo:
- Używanie kompresji kopii zapasowej lub
- Tworzenie kopii zapasowej do wielu bloków blob
Obsługa systemu Linux, kontenerów i usługi SQL Managed Instance włączonej przez usługę Azure Arc
Jeśli instancja SQL Server jest hostowana w systemie Linux, obejmując:
- Autonomiczny system operacyjny
- Pojemniki
- Zarządzana instancja SQL obsługiwana przez Azure Arc
- Dowolne inne środowisko oparte na systemie Linux
Jedyną obsługiwaną metodą tworzenia kopii zapasowej na URL dla Azure Blob Storage jest użycie blobów blokowych z sygnaturą dostępu współdzielonego.
Microsoft Azure Blob Storage
Konto magazynu: Konto magazynu jest punktem wyjścia dla wszystkich usług magazynu. Aby uzyskać dostęp do usługi Microsoft Azure Blob Storage, najpierw utwórz konto usługi Azure Storage. Aby uzyskać więcej informacji, zobacz Tworzenie konta magazynu
Kontener: Kontener udostępnia grupowanie zestawu obiektów blob i może przechowywać nieograniczoną liczbę obiektów blob. Aby zapisać kopię zapasową programu SQL Server w usłudze Azure Blob Storage, musisz mieć co najmniej utworzony kontener główny. Token sygnatury dostępu współdzielonego można wygenerować w kontenerze i udzielić dostępu tylko do obiektów w określonym kontenerze.
Blob: Plik dowolnego typu i rozmiaru. Istnieją dwa typy obiektów blob, które można przechowywać w usłudze Azure Blob Storage: blokowe i stronicowe obiekty blob. Kopia zapasowa programu SQL Server może korzystać z dowolnego typu obiektu blob, w zależności od składni Transact-SQL używanej w SQL Server. Obiekty blob są adresowalne przy użyciu następującego formatu adresu URL: https://< kontotorage.blob.core.windows.net/>< container>/<blob>. Aby uzyskać więcej informacji na temat usługi Azure Blob Storage, zobacz Wprowadzenie do usługi Azure Blob Storage. Aby uzyskać więcej informacji na temat obiektów blob typu blokowego i stronicowego, zobacz Opis obiektów blob typu blokowego i stronicowego.
Migawka platformy Azure: Migawka obiektu blob platformy Azure utworzona w określonym momencie czasu. Aby uzyskać więcej informacji, zobacz Tworzenie migawki obiektu blob. Kopia zapasowa SQL Server obsługuje teraz migawkowe kopie zapasowe plików bazy danych przechowywanych w Azure Storage Blob. Aby uzyskać więcej informacji, zobacz File-Snapshot Backups for Database Files in Azure.
Składniki programu SQL Server
Adres URL: Adres URL określa identyfikator URI (Uniform Resource Identifier) do unikatowego pliku kopii zapasowej. Adres URL służy do podawania lokalizacji i nazwy pliku kopii zapasowej programu SQL Server. Adres URL musi wskazywać rzeczywisty obiekt blob, a nie tylko kontener. Jeśli obiekt blob nie istnieje, zostaje utworzony. Jeśli zostanie określony istniejący blob, operacja tworzenia kopii zapasowej się nie powiedzie, chyba że zostanie określona opcja "WITH FORMAT", aby zastąpić istniejący plik kopii zapasowej w blobie.
Oto przykładowa wartość adresu URL: https://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/FILENAME.bak
.
Uwaga / Notatka
Tworzenie kopii zapasowej pod adresem URL przy użyciu protokołu HTTP nie jest obsługiwane.
Poświadczenie: Poświadczenie SQL Server to obiekt używany do przechowywania informacji uwierzytelniających niezbędnych do nawiązania połączenia z zasobem spoza SQL Server. Tutaj procesy tworzenia kopii zapasowych i przywracania programu SQL Server używają poświadczeń do uwierzytelniania w usłudze Azure Blob Storage oraz jej kontenerach i blobach. Poświadczenie przechowuje nazwę konta magazynu i wartości klucza dostępu konta magazynu lub adres URL kontenera oraz jego token dostępu współdzielonego. Po utworzeniu poświadczeń składnia instrukcji BACKUP/RESTORE określa typ blobu i wymagane poświadczenia.
Aby zapoznać się z przykładem tworzenia sygnatury dostępu współdzielonego, zobacz przykłady w sekcji Tworzenie sygnatury dostępu współdzielonego w dalszej części tego artykułu, a aby utworzyć poświadczenia programu SQL Server, zobacz przykłady w sekcji Tworzenie poświadczeń w dalszej części tego artykułu.
Aby uzyskać więcej informacji na temat poświadczeń, zobacz Credentials (Aparat bazy danych).
Aby uzyskać informacje na temat innych przykładów, w których są używane poświadczenia, zobacz Create a SQL Server Agent Proxy (Tworzenie serwera proxy agenta programu SQL Server).
Obsługa niezmiennego magazynu platformy Azure
Program SQL Server 2025 (17.x) w wersji zapoznawczej wprowadza obsługę magazynu niezmiennego platformy Azure, który chroni przed atakami wymuszającym okup. Plików zapisywanych w magazynie niezmiennym nie można modyfikować ani usuwać zgodnie z definicją niezmienności.
Zazwyczaj kopie zapasowe programu SQL Server są tworzone w dwóch krokach. Początkowo plik kopii zapasowej jest tworzony z zerami, a następnie zostaje zaktualizowany danymi. Ponieważ modyfikacja pliku w magazynie niezmiennym nie jest dozwolona po zapisaniu i zatwierdzeniu pliku, proces tworzenia kopii zapasowej pomija teraz początkowy krok tworzenia pliku kopii zapasowej z zerami. Zamiast tego cała kopia zapasowa jest tworzona w jednym kroku podczas zapisywania w blokowych obiektach blob.
W wersji zapoznawczej trace flag 3012 jest wymagana do włączenia niezmiennej obsługi pamięci masowej dla kopii zapasowych do URL.
Aby użyć niezmiennego magazynu z kopią zapasową programu SQL Server 2025 (17.x) w wersji zapoznawczej do adresu URL, wykonaj następujące kroki:
- Skonfiguruj niezmienność kontenera usługi Azure Storage.
- Włącz flagę śledzenia 3012 dla instancji SQL Server, uruchamiając następujące polecenie DBCC:
DBCC TRACEON(3012,-1)
. - Wydaj polecenie BACKUP, aby utworzyć kopię zapasową bazy danych w kontenerze usługi Azure Storage:
BACKP DATABASE [<Database>] TO URL = ‘<url>’ WITH FORMAT
.
Zabezpieczenia usługi Azure Blob Storage
Poniżej przedstawiono zagadnienia i wymagania dotyczące zabezpieczeń podczas tworzenia kopii zapasowej lub przywracania z usługi Azure Blob Storage.
Podczas tworzenia kontenera dla usługi Azure Blob Storage zalecamy ustawienie dostępu do prywatnego. Ustawienie dostępu jako prywatnego ogranicza dostęp do użytkowników lub kont, które są w stanie dostarczyć niezbędne informacje do uwierzytelnienia na koncie platformy Azure.
Ważne
Program SQL Server wymaga, aby nazwa konta platformy Azure i klucz dostępu lub sygnatura dostępu współdzielonego i token dostępu były przechowywane w poświadczeniach programu SQL Server. Te informacje są używane do uwierzytelniania na koncie platformy Azure podczas wykonywania operacji tworzenia kopii zapasowych lub przywracania.
Ostrzeżenie
Usługa Azure Storage obsługuje wyłączanie autoryzacji klucza wspólnego dla konta magazynu. Jeśli autoryzacja klucza współużytkowanego jest wyłączona, adres URL kopii zapasowej programu SQL Server nie będzie działać.
Konto użytkownika używane do wydawania poleceń BACKUP lub RESTORE powinno znajdować się w roli bazy danych operatora db_backup z uprawnieniami do zmiany poświadczeń .
Ograniczenia tworzenia kopii zapasowej/przywracania do usługi Azure Blob Storage
Program SQL Server ogranicza maksymalny obsługiwany rozmiar kopii zapasowej przez użycie stronicowego obiektu blob do 1 TB. Maksymalny rozmiar kopii zapasowej obsługiwany przy użyciu blokowych obiektów blob jest ograniczony do około 200 GB (50 000 bloków * 4 MB MAXTRANSFERSIZE). Blokowe obiekty blob obsługują paskowanie w celu obsługi znacznie większych rozmiarów kopii zapasowych — limit wynosi maksymalnie 64 adresy URL, co skutkuje następującą formułą:
64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB
.Ważne
Chociaż maksymalny rozmiar kopii zapasowej obsługiwany przez pojedynczy blob blokowy wynosi 200 GB, SQL Server może zapisywać w mniejszych blokach, co może spowodować, że SQL Server osiągnie limit 50 000 bloków przed przesłaniem całej kopii zapasowej. Poddziel kopie zapasowe (nawet jeśli mają mniej niż 200 GB), aby uniknąć przekroczenia limitu bloków, zwłaszcza gdy używasz różnicowych lub nieskompresowanych kopii zapasowych.
Instrukcje tworzenia kopii zapasowej lub przywracania można wydać przy użyciu poleceń cmdlet języka Transact-SQL, SMO, programu PowerShell lub kreatora tworzenia kopii zapasowej lub przywracania programu SQL Server Management Studio.
Tworzenie kopii zapasowej na koncie usługi Azure Storage obsługuje uwierzytelnianie tylko przy użyciu tokenów sygnatury dostępu współdzielonego (SAS) lub kluczy konta magazynowego. Wszystkie inne metody uwierzytelniania, w tym uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory), nie są obsługiwane.
Tworzenie nazwy urządzenia logicznego nie jest obsługiwane. Dlatego dodanie adresu URL jako urządzenia kopii zapasowej przy użyciu
sp_dumpdevice
lub za pomocą programu SQL Server Management Studio nie jest obsługiwane.Dołączanie do istniejących obiektów blob kopii zapasowych nie jest obsługiwane. Kopie zapasowe istniejącego obiektu blob można zastąpić tylko za pomocą opcji
WITH FORMAT
. Jednakże przy korzystaniu z migawkowych kopii zapasowych plików (przy użyciu argumentuWITH FILE_SNAPSHOT
), argumentWITH FORMAT
nie jest dozwolony, aby uniknąć pozostawienia osieroconych migawek plików, które zostały utworzone przy użyciu oryginalnej migawkowej kopii zapasowej.Tworzenie kopii zapasowej w wielu obiektach blob w ramach jednej operacji tworzenia kopii zapasowej jest obsługiwane tylko przy użyciu blokowych obiektów blob i tokenu sygnatury dostępu współdzielonego (SAS), a nie klucza konta magazynu dla poświadczeń SQL.
Określanie
BLOCKSIZE
nie jest obsługiwane w odniesieniu do stronicowych obiektów blob.Określanie
MAXTRANSFERSIZE
nie jest obsługiwane dla stronicowych obiektów blob.Określanie opcji zestawu kopii zapasowych —
RETAINDAYS
iEXPIREDATE
nie są obsługiwane.Program SQL Server ma maksymalny limit 259 znaków dla nazwy urządzenia kopii zapasowej. Kopia zapasowa DO URL zużywa 36 znaków na wymagane elementy potrzebne do określenia adresu URL
https://.blob.core.windows.net//.bak
, pozostawiając 223 znaki dla nazw kont, kontenerów i blobów.Program SQL Server 2019 (15.x) i starsze wersje mają limit 256 znaków dla tokenów sygnatury dostępu współdzielonego (SAS), co ogranicza typ używanych tokenów (na przykład tokeny klucza delegowania użytkownika nie są obsługiwane).
Jeśli serwer uzyskuje dostęp do platformy Azure za pośrednictwem serwera proxy, należy użyć flagi śledzenia 1819, a następnie ustawić konfigurację serwera proxy WinHTTP za pomocą jednej z następujących metod:
- Narzędzie proxycfg.exe w systemie Windows XP lub Windows Server 2003 i starszych wersjach.
- Narzędzie netsh.exe w systemach Windows Vista i Windows Server 2008 lub nowszych.
Niezmienny magazyn dla usługi Azure Blob Storage nie jest obsługiwany. Ustaw niezmienne zasady magazynu na wartość false.
Obsługiwane argumenty i stwierdzenia w usłudze Azure Blob Storage
Obsługa instrukcji tworzenia/przywracania kopii zapasowych w usłudze Azure Blob Storage
Kopia zapasowa/Odzyskiwanie oświadczenie | Wsparte | Wyjątki | Komentarze |
---|---|---|---|
KOPIA ZAPASOWA | Y | Funkcje BLOCKSIZE i MAXTRANSFERSIZE są obsługiwane w przypadku blobów blokowych. Nie są obsługiwane dla blobów stronicowych. | Tworzenie kopii zapasowej blokowego obiektu blob wymaga podpisu dostępu współdzielonego zapisanego jako poświadczenie na serwerze SQL Server. Utworzenie kopii zapasowej danych typu blob strony wymaga klucza konta magazynu zapisanego w poświadczeniu programu SQL Server oraz wymaga określenia argumentu WITH CREDENTIAL. |
PRZYWRÓCIĆ | Y | Wymaga zdefiniowania poświadczeń SQL Server oraz określenia argumentu WITH CREDENTIAL, jeśli poświadczenie SQL Server jest definiowane przy użyciu klucza konta magazynu jako sekretu. | |
PRZYWRACANIE FILELISTONLY | Y | Wymaga zdefiniowania poświadczeń SQL Server oraz określenia argumentu WITH CREDENTIAL, jeśli poświadczenie SQL Server jest definiowane przy użyciu klucza konta magazynu jako sekretu. | |
PRZYWRACANIE TYLKO NAGŁÓWKA | Y | Wymaga zdefiniowania poświadczeń SQL Server oraz określenia argumentu WITH CREDENTIAL, jeśli poświadczenie SQL Server jest definiowane przy użyciu klucza konta magazynu jako sekretu. | |
PRZYWRÓĆ LABELONLY | Y | Wymaga zdefiniowania poświadczeń SQL Server oraz określenia argumentu WITH CREDENTIAL, jeśli poświadczenie SQL Server jest definiowane przy użyciu klucza konta magazynu jako sekretu. | |
PRZYWRACANIE VERIFYONLY | Y | Wymaga zdefiniowania poświadczeń SQL Server oraz określenia argumentu WITH CREDENTIAL, jeśli poświadczenie SQL Server jest definiowane przy użyciu klucza konta magazynu jako sekretu. | |
PRZYWRÓĆ PONOWNIE | - |
Aby uzyskać informacje o składni i ogólne informacje na temat poleceń dotyczących kopii zapasowych, zobacz BACKUP.
Aby uzyskać składnię i ogólne informacje na temat instrukcji RESTORE, zobacz instrukcje RESTORE.
Obsługa argumentów kopii zapasowej w usłudze Azure Blob Storage
Argumentacja | Wsparte | Wyjątek | Komentarze |
---|---|---|---|
BAZA DANYCH | Y | ||
DZIENNIK | Y | ||
TO (adres URL) | Y | W przeciwieństwie do dysku i taśmy adres URL nie obsługuje określania ani tworzenia nazwy logicznej. | Ten argument służy do określania ścieżki adresu URL dla pliku kopii zapasowej. |
DUBLOWANIE DO | Y | ||
WITH Opcje: |
|||
POŚWIADCZENIE | Y | FUNKCJA WITH CREDENTIAL jest obsługiwana tylko w przypadku używania opcji BACKUP TO URL do wykonania kopii zapasowej w usłudze Azure Blob Storage i tylko wtedy, gdy poświadczenie programu SQL Server jest definiowane za pomocą klucza konta magazynu jako tajnego. | |
Zrzut_pliku | Y | ||
SZYFROWANIE | Y | Po określeniu argumentu WITH ENCRYPTION program SQL Server File-Snapshot Backup gwarantuje, że cała baza danych została zaszyfrowana za pomocą funkcji TDE przed wykonaniem kopii zapasowej, a jeśli tak, szyfruje sam plik kopii zapasowej migawki plików przy użyciu algorytmu określonego dla funkcji TDE w bazie danych. Jeśli wszystkie dane w bazie danych w całej bazie danych nie są szyfrowane, tworzenie kopii zapasowej zakończy się niepowodzeniem (na przykład proces szyfrowania nie zostanie jeszcze ukończony). |
|
RÓŻNICZKA | Y | ||
TYLKO_KOPIUJ | Y | ||
KOMPRESJA|BRAK_KOMPRESJI | Y | Nieobsługiwane w przypadku tworzenia kopii zapasowej migawki plików | |
OPIS | Y | ||
NAZWA | Y | ||
DATA WYGAŚNIĘCIA | LICZBA DNI PRZECHOWYWANIA | - | ||
NOINIT | INIT | - | Dołączanie do danych blob nie jest możliwe. Aby zastąpić kopię zapasową, użyj argumentu WITH FORMAT . Jednak, gdy korzysta się z kopii zapasowych migawek plików (za pomocą argumentu WITH FILE_SNAPSHOT ), użycie argumentu WITH FORMAT nie jest dozwolone, aby uniknąć pozostawienia osieroconych migawek plików utworzonych przy użyciu oryginalnej kopii zapasowej. |
|
NOSKIP | POMINĄĆ | - | ||
NOFORMAT | FORMAT | Y | Tworzenie kopii zapasowej wykonanej do istniejącego obiektu blob kończy się niepowodzeniem, chyba że WITH FORMAT zostanie określone. Istniejący obiekt blob zostaje nadpisany, gdy WITH FORMAT jest określony. Jednak w przypadku korzystania z kopii zapasowych migawek plików (przy użyciu argumentu WITH FILE_SNAPSHOT ) argument FORMAT nie jest dozwolony, aby uniknąć pozostawiania osieroconych migawek plików utworzonych przy użyciu oryginalnej kopii zapasowej migawki plików. Jednak, gdy korzysta się z kopii zapasowych migawek plików (za pomocą argumentu WITH FILE_SNAPSHOT ), użycie argumentu WITH FORMAT nie jest dozwolone, aby uniknąć pozostawienia osieroconych migawek plików utworzonych przy użyciu oryginalnej kopii zapasowej. |
|
Opis Mediów | Y | ||
NAZWA NOŚNIKA | Y | ||
BLOCKSIZE | Y | Nieobsługiwane dla stronicowego obiektu blob. Obsługiwane dla blokowych blobów. | Zaleca się ustawienie BLOCKSIZE=65536, aby zoptymalizować użycie 50 000 dozwolonych bloków w blokowym obiekcie danych. |
LiczbaBuforów | Y | ||
RozmiarMaksymalnegoPrzeniesienia | Y | Nieobsługiwane dla stronicowego obiektu blob. Obsługiwane dla blokowych blobów. | Wartość domyślna to 1048576. Wartość może osiągać maksymalnie 4 MB w przyrostach co 65536 bajtów. Zaleca się MAXTRANSFERSIZE=4194304, aby zoptymalizować użycie 50 000 bloków dozwolonych w obiekt blob. |
BRAK SUMY KONTROLNEJ | SUMA KONTROLNA | Y | ||
ZATRZYMAJ_PO_BŁĘDZIE | KONTYNUUJ_PO_BŁĘDZIE | Y | ||
STATYSTYKI | Y | ||
PRZEWIJAJ PONOWNIE | NOREWIND | - | ||
WYPISZ | NIE WYPISZ | - | ||
NORECOVERY | OCZEKIWANIE | Y | ||
Nie skracać | Y |
Aby uzyskać więcej informacji na temat argumentów kopii zapasowej, zobacz BACKUP.
Obsługa argumentów przywracania w usłudze Azure Blob Storage
Argumentacja | Wsparte | Wyjątki | Komentarze |
---|---|---|---|
BAZA DANYCH | Y | ||
DZIENNIK | Y | ||
OD (URL) | Y | Argument FROM adresu URL służy do określania ścieżki adresu URL dla pliku kopii zapasowej. | |
Opcje z: | |||
POŚWIADCZENIE | Y | FUNKCJA WITH CREDENTIAL jest obsługiwana tylko w przypadku używania opcji RESTORE FROM URL w celu przywrócenia z usługi Microsoft Azure Blob Storage. | |
CZĘŚCIOWY | Y | ||
ODZYSKIWANIE | BEZODZYSKIWANIA | GOTOWOŚĆ | Y | ||
Załaduj historię | Y | ||
PRZENIEŚĆ | Y | ||
ZASTĄPIĆ | Y | ||
Ponowne uruchomienie | Y | ||
UŻYTKOWNIK OGRANICZONY | Y | ||
PLIK | - | ||
HASŁO | Y | ||
NAZWA NOŚNIKA | Y | ||
MEDIAHASŁO | Y | ||
BLOCKSIZE | Y | ||
LiczbaBuforów | - | ||
RozmiarMaksymalnegoPrzeniesienia | - | ||
SUMA KONTROLNA | BRAK SUMY KONTROLNEJ | Y | ||
ZATRZYMAJ_PO_BŁĘDZIE | KONTYNUUJ_PO_BŁĘDZIE | Y | ||
FILESTREAM | Y | Nieobsługiwane w przypadku tworzenia kopii zapasowej migawki | |
STATYSTYKI | Y | ||
PRZEWIJAJ PONOWNIE | NOREWIND | - | ||
WYPISZ | NIE WYPISZ | - | ||
ZACHOWAJ_REPLIKACJĘ | Y | ||
KEEP_CDC | Y | ||
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER | Y | ||
STOPAT | STOPATMARK | STOPBEFOREMARK | Y |
Aby uzyskać więcej informacji na temat argumentów przywracania, zobacz instrukcje RESTORE — argumenty.
Tworzenie kopii zapasowej za pomocą programu SSMS
Możesz utworzyć kopię zapasową bazy danych pod adresem URL za pomocą zadania Tworzenie kopii zapasowej w programie SQL Server Management Studio przy użyciu poświadczeń programu SQL Server.
Uwaga / Notatka
Aby utworzyć kopię zapasową migawki plików SQL Server lub nadpisać istniejący zestaw multimedialny, należy użyć Transact-SQL, PowerShell lub C# zamiast zadania tworzenia kopii zapasowej w SQL Server Management Studio.
W poniższych krokach opisano zmiany wprowadzone w zadaniu Tworzenie kopii zapasowej bazy danych w programie SQL Server Management Studio, aby umożliwić tworzenie kopii zapasowej w usłudze Azure Storage:
W Eksploratorze obiektów , połącz się z instancją silnika bazy danych SQL Server, a następnie rozwiń tę instancję.
Rozwiń węzeł Bazy danych, kliknij prawym przyciskiem myszy żądaną bazę danych, wskaż polecenie Zadania, a następnie wybierz polecenie Utwórz kopię zapasową....
Na stronie Ogólne w sekcji Miejsce docelowe opcja Adres URL jest dostępna na liście rozwijanej Kopia zapasowa do: . Opcja adresu URL służy do tworzenia kopii zapasowej w usłudze Microsoft Azure Storage. Wybierz pozycję Dodaj, a zostanie otwarte okno dialogowe Wybieranie miejsca docelowego kopii zapasowej :
Kontener usługi Azure Storage: Nazwa kontenera usługi Microsoft Azure Storage do przechowywania plików kopii zapasowych. Wybierz istniejący kontener z listy rozwijanej lub ręcznie wprowadź kontener.
Zasady dostępu współdzielonego: Wprowadź sygnaturę dostępu współdzielonego dla ręcznie wprowadzonego kontenera. To pole nie jest dostępne, jeśli został wybrany istniejący kontener.
Plik kopii zapasowej: Nazwa pliku kopii zapasowej.
Nowy kontener: Służy do rejestrowania istniejącego kontenera, dla którego nie masz sygnatury dostępu współdzielonego. Zobacz Nawiązywanie połączenia z subskrypcją platformy Microsoft Azure (tworzenie kopii zapasowej do adresu URL).
Uwaga / Notatka
Funkcja Add obsługuje wiele plików kopii zapasowych i kontenerów pamięci masowej dla jednego zestawu nośników.
Po wybraniu adresu URL jako miejsca docelowego niektóre opcje na stronie Opcje multimediów są wyłączone. Następujące artykuły zawierają więcej informacji na temat okna dialogowego Tworzenie kopii zapasowej bazy danych:
- tworzenie kopii zapasowej bazy danych (strona ogólna)
- Tworzenie kopii zapasowej bazy danych (strona Opcje multimediów)
- Kopia zapasowa bazy danych (Strona z opcjami kopii zapasowej)
- Tworzenie poświadczeń — uwierzytelnianie w usłudze Azure Storage
Tworzenie kopii zapasowej za pomocą planu konserwacji
Podobnie jak opisane wcześniej zadanie tworzenia kopii zapasowej, Kreator planu konserwacji w programie SQL Server Management Studio zawiera adres URL jako jedną z opcji docelowych i inne obiekty pomocnicze wymagane do utworzenia kopii zapasowej w usłudze Azure Storage, takiej jak poświadczenie SQL. Jest on taki sam, aby uzyskać więcej informacji, zobacz sekcję Definiowanie zadań tworzenia kopii zapasowej w Kreatorze korzystania z planu konserwacji.
Uwaga / Notatka
Aby utworzyć zestaw kopii zapasowych z podziałem na paski, wykonać kopię zapasową migawki plików programu SQL Server lub utworzyć poświadczenie SQL z użyciem tokenu dostępu współdzielonego, należy korzystać z języka Transact-SQL, PowerShell lub języka C# zamiast z zadania Tworzenia kopii zapasowej w Kreatorze planu konserwacji.
Przywracanie za pomocą programu SSMS
Zadanie Przywracanie bazy danych zawiera adres URL jako urządzenie do przywracania. W poniższych krokach opisano używanie zadania Przywracania do przywrócenia z usługi Azure Blob Storage:
Kliknij prawym przyciskiem myszy pozycję Bazy danych i wybierz polecenie Przywróć bazę danych....
Na stronie Ogólne wybierz pozycję Urządzenie w sekcji Źródło .
Wybierz przycisk przeglądaj (...), aby otworzyć okno dialogowe Wybieranie urządzeń kopii zapasowej .
Wybierz URL z listy rozwijanej typ nośnika kopii zapasowej. Wybierz pozycję Dodaj , aby otworzyć okno dialogowe Wybieranie lokalizacji pliku kopii zapasowej .
Kontener usługi Azure Storage: W pełni kwalifikowana nazwa kontenera usługi Microsoft Azure Storage, który zawiera pliki kopii zapasowej. Wybierz istniejący kontener z listy rozwijanej lub ręcznie wprowadź w pełni kwalifikowaną nazwę kontenera.
Sygnatura dostępu współdzielonego: Służy do wprowadzania sygnatury dostępu współdzielonego dla wyznaczonego kontenera.
Dodawać: Służy do rejestrowania istniejącego kontenera, dla którego nie masz sygnatury dostępu współdzielonego. Zobacz Nawiązywanie połączenia z subskrypcją platformy Microsoft Azure (tworzenie kopii zapasowej do adresu URL).
OK: Program SQL Server łączy się z usługą Microsoft Azure Storage przy użyciu podanych informacji poświadczeń SQL i otwiera okno dialogowe Lokalizowanie pliku kopii zapasowej na platformie Microsoft Azure . Pliki kopii zapasowej znajdujące się w kontenerze magazynu są wyświetlane na tej stronie. Wybierz plik, którego chcesz użyć do przywrócenia, i wybierz przycisk OK. Spowoduje to powrót do okna dialogowego Wybieranie urządzeń kopii zapasowej i wybranie przycisku OK w tym oknie dialogowym spowoduje powrót do głównego okna dialogowego Przywracanie , w którym można ukończyć przywracanie.
Przykłady kodu
Ta sekcja zawiera następujące przykłady.
- Tworzenie sygnatury dostępu współdzielonego
- Tworzenie poświadczeń
- Wykonywanie pełnej kopii zapasowej bazy danych
- Przywracanie do punktu w czasie przy użyciu funkcji STOPAT
Uwaga / Notatka
Aby zapoznać się z samouczkiem dotyczącym używania programu SQL Server 2016 z usługą Azure Blob Storage, zobacz Samouczek: używanie usługi Azure Blob Storage z programem SQL Server
Tworzenie sygnatury dostępu współdzielonego
Poniższy przykład tworzy sygnatury dostępu współdzielonego, których można użyć do utworzenia poświadczeń programu SQL Server w nowo utworzonym kontenerze. Skrypt tworzy sygnaturę dostępu współdzielonego skojarzoną z zapisanymi zasadami dostępu. Aby uzyskać więcej informacji, zobacz Sygnatury dostępu współdzielonego, część 1: Zrozumienie modelu SAS. Skrypt zapisuje również polecenie T-SQL wymagane do utworzenia poświadczeń w programie SQL Server.
Uwaga / Notatka
Przykład wymaga programu Microsoft Azure PowerShell. Aby uzyskać informacje na temat instalowania i używania programu Azure PowerShell, zobacz Jak zainstalować i skonfigurować program Azure PowerShell.
Te skrypty zostały zweryfikowane przy użyciu programu Azure PowerShell 5.1.15063.
Sygnatura dostępu współdzielonego skojarzona z zapisanymi zasadami dostępu
# Define global variables for the script
$prefixName = '<a prefix name>' # used as the prefix for the name for various objects
$subscriptionName='<your subscription name>' # the name of subscription name you will use
$locationName = '<a data center location>' # the data center region you will use
$storageAccountName= $prefixName + 'storage' # the storage account name you will create or use
$containerName= $prefixName + 'container' # the storage container name to which you will attach the SAS policy with its SAS token
$policyName = $prefixName + 'policy' # the name of the SAS policy
# Set a variable for the name of the resource group you will create or use
$resourceGroupName=$prefixName + 'rg'
# adds an authenticated Azure account for use in the session
Connect-AzAccount
# set the tenant, subscription and environment for use in the rest of
Set-AzContext -SubscriptionName $subscriptionName
# create a new resource group - comment out this line to use an existing resource group
New-AzResourceGroup -Name $resourceGroupName -Location $locationName
# Create a new ARM storage account - comment out this line to use an existing ARM storage account
New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName
# Get the access keys for the ARM storage account
$accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName
# Create a new storage account context using an ARM storage account
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].value
# Creates a new container in Azure Blob Storage
$container = New-AzStorageContainer -Context $storageContext -Name $containerName
$cbc = $container.CloudBlobContainer
# Sets up a Stored Access Policy and a Shared Access Signature for the new container
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
Write-Host 'Shared Access Signature= '$($sas.TrimStart('?'))''
# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature
Write-Host 'Credential T-SQL'
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri,$sas.TrimStart('?')
$tSql | clip
Write-Host $tSql
Po pomyślnym uruchomieniu skryptu skopiuj CREATE CREDENTIAL
polecenie do narzędzia zapytań, połącz się z wystąpieniem programu SQL Server i uruchom polecenie, aby utworzyć poświadczenie za pomocą Udostępnionego podpisu dostępu.
Tworzenie poświadczeń
W poniższych przykładach przedstawiono tworzenie poświadczeń programu SQL Server na potrzeby uwierzytelniania w usłudze Azure Blob Storage. Wykonaj jedną z następujących czynności.
Korzystanie z sygnatury dostępu współdzielonego
Jeśli uruchomisz poprzedni skrypt, aby utworzyć sygnaturę dostępu współdzielonego, skopiuj element
CREATE CREDENTIAL
do edytora zapytań połączonego z wystąpieniem programu SQL Server i uruchom polecenie .Poniższy kod T-SQL jest przykładem tworzenia poświadczeń do używania sygnatury dostępu współdzielonego.
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
Korzystanie z tożsamości konta magazynowego i klucza dostępu
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = '<mycredentialname>') CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>', SECRET = '<mystorageaccountaccesskey>';
Wykonywanie pełnej kopii zapasowej bazy danych
Przykłady poniżej wykonują pełną kopię zapasową bazy danych AdventureWorks2022
do usługi Azure Blob Storage. Użyj jednego z następujących przykładów:
Do adresu URL przy użyciu sygnatury dostępu współdzielonego
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'; GO
Do adresu URL za pomocą tożsamości konta magazynu i klucza dostępu
BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak' WITH CREDENTIAL = '<mycredentialname>', COMPRESSION, STATS = 5; GO
Przywracanie do punktu w czasie przy użyciu opcji STOPAT
Poniższy przykład przywraca AdventureWorks2022
przykładową bazę danych do stanu w danym momencie i pokazuje operację przywracania.
Z adresu URL przy użyciu sygnatury dostępu współdzielonego
RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.bak'
WITH
MOVE 'AdventureWorks2022_data' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.mdf',
MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.ldf',
NORECOVERY, REPLACE, STATS = 5;
GO
RESTORE LOG AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'
WITH RECOVERY, STOPAT = 'May 18, 2015 5:35 PM';
GO