Przywracanie bazy danych do programu SQL Server 2022 z wystąpienia zarządzanego usługi Azure SQL
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 SQL Managed Instance a SQL Server 2022 umożliwia łatwe kopiowanie lub przenoszenie baz danych z instancji zarządzanej do wersji Enterprise, Developer lub Standard 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 ze swojego wystąpienia, wykonaj kopię zapasową typu copy-only swojej bazy danych, a następnie ją zapisz.
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 Microsoft Entra ID (dawniej Azure Active Directory), która zapewnia instancjom usług Azure, takich jak Azure SQL Managed Instance, automatycznie zarządzaną tożsamość w usłudze Microsoft Entra ID, tożsamość zarządzaną przypisaną przez system.
Ta tożsamość umożliwia autoryzację żądań dostępu do danych w innych zasobach 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ń dla tożsamości zarządzanej w celu zapisania danych. Udzielanie uprawnień tożsamości zarządzanej instancji odbywa się w taki sam sposób, jak przyznawanie uprawnień do dowolnego innego użytkownika systemu Microsoft Entra. Na przykład:
W portalu Azure, na okienku Kontrola dostępu (IAM) konta magazynowego, wybierz pozycję Dodaj przypisanie roli.
Wybierz wbudowaną rolę Storage Blob Data Contributor w systemie kontroli dostępu opartego na rolach (RBAC) w Azure. 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 nadawać tożsamości zarządzanej rolę Azure RBAC współautor danych Blob w usłudze Storage, możesz udzielić bardziej szczegółowych uprawnień. Aby dowiedzieć się więcej, zobacz Konfigurowanie list ACL w usłudze Azure Data Lake Storage Gen2.
Na następnej stronie w polu Przypisz dostęp do wybierz pozycję Tożsamość zarządzana.
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świadczenia w 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 łącznika 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.
- Ta funkcja jest dostępna tylko dla wystąpień z zasadami aktualizacji programu SQL Server 2022. Nie będzie można przywrócić kopii zapasowej bazy danych do programu SQL Server 2022 z wystąpienia, które stosuje zasady aktualizacji Always up to date.
- Po przywróceniu bazy danych usługi Azure SQL Managed Instance do programu SQL Server 2022 i usunięciu indeksu lub tabeli z indeksem może zostać wyświetlony błąd 8992 podczas uruchamiania polecenia
DBCC CHECKDB
.
Następne kroki
- Aby dowiedzieć się, jak utworzyć pierwsze wystąpienie zarządzane, zobacz Przewodnik szybkiego startu.
- Aby zapoznać się z listą funkcji i porównania, zobacz Typowe funkcje SQL.
- Aby uzyskać więcej informacji na temat konfiguracji sieci wirtualnej, zobacz Konfiguracja sieci wirtualnej usługi SQL Managed Instance.
- Aby szybko rozpocząć tworzenie wystąpienia zarządzanego i przywracać bazę danych z pliku kopii zapasowej, zobacz Tworzenie wystąpienia zarządzanego.
- Aby zapoznać się z samouczkiem dotyczącym używania usługi Azure Database Migration Service do migracji, zobacz Migracja wystąpienia zarządzanego SQL przy użyciu usługi Database Migration Service.
- Aby uzyskać zaawansowane monitorowanie usługi SQL Managed Instance, zobacz obserwator bazy danych.
- Aby uzyskać informacje o cenach, zobacz Cennik usługi SQL Database.