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
-
Op dit moment gebruikt u de insiders-build van Azure Data Studio.
Azure-abonnement
Stap 1: Azure Blob Storage inrichten
- Volg de stappen die worden beschreven in Een Azure Blob Storage-account maken
- Azure Storage Explorer starten
- Meld u aan bij Azure voor toegang tot de blobopslag die u in de vorige stap hebt gemaakt
- 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
Klik in Azure Storage Explorer met de rechtermuisknop op de blobcontainer die zojuist is gemaakt en selecteer Shared Access Signature ophalen
De lees-, schrijf- en lijst selecteren
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.
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.
Azure Data Studio starten
Verbinding maken met het SQL Server-exemplaar met de database die u wilt migreren naar SQL Managed Instance - Azure Arc
Klik met de rechtermuisknop op de database en selecteer Nieuwe query
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>';
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'
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
Meld u vanuit Azure Data Studio aan en maak verbinding met sql Managed Instance - Azure Arc.
Vouw de systeemdatabases uit, klik met de rechtermuisknop op de hoofddatabase en selecteer Nieuwe query.
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>';
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'
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
Gerelateerde inhoud
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