Przywracanie bazy danych do programu SQL Server 2022 z usługi Azure SQL Managed Instance

Dotyczy:Azure SQL Managed Instance

W tym artykule opisano sposób przywracania kopii zapasowej bazy danych z usługi Azure SQL Managed Instance do programu SQL Server 2022.

Omówienie

Wyrównanie formatu bazy danych między usługą SQL Managed Instance i programem SQL Server 2022 umożliwia łatwe kopiowanie lub przenoszenie baz danych z wystąpienia zarządzanego do wersji Enterprise, Developer lub Standard programu SQL Server 2022 hostowanej lokalnie na maszynach wirtualnych na platformie Azure lub w innych chmurach.

Przywracanie baz danych z wystąpień zarządzanych do wystąpień programu SQL Server 2022 umożliwia odblokowanie następujących scenariuszy:

  • Zapewnia mobilność bazy danych między usługą SQL Managed Instance i produktami opartymi na programie SQL Server.
  • Udostępnia kopie bazy danych klientom i innym uprawnionym stronom.
  • Odświeża środowiska poza usługą SQL Managed Instance.

Możliwość przywracania pełnych kopii zapasowych baz danych z usługi SQL Managed Instance do programu SQL Server 2022 jest domyślnie dostępna we wszystkich istniejących i wszystkich nowych wdrożonych wystąpieniach.

Ważne

Możliwość przywracania pełnych kopii zapasowych baz danych z usługi SQL Managed Instance do programu SQL Server 2022 będzie dostępna do końca podstawowej obsługi programu SQL Server 2022.

Tworzenie kopii zapasowej w usłudze SQL Managed Instance

Najpierw utwórz poświadczenie, aby uzyskać dostęp do konta magazynu z wystąpienia, utwórz kopię zapasową tylko do kopiowania bazy danych, a następnie zapisz ją.

Poświadczenia można utworzyć przy użyciu tożsamości zarządzanej lub tokenu sygnatury dostępu współdzielonego (SAS).

Tożsamość zarządzana to funkcja identyfikatora entra firmy Microsoft (dawniej Azure Active Directory), która udostępnia wystąpienia usług platformy Azure, takich jak Azure SQL Managed Instance, z automatycznie zarządzaną tożsamością w usłudze Microsoft Entra ID, tożsamością zarządzaną przypisaną przez system.

Ta tożsamość umożliwia autoryzowanie żądań dostępu do danych w innych zasobach platformy Azure, takich jak konta magazynu. Usługi, takie jak Azure SQL Managed Instance, mają przypisaną przez system tożsamość zarządzaną, a także mogą mieć co najmniej jedną tożsamość zarządzaną przypisaną przez użytkownika. Do autoryzowania żądań można używać tożsamości zarządzanych przypisanych przez system lub tożsamości zarządzanych przypisanych przez użytkownika.

Zanim administrator usługi Azure Storage zapisze plik kopii zapasowej na koncie magazynu, musi udzielić uprawnień do tożsamości zarządzanej w celu zapisania danych. Udzielanie uprawnień tożsamości zarządzanej wystąpienia odbywa się w taki sam sposób, jak przyznawanie uprawnień do dowolnego innego użytkownika firmy Microsoft Entra. Na przykład:

  1. W witrynie Azure Portal w okienku Kontrola dostępu (zarządzanie dostępem i tożsamościami) konta magazynu wybierz pozycję Dodaj przypisanie roli.

  2. Wybierz wbudowaną rolę kontroli dostępu na podstawie ról (RBAC) wbudowanej roli Współautor danych obiektu blob usługi Storage. Zapewni to dostęp do odczytu/zapisu dla tożsamości zarządzanej w przypadku niezbędnych kontenerów usługi Azure Blob Storage.

    Zamiast udzielać tożsamości zarządzanej roli RBAC współautora danych obiektu blob usługi Storage, możesz udzielić bardziej szczegółowych uprawnień. Aby dowiedzieć się więcej, zobacz Ustawianie list ACL w usłudze Azure Data Lake Storage Gen2.

  3. Na następnej stronie w polu Przypisz dostęp do wybierz pozycję Tożsamość zarządzana.

  4. Wybierz pozycję Wybierz członków , a następnie z listy rozwijanej Tożsamość zarządzana wybierz odpowiednią tożsamość zarządzaną. Aby uzyskać więcej informacji, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

Teraz tworzenie poświadczeń o zakresie bazy danych na potrzeby uwierzytelniania tożsamości zarządzanej jest proste.

W poniższym przykładzie zwróć uwagę, że Managed Identity jest to ciąg zakodowany w kodzie i musisz zastąpić ogólną nazwę konta magazynu nazwą rzeczywistego konta magazynu:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>] 
WITH IDENTITY = 'MANAGED IDENTITY'  

Następnie utwórz kopię zapasową COPY_ONLY bazy danych, uruchamiając następujące przykładowe polecenie języka T-SQL:

BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH COPY_ONLY

Przywracanie do programu SQL Server

Przywróć bazę danych do programu SQL Server przy użyciu WITH MOVE opcji polecenia T-SQL RESTORE DATABASE i podaj jawne ścieżki plików dla plików na serwerze docelowym.

Aby przywrócić bazę danych do programu SQL Server, uruchom następujące przykładowe polecenie T-SQL ze ścieżkami plików odpowiednimi dla danego środowiska:

RESTORE DATABASE [SampleDB]
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH
MOVE 'data_0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_data_0.mdf',
MOVE 'log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDBlog.ldf',
MOVE 'XTP' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_xtp.xtp'

Uwaga

Aby przywrócić bazy danych zaszyfrowane w spoczynku przy użyciu funkcji Transparent Data Encryption (TDE), wystąpienie docelowe programu SQL Server musi mieć dostęp do tego samego klucza, który jest używany do ochrony źródłowej bazy danych za pośrednictwem Połączenie or programu SQL Server dla usługi Azure Key Vault. Aby uzyskać szczegółowe informacje, zobacz Konfigurowanie funkcji TDE programu SQL Server za pomocą usługi AKV.

Kwestie wymagające rozważenia

Podczas przywracania bazy danych do programu SQL Server należy wziąć pod uwagę następujące kwestie:

  • Należy użyć WITH MOVE kwalifikatora i podać jawne ścieżki dla plików danych.
  • Nie można przywrócić baz danych zaszyfrowanych za pomocą kluczy TDE zarządzanych przez usługę do programu SQL Server. Zaszyfrowaną bazę danych można przywrócić do programu SQL Server tylko wtedy, gdy została zaszyfrowana przy użyciu klucza zarządzanego przez klienta, a serwer docelowy ma dostęp do tego samego klucza, który jest używany do szyfrowania bazy danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie funkcji TDE programu SQL Server za pomocą usługi Azure Key Vault.
  • W przyszłości niektóre funkcje mogą zostać wprowadzone w usłudze Azure SQL Managed Instance, które wymagają zmian w formacie bazy danych, co sprawia, że kopie zapasowe są niezgodne z programem SQL Server 2022. Dostęp do takich funkcji będzie wymagał jawnego wyrażenia zgody.

Następne kroki