Dela via


Migrera: SQL Server till SQL Managed Instance aktiverat av Azure Arc

Det här scenariot vägleder dig genom stegen för att migrera en databas från en SQL Server-instans till en hanterad Azure SQL-instans i Azure Arc via två olika metoder för säkerhetskopiering och återställning.

Använda Azure Blob Storage

Använd Azure Blob Storage för att migrera till SQL Managed Instance som aktiveras av Azure Arc.

Den här metoden använder Azure Blob Storage som en tillfällig lagringsplats som du kan säkerhetskopiera till och sedan återställa från.

Förutsättningar

Steg 1: Etablera Azure Blob Storage

  1. Följ stegen som beskrivs i Skapa ett Azure Blob Storage-konto
  2. Starta Azure Storage Explorer
  3. Logga in på Azure för att komma åt bloblagringen som skapades i föregående steg
  4. Högerklicka på bloblagringskontot och välj Skapa blobcontainer för att skapa en ny container där säkerhetskopieringsfilen ska lagras

Steg 2: Hämta autentiseringsuppgifter för lagringsblob

  1. Högerklicka på blobcontainern som nyss skapades i Azure Storage Explorer och välj Hämta signatur för delad åtkomst

  2. Välj läs, skrivning och lista

  3. Välj Skapa

    Anteckna URI:n och frågesträngen från den här skärmen. Dessa kommer att behövas i senare steg. Klicka på knappen Kopiera för att spara i anteckningar/OneNote osv.

  4. Stäng fönstret Signatur för delad åtkomst.

Steg 3: Säkerhetskopiera databasfilen till Azure Blob Storage

I det här steget ansluter vi till SQL Server-källan och skapar säkerhetskopian av databasen som vi vill migrera till SQL Managed Instance – Azure Arc.

  1. Starta Azure Data Studio

  2. Anslut till SQL Server-instansen som har den databas som du vill migrera till SQL Managed Instance – Azure Arc

  3. Högerklicka på databasen och välj Ny fråga

  4. Förbered frågan i följande format och ersätt platshållarna som anges med hjälp av <...> informationen från signaturen för delad åtkomst i tidigare steg. När du har ersatt värdena kör du frågan.

    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. På samma sätt förbereder du KOMMANDOT BACKUP DATABASE på följande sätt för att skapa en säkerhetskopia till blobcontainern. När du har ersatt värdena kör du frågan.

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. Öppna Azure Storage Explorer och kontrollera att säkerhetskopieringsfilen som skapades i föregående steg visas i blobcontainern

Läs mer om säkerhetskopiering till URL här:

Steg 4: Återställa databasen från Azure Blob Storage till SQL Managed Instance – Azure Arc

  1. Från Azure Data Studio loggar du in och ansluter till SQL Managed Instance – Azure Arc.

  2. Expandera Systemdatabaser, högerklicka på huvuddatabasen och välj Ny fråga.

  3. I frågeredigerarens fönster förbereder och kör du samma fråga från föregående steg för att skapa autentiseringsuppgifterna.

    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. Förbered och kör kommandot nedan för att kontrollera att säkerhetskopieringsfilen är läsbar och intakt.

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. Förbered och kör kommandot RESTORE DATABASE på följande sätt för att återställa säkerhetskopieringsfilen till en databas på 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
    

Metod 2: Kopiera säkerhetskopieringsfilen till en Azure SQL Managed Instance – Azure Arc-podd med kubectl

Den här metoden visar hur du tar en säkerhetskopieringsfil som du skapar via valfri metod och sedan kopierar den till lokal lagring i podden för azure SQL-hanterade instanser så att du kan återställa därifrån ungefär som du skulle göra i ett vanligt filsystem i Windows eller Linux. I det här scenariot använder du kommandot kubectl cp för att kopiera filen från en plats till poddens filsystem.

Förutsättningar

  • Installera och konfigurera kubectl så att det pekar på ditt Kubernetes-kluster där Azure Arc-datatjänster distribueras
  • Ha ett verktyg som Azure Data Studio eller SQL Server Management Server installerat och anslutet till SQL Server där du vill skapa säkerhetskopieringsfilen eller ha en befintlig .bak fil som redan har skapats i det lokala filsystemet.

Steg 1: Säkerhetskopiera databasen om du inte redan har gjort det

Säkerhetskopiera SQL Server-databasen till din lokala filsökväg, som en vanlig SQL Server-säkerhetskopiering till disk:

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

Steg 2: Kopiera säkerhetskopieringsfilen till poddens filsystem

Leta reda på namnet på podden där sql-instansen distribueras. Vanligtvis bör det se ut så här pod/<sqlinstancename>-0

Hämta listan över alla poddar genom att köra:

kubectl get pods -n <namespace of data controller>

Exempel:

Kopiera säkerhetskopieringsfilen från den lokala lagringen till sql-podden i klustret.

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

Steg 3: Återställa databasen

Förbered och kör KOMMANDOT RESTORE för att återställa säkerhetskopieringsfilen till den hanterade Azure SQL-instansen – 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

Exempel:

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

Läs mer om funktioner i SQL Managed Instance som aktiveras av Azure Arc

Börja med att skapa en datakontrollant

Skapa en SQL Managed Instance aktiverad av Azure Arc