Delen via


Migreren: SQL Server naar SQL Managed Instance ingeschakeld door Azure Arc

In dit scenario wordt u begeleid bij de stappen voor het migreren van een database van een SQL Server-exemplaar naar een beheerd Azure SQL-exemplaar in Azure Arc via twee verschillende back-up- en herstelmethoden.

Azure Blob Storage gebruiken

Gebruik Azure Blob Storage voor migratie naar SQL Managed Instance waarvoor Azure Arc is ingeschakeld.

Deze methode maakt gebruik van Azure Blob Storage als een tijdelijke opslaglocatie waar u een back-up van kunt maken en vervolgens kunt herstellen.

Vereisten

Stap 1: Azure Blob Storage inrichten

  1. Volg de stappen die worden beschreven in Een Azure Blob Storage-account maken
  2. Azure Storage Explorer starten
  3. Meld u aan bij Azure voor toegang tot de blobopslag die u in de vorige stap hebt gemaakt
  4. Klik met de rechtermuisknop op het blob-opslagaccount en selecteer Blobcontainer maken om een nieuwe container te maken waarin het back-upbestand wordt opgeslagen

Stap 2: Opslagblobreferenties ophalen

  1. Klik in Azure Storage Explorer met de rechtermuisknop op de blobcontainer die zojuist is gemaakt en selecteer Shared Access Signature ophalen

  2. De lees-, schrijf- en lijst selecteren

  3. Selecteer Maken.

    Noteer de URI en de queryreeks in dit scherm. Deze zijn nodig in latere stappen. Klik op de knop Kopiëren om op te slaan in een Kladblok/OneNote, enzovoort.

  4. Sluit het venster Shared Access Signature .

Stap 3: Back-up maken van databasebestand naar Azure Blob Storage

In deze stap maken we verbinding met de bron-SQL Server en maken we het back-upbestand van de database die we willen migreren naar SQL Managed Instance - Azure Arc.

  1. Azure Data Studio starten

  2. Verbinding maken met het SQL Server-exemplaar met de database die u wilt migreren naar SQL Managed Instance - Azure Arc

  3. Klik met de rechtermuisknop op de database en selecteer Nieuwe query

  4. Bereid uw query voor in de volgende indeling, waarbij u de tijdelijke aanduidingen vervangt die worden aangegeven met <...> behulp van de gegevens uit de handtekening voor gedeelde toegang in eerdere stappen. Nadat u de waarden hebt vervangen, voert u de query uit.

    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>';  
    
  5. Bereid op dezelfde manier de opdracht BACKUP DATABASE als volgt voor om een back-upbestand te maken naar de blobcontainer. Nadat u de waarden hebt vervangen, voert u de query uit.

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. Open Azure Storage Explorer en controleer of het back-upbestand dat in de vorige stap is gemaakt, zichtbaar is in de Blob-container

Meer informatie over back-up naar URL vindt u hier:

Stap 4: de database herstellen van Azure Blob Storage naar SQL Managed Instance - Azure Arc

  1. Meld u vanuit Azure Data Studio aan en maak verbinding met sql Managed Instance - Azure Arc.

  2. Vouw de systeemdatabases uit, klik met de rechtermuisknop op de hoofddatabase en selecteer Nieuwe query.

  3. Bereid in het venster van de queryeditor dezelfde query voor uit de vorige stap om de referenties te maken.

    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>';  
    
  4. Bereid de onderstaande opdracht voor en voer deze uit om te controleren of het back-upbestand leesbaar is en intact is.

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. Bereid de opdracht RESTORE DATABASE als volgt voor en voer het uit om het back-upbestand te herstellen naar een database in SQL Managed Instance - Azure Arc

    RESTORE DATABASE <database name> FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    WITH MOVE 'Test' to '/var/opt/mssql/data/<file name>.mdf'
    ,MOVE 'Test_log' to '/var/opt/mssql/data/<file name>.ldf'
    ,RECOVERY;  
    GO
    

Methode 2: Kopieer het back-upbestand naar een azure SQL Managed Instance - Azure Arc-pod met behulp van kubectl

Deze methode laat zien hoe u een back-upbestand maakt dat u maakt via een willekeurige methode en het vervolgens kopieert naar lokale opslag in de pod van het beheerde Exemplaar van Azure SQL, zodat u vanaf daar net als op een typisch bestandssysteem in Windows of Linux kunt herstellen. In dit scenario gebruikt u de opdracht kubectl cp om het bestand van de ene plaats naar het bestandssysteem van de pod te kopiëren.

Vereisten

  • Kubectl installeren en configureren om te verwijzen naar uw Kubernetes-cluster waar Azure Arc-gegevensservices worden geïmplementeerd
  • Een hulpprogramma zoals Azure Data Studio of SQL Server Management Server hebt geïnstalleerd en verbonden met de SQL Server waarop u het back-upbestand wilt maken OF een bestaand .bak-bestand hebt gemaakt op uw lokale bestandssysteem.

Stap 1: Maak een back-up van de database als u dat nog niet hebt gedaan

Maak een back-up van de SQL Server-database naar uw lokale bestandspad, zoals elke typische SQL Server-back-up naar schijf:

BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO

Stap 2: Kopieer het back-upbestand naar het bestandssysteem van de pod

Zoek de naam van de pod waarin het SQL-exemplaar is geïmplementeerd. Normaal gesproken ziet het er ongeveer als volgt uit pod/<sqlinstancename>-0

Haal de lijst met alle pods op door het volgende uit te voeren:

kubectl get pods -n <namespace of data controller>

Voorbeeld:

Kopieer het back-upbestand van de lokale opslag naar de SQL-pod in het cluster.

kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -n <namespace name> -c arc-sqlmi

#Example:
kubectl cp C:\Backupfiles\test.bak sqlinstance1-0:var/opt/mssql/data/test.bak -n arc -c arc-sqlmi

Stap 3: de database herstellen

De opdracht RESTORE voorbereiden en uitvoeren om het back-upbestand te herstellen naar het met Azure SQL beheerde exemplaar - Azure Arc

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak'
WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf'  
,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf'  
,RECOVERY;  
GO

Voorbeeld:

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/test.bak'
WITH MOVE 'test' to '/var/opt/mssql/data/test.mdf'  
,MOVE 'test' to '/var/opt/mssql/data/test_log.ldf'  
,RECOVERY;  
GO

Meer informatie over functies en mogelijkheden van SQL Managed Instance ingeschakeld door Azure Arc

Begin door een gegevenscontroller aan te maken

Een met SQL beheerd exemplaar maken dat is ingeschakeld door Azure Arc