Delen via


Een database herstellen naar SQL Server vanuit Azure SQL Managed Instance

van toepassing op:Azure SQL Managed Instance

In dit artikel wordt beschreven hoe u een databaseback-up herstelt van Azure SQL Managed Instance naar SQL Server 2022 of SQL Server 2025.

Overzicht

Wanneer u uw SQL Managed Instance configureert met een updatebeleid, kunt u de interne databaseindeling uitlijnen met een specifieke versie van SQL Server. Uitlijning van de database-indeling tussen SQL Managed Instance en SQL Server biedt u een eenvoudige manier om databases van uw beheerde SQL-exemplaar te kopiëren of te verplaatsen naar een Enterprise-, Developer- of Standard-editie van SQL Server, gehost on-premises, op virtuele machines in Azure of in andere clouds.

Als u databases van met SQL beheerde exemplaren herstelt naar SQL Server 2022 of SQL Server 2025, worden de volgende scenario's ontgrendeld:

  • Zorgt voor databasemobiliteit tussen SQL Managed Instance en op SQL Server gebaseerde producten.
  • Biedt databasekopieën aan klanten en andere in aanmerking komende partijen.
  • Vernieuwt omgevingen buiten SQL Managed Instance.

Houd rekening met het volgende:

  • De mogelijkheid om alleen volledige back-ups van databases van SQL Managed Instance naar SQL Server 2022 te herstellen, is standaard beschikbaar voor alle bestaande en nieuw geïmplementeerde exemplaren. Deze mogelijkheid is beschikbaar tot het einde van de basisondersteuning voor SQL Server 2022. Zodra het updatebeleid van een exemplaar is gewijzigd in SQL Server 2025 of Always-up-to-date, is het herstellen van een database naar SQL Server 2022 niet meer mogelijk.
  • De mogelijkheid om alleen volledige back-ups van databases van SQL Managed Instance naar SQL Server 2025 te herstellen, is alleen beschikbaar voor exemplaren die zijn geconfigureerd met het updatebeleid van SQL Server 2025. Deze mogelijkheid is beschikbaar tot het einde van de basisondersteuning voor SQL Server 2025. Zodra het updatebeleid van een exemplaar is gewijzigd in Always-up-to-date, is het herstellen van een database naar SQL Server 2025 niet meer mogelijk.

Een back-up maken op SQL Managed Instance

Maak eerst een referentie aan om toegang te krijgen tot het opslagaccount vanuit uw exemplaar, maak een alleen-lezen back-up van uw database en sla deze vervolgens op.

U kunt uw inloggegevens aanmaken met behulp van een beheerde identiteit of een SAS-token (Shared Access Signature).

Een beheerde identiteit is een functie van Microsoft Entra ID (voorheen Azure Active Directory) die exemplaren van Azure-services, zoals Azure SQL Managed Instance, biedt met een automatisch beheerde identiteit in Microsoft Entra ID, de door het systeem toegewezen beheerde identiteit.

U kunt deze identiteit gebruiken om aanvragen voor gegevenstoegang tot andere Azure-resources, inclusief opslagaccounts, te autoriseren. Services zoals Azure SQL Managed Instance hebben een door het systeem toegewezen beheerde identiteit en kunnen ook een of meer door de gebruiker toegewezen beheerde identiteiten hebben. U kunt door het systeem toegewezen beheerde identiteiten of door de gebruiker toegewezen beheerde identiteiten gebruiken om de aanvragen te autoriseren.

Voordat de Azure-opslagbeheerder een back-upbestand naar een opslagaccount schrijft, moeten ze machtigingen verlenen aan de beheerde identiteit om de gegevens te schrijven. Het verlenen van machtigingen aan de beheerde identiteit van het exemplaar wordt op dezelfde manier uitgevoerd als het verlenen van machtigingen aan een andere Microsoft Entra-gebruiker. Bijvoorbeeld:

  1. Selecteer in het Azure-portaal op het deelvenster Toegangsbeheer (IAM) van een opslagaccount de optie Roltoewijzing toevoegen.

  2. Selecteer de Storage Blob Data Contributor ingebouwde RBAC-rol (op rollen gebaseerd toegangsbeheer) van Azure. Dit biedt lees-/schrijftoegang tot de beheerde identiteit voor de benodigde Azure Blob Storage-containers.

    In plaats van de beheerde identiteit de Azure RBAC-rol 'Bijdrager voor opslag-blobgegevens' toe te kennen, kunt u gedetailleerdere machtigingen verlenen. Zie ACL's instellen in Azure Data Lake Storage Gen2voor meer informatie.

  3. Selecteer op de volgende pagina voor Toegang toewijzen aande beheerde identiteit .

  4. Kies Selecteer leden en selecteer vervolgens de juiste beheerde identiteit in de vervolgkeuzelijst Beheerde identiteit. Zie Azure-rollen toewijzen met behulp van Azure Portalvoor meer informatie.

Nu is het maken van de databasereferentie voor verificatie van beheerde identiteiten eenvoudig.

In het volgende voorbeeld ziet u dat Managed Identity een in code vastgelegde tekenreeks is en dat u de algemene naam van het opslagaccount moet vervangen door de naam van het werkelijke opslagaccount:

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

Maak vervolgens een COPY_ONLY back-up van uw database door de volgende T-SQL-voorbeeldopdracht uit te voeren:

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

Terugzetten naar SQL Server

Herstel de database naar SQL Server met behulp van de WITH MOVE optie van de opdracht RESTORE DATABASE T-SQL en geef expliciete bestandspaden op voor uw bestanden op de doelserver.

Als u uw database wilt herstellen naar SQL Server, voert u de volgende T-SQL-voorbeeldopdracht uit met bestandspaden die geschikt zijn voor uw omgeving:

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';

Notitie

Als u databases wilt herstellen die in rust zijn versleuteld met TDE (Transparent Data Encryption), moet het doelexemplaren van SQL Server toegang hebben tot dezelfde sleutel die wordt gebruikt om de brondatabase te beveiligen via de SQL Server Connector voor Azure Key Vault. Zie Sql Server TDE Extensible Key Management instellen met behulp van Azure Key Vault voor meer informatie.

Overwegingen

Houd rekening met het volgende wanneer u een database herstelt naar SQL Server:

  • U moet de WITH MOVE kwalificatie gebruiken en expliciete paden voor de gegevensbestanden opgeven.

  • Databases die zijn versleuteld met door de service beheerde TDE-sleutels kunnen niet worden hersteld naar SQL Server. U kunt een versleutelde database alleen herstellen naar SQL Server als deze is versleuteld met een door de klant beheerde sleutel en de doelserver toegang heeft tot dezelfde sleutel die wordt gebruikt om de database te versleutelen. Zie SQL Server TDE Extensible Key Management instellen met behulp van Azure Key Vaultvoor meer informatie.

  • Het updatebeleid voor uw SQL Managed Instance moet overeenkomen met of een hogere versie van uw SQL Server-exemplaar zijn. Databases die zijn hersteld naar SQL Server 2022 moeten afkomstig zijn van exemplaren met het updatebeleid voor SQL Server 2022. Op dezelfde manier moeten databases die zijn hersteld naar SQL Server 2025 afkomstig zijn van exemplaren met het updatebeleid voor SQL Server 2025. Het is ook mogelijk om een database te herstellen vanuit een exemplaar met een updatebeleid voor SQL Server 2022 naar een exemplaar met een updatebeleid voor SQL Server 2025 . Zodra een database is hersteld naar een exemplaar met een updatebeleid met een hogere versie, kan die database niet meer worden hersteld naar een exemplaar met een updatebeleid met een lagere versie. Het herstellen van databases van instanties met een verouderd updatebeleid wordt niet ondersteund.

  • Nadat u een Azure SQL Managed Instance-database hebt hersteld naar SQL Server en een index hebt verwijderd, of een tabel met een index, ziet u mogelijk fout 8992 bij het uitvoeren van de DBCC CHECKDB opdracht.

    Waarschuwing

    Als u een gepartitioneerde index voor een tabel maakt nadat u een index hebt verwijderd zoals beschreven in dit scenario, is de tabel niet meer toegankelijk.