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
Azure-prenumeration
Steg 1: Etablera Azure Blob Storage
- Följ stegen som beskrivs i Skapa ett Azure Blob Storage-konto
- Starta Azure Storage Explorer
- Logga in på Azure för att komma åt bloblagringen som skapades i föregående steg
- 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
Högerklicka på blobcontainern som nyss skapades i Azure Storage Explorer och välj Hämta signatur för delad åtkomst
Välj läs, skrivning och lista
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.
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.
Starta Azure Data Studio
Anslut till SQL Server-instansen som har den databas som du vill migrera till SQL Managed Instance – Azure Arc
Högerklicka på databasen och välj Ny fråga
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>';
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'
Ö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:
Säkerhetskopiering och återställning av SQL Server med Azure Blob Storage
Säkerhetskopiera till URL med SQL Server Management Studio (SSMS)
Steg 4: Återställa databasen från Azure Blob Storage till SQL Managed Instance – Azure Arc
Från Azure Data Studio loggar du in och ansluter till SQL Managed Instance – Azure Arc.
Expandera Systemdatabaser, högerklicka på huvuddatabasen och välj Ny fråga.
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>';
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'
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
Relaterat innehåll
Läs mer om funktioner i SQL Managed Instance som aktiveras av Azure Arc